Подтвердить что ты не робот

Php.ini: какой?

Я перешел от старого 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

Какой я должен изменить?

4b9b3361

Ответ 1

Вообще говоря, файл 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 является распространенным примером; вы можете сделать то же самое с несколькими другими конфигурационными директивами, конечно.

Ответ 2

Это действительно зависит от ситуации, для меня это в fpm, поскольку я использую PHP5-FPM. Решение вашей проблемы может быть универсальным php.ini, а затем использовать символическую ссылку, созданную как:

ln -s /etc/php5/php.ini php.ini

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

Ответ 3

Хотя ответ Паскаля был подробным и информативным, он не упомянул некоторую ключевую информацию в предположении, что все знают, как использовать phpinfo()

Для тех, кто этого не делает:

Перейдите в корневую папку вашего веб-сервера, такую как /var/www/

В этой папке создайте текстовый файл с именем info.php

Отредактируйте файл и введите phpinfo()

Перейдите к файлу, например: http://www.example.com/info.php

Здесь вы увидите путь php.ini разделе Loaded Configuration File:

phpinfo

Убедитесь, что вы info.php когда закончите.

Ответ 4

Вы можете найти, что используется файл php.ini:

  • Добавляем phpinfo() на php-страницу и отображаем страницу (например, изображение внизу)
  • Из оболочки введите: php -i

Затем вы можете найти информацию в файле Loaded Configuration (так что здесь /user/local/etc/php/php.ini)

Иногда вы указали (нет), в этом случае вам просто нужно разместить свой собственный php.ini, который вы можете найти здесь: http://git.php.net/?p=php-src.git;a=blob;f=php.ini-production;hb=HEAD

Я надеюсь, что этот ответ поможет.