Я перешел от старого apache к nginx и php 5.3.10. И когда я попытался изменить php.ini в соответствии со своими потребностями, я обнаружил, что их 3:
$ locate php.ini /etc/php5/cgi/php.ini /etc/php5/cli/php.ini /etc/php5/fpm/php.ini
Какой из них я должен изменить?
Вообще говоря, файл cli/php.ini
используется, когда двоичный код PHP вызывается из командной строки.
Вы можете проверить, что работает php --ini
из командной строки.
fpm/php.ini
будет использоваться, когда PHP будет запущен как FPM – в случае с установкой nginx.
И вы можете проверить, что вызов phpinfo()
с php-страницы, обслуживаемой вашим веб-сервером.
cgi/php.ini
, в вашей ситуации, скорее всего, не будет использоваться.
Использование двух разных файлов php.ini
(один для CLI, а другой для обслуживания страниц с вашего веб-сервера) выполняется довольно часто и имеет одно из основных преимуществ: он позволяет вам иметь разные значения конфигурации в каждом случае.
Как правило, в файле php.ini
который используется веб-сервером, вы укажете довольно короткое max_execution_time
: веб-страницы должны быть быстро отправлены, а если странице требуется более нескольких десятков секунд (по умолчанию 30 секунд) , это, вероятно, из-за ошибки – и генерация страницы должна быть остановлена.
С другой стороны, вы можете иметь довольно длинные сценарии, запущенные из вашего crontab (или вручную), что означает, что файл php.ini
который будет использоваться, является тем, который используется в cli/
. Для этих скриптов вы укажете гораздо больше max_execution_time
в cli/php.ini
чем в fpm/php.ini
.
max_execution_time
– общий пример; вы можете сделать то же самое с несколькими другими конфигурационными директивами, конечно.
Это действительно зависит от ситуации, для меня это в fpm, поскольку я использую PHP5-FPM. Решение вашей проблемы может быть универсальным php.ini, а затем использовать символическую ссылку, созданную как:
ln -s /etc/php5/php.ini php.ini
Тогда любые сделанные вами изменения будут в одном общем файле .ini. Это, вероятно, не самое лучшее решение, хотя, возможно, вы захотите изучить модификацию некоторой конфигурации, чтобы вы буквально использовали один файл в одном месте. Не несколько мест взломали.
Хотя ответ Паскаля был подробным и информативным, он не упомянул некоторую ключевую информацию в предположении, что каждый знает, как использовать phpinfo()
Для тех, кто этого не делает:
Перейдите в корневую папку веб-серверов, например /var/www/
В этой папке создайте текстовый файл с именем info.php
Отредактируйте файл и введите phpinfo()
Перейдите к файлу, например: http://www.example.com/info.php
Здесь вы увидите путь php.ini
разделе Loaded Configuration File
:
Вы можете найти, что используется файл php.ini:
Затем вы можете найти информацию в файле Loaded Configuration (так что это /user/local/etc/php/php.ini)
Иногда вы указали (нет), в этом случае вам просто нужно разместить свой собственный php.ini, который вы можете найти здесь: http://git.php.net/?p=php-src.git;a=blob ; F = php.ini-производства; ПП = HEAD ,
Надеюсь, этот ответ поможет.