Инструменты пользователя

Инструменты сайта


web:nginx:phpfpmmax

Установка директив php.ini в конфиге Nginx

Для установки директив php.ini используется параметр конфигурации Nginx - fastcgi_param PHP_VALUE

Важно! В одном блоке location можно указать только 1 строчку PHP_VALUE , но она может быть многострочной. В каждой строке должна быть только 1 директива php.ini

примет конфигурации Nginx:

server {
    ...
    location / {
   include fastcgi_params;
        fastcgi_index index.php;
        fastcgi_param PHP_VALUE "
            session.cookie_domain = site.ru
            session.save_path = \"/srv/site.ru/sess\"
            error_log = /srv/site.ru/data/logs/php_errors.log
            open_basedir= /srv/site.ru/
            upload_tmp_dir = /srv/site.ru/tmp
        ";
    ...
    }
}

Очень важно! Если у вас несколько сайтов и вы переопределили разные директивы php.ini для разных сайтов то результат будет смешение этих директив (php 7.2 в 7.1 похоже такого нет), то есть нужно переопределять одинаковые директивы для всех сайтов или location

так же конфигурация для сайта можно вынести в отдельный файл и включить ее в конфиг в виде include

server {
    ...
    location / {
   include fastcgi_params;
        fastcgi_index index.php;
        include /srv/site.ru/php.ini;
    ...
    }
}

а в файле /srv/site.ru/php.ini разместить следующий текст:

fastcgi_param PHP_VALUE "
session.cookie_domain = site.ru
session.save_path = \"/srv/site.ru/sess\"
error_log = /srv/site.ru/data/logs/php_errors.log
open_basedir= /srv/site.ru/
upload_tmp_dir = /srv/site.ru/tmp
";

Если внутри параметра PHP_VALUE нужно использовать двойные кавычки, то их надо квотировать как в строчке session.save_path = \«/srv/site.ru/sess\»

Eng

When you use Nginx and you want to set PHP settings inside a location block, you use fastcgi_param in combination with PHP_VALUE:

''fastcgi_param PHP_VALUE "error_log=\"/path/to/logs/project-name.error\"";''

But: you cannot add multiple PHP_VALUE lines, because each will overwrite the previous one: <code> fastcgi_param PHP_VALUE «error_log=\»/path/to/logs/project-name.error\«»; fastcgi_param PHP_VALUE «auto_prepend_file=\»/path/to/xhprof/header.php\«»;

</file> Instead, you must set all values in a single PHP_VALUE, spread over multiple lines: <code> fastcgi_param PHP_VALUE «error_log=\»/path/to/logs/project-name.error\« auto_prepend_file=\»/path/to/xhprof/external/header.php\«»;

</file>

web/nginx/phpfpmmax.txt · Последнее изменение: novik