- Php.ini: Edit PHP configurations on a cloud server with Linux
- Requirements
- View the server’s PHP configurations
- How to find the php.ini file
- How to edit the php.ini file
- Related articles
- Change the PHP Version on a Plesk Server
- Changing PHP Version — Common Errors
- Install and Use PHP Composer on Ubuntu 16.04
- Using PHP Composer in IONOS Webhosting Packages
- PHP 8: What you need to know about the latest version
- Editing php ini file
- Table of Contents
- How to Edit Your php.ini File
- Overview
- Editing in EasyApache 3
- Editing in EasyApache 4
- Directives
- Additional Documentation
- Настройка файла php.ini
- Расположение и синтаксис php.ini
- Настройка файла php.ini
- Вывод ошибок в php
- Ограничения ресурсов
- Директории по умолчанию
- Загрузка файлов
- Настройка расширений
- Выводы
Php.ini: Edit PHP configurations on a cloud server with Linux
PHP configurations can be changed using the “php.ini” file. Php.ini is the main configuration file in for the open-source scripting language PHP.
Requirements
You can find the right cloud server on IONOS.
View the server’s PHP configurations
To view the current PHP configurations for your server, create a file named phpinfo.php in your website’s main directory:
sudo nano /var/www/html phpinfo.php
Then put the following content into this file:
Save and exit the file, then view it in a browser (“http://example.com/phpinfo.php”).
For security reasons, it is best to delete this file after you are finished.
How to find the php.ini file
When PHP starts up, it will search several possible locations on the server for a php.ini file. The default location for the php.ini file is:
You can also create a new php.ini file with only the PHP configurations you need to change and place it in the same directory as the PHP script. This will override the configurations in the default php.ini file.
However, this will only be effective for scripts in the same directory as the php.ini file. It will not affect subdirectories. You will need to copy the new php.ini file to each working directory.
How to edit the php.ini file
To open the default php.ini file for editing, use one of the following commands (depending on which Linux distribution you’re using):
- Ubuntu 16.04: sudo nano /etc/php/7.0/apache2
- CentOS 7: sudo nano /etc/php.ini
Make the required changes. Each line that begins with a semicolon is “commented out” which means that PHP will ignore that line. If you want to enable an option that has been disabled this way, delete the semicolon at the beginning of the line to enable it.
Save and exit the file. Then restart the web server in order for the changes to take effect:
- Ubuntu/Debian: sudo systemctl restart apache2
- CentOS: sudo systemctl restart httpd
Related articles
Change the PHP Version on a Plesk Server
Learn how to change the PHP version for a server with Plesk. This tutorial includes instructions on how to find the PHP version your Plesk server is using, change to a different PHP version, and install a different PHP version if necessary.
Changing PHP Version — Common Errors
In this article we want to discuss with you common bugs in PHP version changes and work out solutions to fix them.
Install and Use PHP Composer on Ubuntu 16.04
PHP Composer is a package management system for PHP which prevents users from having to «reinvent the wheel» when it comes to commonly-used website components like user authentication or database management. Composer is modelled on other popular package management systems like Ruby’s Bundler.
Using PHP Composer in IONOS Webhosting Packages
Composer is a so-called «Dependency Management Tool», which makes it possible to comfortably reference external sources and libraries in one’s own PHP projects and to keep them up-to-date.
PHP 8: What you need to know about the latest version
PHP is one of the most important languages on the Internet. Many content management systems like WordPress, TYPO3 or Joomla are based on PHP. With the release of PHP 8, various new features were introduced. Also some old features were reworked, meaning that errors may occur if the code is not up to date. You can find all the important information about the new features of PHP 8 here.
Editing php ini file
Did you find this document helpful?
Would you like to provide more feedback on this document?
Table of Contents
How to Edit Your php.ini File
Last modified: July 19, 2022
Overview
You can update the settings of your server’s php.ini file to help secure your server. The method to use depends on your version of EasyApache.
- You must also use other security measures with these settings. When you use these alone, your server’s security is at risk. Malicious users can bypass most hardening measures.
- Apache reads all files with the .ini file extension. If you have a custom .ini file, you must update it manually.
Editing in EasyApache 3
On systems that run EasyApache 3, the /usr/local/lib/ directory contains your server’s php.ini file.
Editing in EasyApache 4
We recommend only editing these files with WHM’s MultiPHP INI Editor interface (WHM » Home » Software » MultiPHP INI Editor). This ensures that an operable version of PHP exists on the system.
On systems that run EasyApache 4, each version of PHP uses a separate php.ini file. You must make changes separately to each file. Each file exists in the /opt/cpanel/ea-php72/root/etc/php.ini file, where 72 is the PHP version number.
Directives
Directive | Description | Recommended value |
---|---|---|
safe_mode | This directive helps solve many problems that occur with using PHP in a shared hosting environment. It compares the PHP script’s UID with the UIDs of files and directories that it tries to access. If the UIDs don’t match, the system doesn’t allow the script access. |
- This setting only affects servers that use the mod_php Apache module.
- If your system runs EasyApache 4, change this directive in the Editor Mode section of WHM’s MultiPHP INI Editor interface (WHM >> Home >> Software >> MultiPHP INI Editor).
Do not rely on this security measure alone. It is trivial to send false referrer information.
If your system runs EasyApache 4, change this directive in the Editor Mode section of WHM’s MultiPHP INI Editor interface (WHM » Home » Software » MultiPHP INI Editor).
Additional Documentation
Настройка файла php.ini
PHP — это один из самых популярных языков программирования для создания сайтов и веб-приложений. На нем разработано множество готовых систем управления контентом для блогов, сайтов фирм или даже интернет-магазинов. Несмотря на то что у этого языка есть свои недостатки, он достаточно прост в освоении и поэтому очень часто используется для разработки новых сайтов.
Интерпретатор php может поставляться в виде модуля для Apache, выполнять скрипты из командной строки или в виде отдельного сервиса php-fpm. Эти сервисы отличаются своими возможностями, и предназначением, но для любого вида интерпретатора нужно задать базовые настройки, например, рабочая папка, включенные расширения, отображение ошибок и так далее. Все эти настройки задаются через файл php.ini. В этой инструкции мы рассмотрим как выполняется настройка файла php.ini в операционных системах Linux, хотя все информация подойдет и для Windows.
Если у вас еще не установлен интерпретатор языка программирования php, то вы можете ознакомиться со статьей установка lamp в Ubuntu 16.04.
Расположение и синтаксис php.ini
Для каждой версии интерпретатора конфигурационный файл php.ini находится в отдельной папке. Но все конфигурационные файлы находятся в папке /etc/php, например, /etc/php5:
Папка conf.d содержит общие настройки для различных расширений и модулей, они не будут нас сейчас интересовать. Более интересны следующие три папки — apache, cli и fpm. В них содержатся конфигурационные файлы php.ini для каждого из этих интерпретаторов.
Если вы собираетесь использовать несколько из этих интерпретаторов, то вам придется указывать настройки для каждого из них отдельно. Вы можете убедиться, что в каждой из папок лежит файл php.ini.
Что касается синтаксиса файла, то он разделен на секции, сначала идет секция настройки php, которая разделена на подсекции в зависимости от типа настроек, дальше идут секции настройки разных модулей. Синтаксис самих настроек очень прост, он соответствует привычному синтаксису ini файлов. Строка начинается с имени настройки, затем следует знак равно, а за ним значение:
имя_настройки = значение_параметра
Символами [] обозначается имя секции, например, [PHP], а символ ; означает комментарий, он и все символы после него не читаются интерпретатором. А теперь рассмотрим как выполняется настройка php.ini и переберем самые важные параметры.
Настройка файла php.ini
Для удобства ориентирования мы разобьем все параметры по категориях в зависимости от их назначения. Вам будет достаточно найти нужный параметр и изменить его значение. А теперь откройте файл настроек php, например, для модуля apache и перейдем к настройке. Чтобы избежать ошибок не добавляйте новые строки, а ищите уже существующие и изменяйте значения на нужные:
sudo gedit /etc/php5/apache/php.ini
Сначала идет немного информации о самом файле в виде комментариев, затем интересующие нас настройки.
Вывод ошибок в php
Настройка php 7 обычно начинается с конфигурации вывода ошибок. Все настройки вывода ошибок находятся в разделе Error handling and logging. По умолчанию вывод ошибок на экран во время выполнения скрипта отключен. Это сделано для того, чтобы пользователи не смогли увидеть ничего лишнего. Вместо этого, все ошибки записываются в лог файл. Если вы используете php на домашнем компьютере, то такие меры не нужны и вы можете сразу выводить все на экран:
Замените off на on. В php используются различные типы ошибок, например, критические, предупреждения, ошибки синтаксиса, с помощью строки error_reporting вы можете включить вывод только определенных типов ошибок:
error_reporting = E_ALL & ~E_DEPRECATED
Если нужно объединить несколько типов ошибок, то используйте символ &, а для отключения отображения поставьте перед типом знак ~. Приведенный выше пример отображает все ошибки (E_ALL), кроме сообщений об устаревших функциях (E_DEPRECATED). Вы можете отключить все типы использовав 0:
Включите запись ошибок php в лог файл, если не выводите их на экран:
Чтобы не засорять лог однотипными сообщениями можно игнорировать повторяющиеся ошибки в пределах одного исполнения:
Ограничения ресурсов
Если бы скрипты php никак не ограничивались в ресурсах, то они запросто могли бы перегрузить сервер и не дать ему нормально работать. Поэтому, по умолчанию php устанавливает жесткие ограничения, но, возможно, вам нужно будет их немного ослабить.
По умолчанию максимальное время выполнения скрипта — 30 секунд, сделаем минуту:
Если указать 0, то скрипт может выполняться бесконечно. Вы также можете ограничить время, на протяжении которого скрипт будет загружать данные, 60 секунд:
Максимальное количество переменных в GET и POST:
Следующий параметр задает максимальное количество памяти, которую может использовать один скрипт во время своего выполнения, в мегабайтах:
Максимальный размер данных, передаваемых в POST запросе тоже ограничивается, размер по умолчанию — 8 Мегабайт:
Вы можете ограничить область действия php в системе с помощью опции openbase_dir, она указывает папку, выше которой скрипт не может получить доступ к файловой системе:
С помощью директив disable_functions и disable_classes вы можете отключить использование в скриптах определенных функций или классов, например, это может быть полезно для веб-хостингов. В этом примере мы отключаем использование функции ini_set, которая позволяет менять настройки php из скрипта:
Директории по умолчанию
Файл настройки php.ini позволяет указать пути в файловой системе по умолчанию для различных действий. Вы можете задать папки где система будет искать скрипты, если вы попытаетесь подключить их с помощью инструкции include:
Папка для записи временных файлов:
Загрузка файлов
Для того чтобы пользователи могли загружать свои файлы на сервер, например, фото, нужно включить эту функцию в php:
Максимальный размер загружаемого файла:
Максимальное количество файлов, которые может загрузить один скрипт:
Настройка php.ini практически завершена, нам остались лишь расширения.
Настройка расширений
Расширения позволяют очень сильно увеличить функциональность php. Например, благодаря расширениям вы можете использовать в своих скриптах базы данных mysql, postgresql, mysqli, sqlite, графическую библиотеку gd и многое другое. Все это включается в этом разделе.
Для включения расширения достаточно убрать комментарий перед строкой с его командой, например:
extension=php_mysql.so
extension=php_mbstring.so
extension=php_pgsql.so
Обратите внимание, что для windows расширение будет иметь формат dll, но для linux нужно использовать so. В следующих секциях идет настройка каждого из расширений, но мы их рассматривать не будем потому что они обычно не требуют настройки.
Выводы
В этой статье мы рассмотрели как выполняется настройка php на сервере или обычном компьютере для разработки веб-сайтов. Файл настроек php имеет довольно простую структуру и с ним довольно не сложно справиться. После завершения всех настроек и сохранения изменений не забудьте перезагрузить веб-сервер или сервис php-fpm.
Вообще говоря, php-fpm это отдельная тема, потому что там есть много дополнительных настроек, и, возможно, мы рассмотрим его в одной из следующих статей. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.