@Artikul2

Как мне для разных сайтов использовать свой php.ini?

Установил NGINX и PHP в ubuntu.
Build System	Linux
Server API	FPM/FastCGI
Virtual Directory Support	disabled
Configuration File (php.ini) Path	/etc/php/8.2/fpm
Loaded Configuration File	/etc/php/8.2/fpm/php.ini
Scan this dir for additional .ini files	/etc/php/8.2/fpm/conf.d

В /etc/nginx/sites-available у меня настройки для доменов.
Хотел, чтобы не править общий php.ini, сделать дополнительный php.ini для каждого сайта со своими параметрами.
Добавил в конфиг хоста
server {
    ...
    location ~ \.php$ {
        ...
        fastcgi_param PHP_VALUE "config_file=/путь_к_файлу_php_ini/site1.ini";
        ...
    }
    ...
}

а в сам site1.ini для теста
[PHP]
short_open_tag=On

Если смотреть phpinfo, то видно что появилась строка $_SERVER['PHP_ADMIN_VALUE'] с моим путем к кастомному ini, но
значения не работают - short_open_tag=Off. Т.е. параметры не перебиваются моим ini.

Как мне для разных сайтов использовать свой php.ini, а лучше чтобы php.ini работал главный, а в кастомных я вносил только некоторые нужные изменения?
  • Вопрос задан
  • 337 просмотров
Решения вопроса 1
yesbro
@yesbro
Думаю, помогаю думать
Добавить в один php.ini файл данные из другого нельзя. Так же то, что ты придумал опцию config_file никак тебе не поможет.

Начни с чтения вот этого документа https://www.php.net/manual/ru/configuration.file.p...

Так же можно, как ты уже делал, использовать конструкцию fastcgi_param PHP_VALUE "" для каждой нужной опции в конфиге nginx.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
karabanov
@karabanov
Системный администратор
В конфиг PHP-FPM добавь несколько разных pool-в с какими хочешь настройками - передавать параметры с помощью fastcgi_param нет необходимости.
Ответ написан
Комментировать
Можно прям тут.
Опять же у каждого сайта будет свой юзер и група
listen = /var/lib/php7.4-fpm/web2.sock
listen.owner = web2
listen.group = www-data
listen.mode = 0660

user = web2
group = client2

pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 0

chdir = /

env[HOSTNAME] = $HOSTNAME
env[TMP] = /var/www/clients/client2/web2/tmp
env[TMPDIR] = /var/www/clients/client2/web2/tmp
env[TEMP] = /var/www/clients/client2/web2/tmp
env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


php_admin_value[mbstring.func_overload] = 2
php_admin_value[default_charset] = utf-8
php_admin_value[max_input_vars] = 10000
php_admin_value[max_file_uploads] = 500
php_admin_value[max_execution_time] = 300
php_admin_value[post_max_size] = 1040M
php_admin_value[upload_max_filesize] = 1040M
php_admin_value[pcre.backtrack_limit] = 1000000
php_admin_value[pcre.recursion_limit] = 100000
php_admin_value[realpath_cache_size] = 2048k
php_admin_value[mbstring.internal_encoding] = UTF-8
php_admin_value[date.timezone] = Europe/Moscow
php_admin_value[memory_limit] = 256M
php_admin_value[zend_extension] = opcache.so
php_admin_flag[opcache.enable] = 1
php_admin_value[opcache.memory_consumption] = 2048
php_admin_value[opcache.interned_strings_buffer] = 512
php_admin_value[opcache.max_accelerated_files] = 100000
php_admin_flag[opcache.max_wasted_percentage] = 1
php_admin_flag[opcache.validate_timestamps] = 1
php_admin_flag[opcache.revalidate_freq] = off
php_admin_flag[opcache.fast_shutdown] = 1
php_admin_flag[opcache.save_comments] = 1
php_admin_flag[opcache.load_comments] = 1
php_admin_flag[opcache.revalidate_freq] = off
php_admin_flag[mail.add_x_header] = On
php_admin_flag[short_open_tag] = On
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы