Изменения конфигурации PHP с помощью php.ini и phpinfo()

Если вы занимаетесь разработкой на WordPress, то столкнетесь с необходимостью внести изменения в PHP-среду. Поэтому нужно иметь некоторое представление о файле php.ini, чтобы справиться с ней.

Есть еще один замечательный инструмент, который должен быть у вас под рукой - это функция php info(). Например, чтобы найти файл php.ini, который нужно изменить.

phpinfo(): получить информацию о PHP

Функция phpinfo() проста в использовании. Создайте PHP-файл на своем сервере и разместите в нем вызов этой функции:

<?php
// info.php
phpinfo();

Затем заходите на эту страницу через браузер. И все.

Много информации

Screen-Shot-2016-05-02-at-3.32.33-PM

На приведенном выше скриншоте показан первый блок данных, который выводится при вызове функции localhost info php. Большинство из этих данных для меня, если честно - шум. Но пятая строка очень важна: она сообщает, какой файл конфигурации PHP загружен - в нашем случае это /etc/php5/fpm/php.ini. Строка помечена как “Loaded Configuration File”. Если нужно изменить настройки сервера, предоставившего эту страницу, нужно редактировать этот файл.

Настройка PHP: Как работает php.ini

PHP имеет ряд настраиваемых параметров. Он также имеет расширения или «плагины», которые имеют отдельные параметры. Большинство из них содержится в «конфигурационных файлах» с расширениями .ini. Википедия сообщает нам, что префикс был получен от сокращенной версии “initialization” . В любом случае эта конвенция распространяется и на PHP.

Подобные файлы очень похожи. Они включают в себя ряд значений, установленных в строках. Например:

implicit_flush = Off
serialize_precision = 17
memory_limit = 256M

Что отличает хороший INI-файл от плохого, так это то, насколько полезны и понятны комментарии. В этом отношении php.ini отличается в лучшую сторону. В нем содержится множество комментариев, которые помогут разобраться, прежде чем устанавливать значения:

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 256M

Все, что размещено в php.ini после точки с запятой (;), не обрабатывается, а рассматривается как комментарий. Объявления, похожие на строку memory_limit, закомментированы. Если значение не указано, удалено или закомментировано, то PHP использует значение по умолчанию.

Значения параметров конфигурации PHP, полезные для WordPress разработчиков

Лично мне регулярно приходится сталкиваться со значениями php info файла для max_execution_time, memory_limit, upload_max_filesize и post_max_size. Существуют сотни значений, которые устанавливаются в файле php.ini и файлах различных расширений, с которыми работает PHP. Но только с этими четырьмя параметрами мне регулярно приходится иметь дело. Краткое описание каждого из них:

  • max_execution_time - определяет, как долго PHP-скрипт будет исполняться до того, как он будет принудительно остановлен. По умолчанию, это примерно 30 секунд, поэтому один плохой скрипт не может заблокировать весь сервер. Я увеличиваю это значение, чтобы скрипты могли выполняться немного дольше тридцати секунд. Просто имейте в виду, что при этом увеличивается риск случайного или злонамеренно запуска продолжительного скрипта;
  • memory_limit – с помощью этого параметра php info file можно разрешить процессу потреблять больше памяти сервера. Это опасно, если один из запросов пользователей начинает использовать больше ресурсов, чем следует. Но это бывает полезно при использовании специализированных плагинов для кэширования страниц;
  • upload_max_filesize и post_max_size настолько похожи, что я объединил их в один пункт. Если необходимо обеспечить возможность принимать файлы размером в сотни мегабайт, вам придется повозиться с этими значениями. Увеличение этих значений может повысить потребление ресурсов сервера. post_max_size влияет на общий допустимый размер HTTP-запроса POST, а upload_max_filesize – на максимальный размер любого отдельного файла, который должен принять PHP. Мне часто приходится менять значение этих параметров, чтобы разрешить отправку большого файла в одном POST-запросе. Я всегда задаю для них одинаковые значения.

Примечания относительно редакторов, прав доступа и перезагрузки сервера

php.ini - это файл конфигурации, и поскольку он часто размещается на сервере, можно столкнуться с несколькими проблемами. Например, отсутствие доступа к файлу с помощью обычных удобных инструментов или возможности сохранить внесенные изменения:

Screen-Shot-2016-05-03-at-10.35.57-AM

Открытие без sudo приводит к выводу предупреждения о запрете на запись и невозможности сохранить изменения
Для редактирования nano - лучший текстовый редактор. Все его горячие сочетания клавиш прописаны на экране. Поэтому я часто редактирую файл php.ini на удаленном сервере с помощью команды:

sudo nano /etc/php5/fpm/php.ini

Я использую nano, чтобы открыть файл php info по адресу /etc/php5/fpm/php.ini.

Что такое sudo? На хорошо настроенном сервере обычные пользователи не могут изменять файлы конфигурации. sudo - это способ, с помощью которого можно временно запрашивать права доступа уровня «администратор» или «супер пользователь» (sudo - это сокращение от «super user do».) Таким образом можно будет сохранить файл php.ini из nano. Без этого вы, вероятно, не сможете изменить этот файл.

Конфигурация с помощью php.ini и phpinfo()

В файле php.ini содержится много других параметров. Вы можете увидеть почти все из них, запустив команду phpinfo(). Но в основном требуется изменить только небольшой набор значений. Все остальное я оставляю на усмотрение мудрых разработчиков PHP и других экспертов по конфигурации промежуточного сервера. Но мне нравится понимать то, как они работают и как работать с ними. Надеюсь, это руководство оказалось полезным для вас. Всего наилучшего!

Перевод статьи «PHP Configuration Changes with php-ini and phpinfo()» дружной командой проекта Сайтостроение от А до Я.

18 марта 2017 в 10:54
Вам понравился сайт или конкретно эта страница? Поделитесь ею со своими друзьями, нажав на одну из кнопок соцсетей слева или снизу. Желаете быть в курсе последних обновлений сайта — подпишитесь удобным для вас образом:
или поддержите нас, нажав на кнопку "Мне нравится"!
Материалы по теме
{"url":"http://www.fastvps.ru/", "src":"/images/advbanners/fastvps.png", "alt":"Хостинг Fastvps.ru. Наш выбор!"}
Заработок