.png)
Я поискал здесь на serverFault и нашел это решение...
Включение этого в виртуальный хост должно работать:
php_admin_flag register_argc_argv = On
php_value max_execution_time = 1000
php_value session.gc_maxlifetime = 15000
php_admin_flag magic_quotes_gpc = on
Но потом меня осенило, я вообще не использую mod_php. У меня установлен php-fpm. И я действительно не могу найти никакой информации, сработает ли мой метод, или есть ли альтернативный способ...
Итак, что мне делать, если у меня есть php-fpm и я хочу иметь другие настройки для виртуального хоста?
С.
решение1
На php-fpm вы обычно устанавливаете это в пуле fpm домена. Пулы включены из основного файла conf php-fpm, который находится на моем сервере по адресу /etc/php/fpm-php5.3/php-fpm.conf
:
...
;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ;
;;;;;;;;;;;;;;;;;;;;
include=/var/www/*/conf/fpm-pool.conf
В fpm-pool-config вы можете установить php_admin_flag
и php_admin_value
так:
...
; php_value/php_flag - you can set classic ini defines which can
; be overwritten from PHP call 'ini_set'.
; php_admin_value/php_admin_flag - these directives won't be overwritten by
; PHP call 'ini_set'
php_flag[display_errors] = on
php_admin_value[error_log] = /var/www/cloud/logs/php_err.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 1024M
#php_value[max_execution_time] = 30
php_admin_value[upload_max_filesize] = 4G
php_admin_value[post_max_size] = 4.2G
php_admin_value[max_input_time] = 3600
php_admin_value[max_execution_time] = 3600
решение2
У меня был сервер, жадный до оперативной памяти, и я хотел избежать настройки нескольких пулов для каждого из сайтов с низким трафиком, которые я запускал. Мне также не нравились проблемы безопасности .user.ini на основе каталогов, поэтому я реализовал другое решение с использованием "секций" php.ini:
Вы можете определить разделы php.ini (в моем случае, /etc/php5/fpm/php.ini), которые являются либо специфичными для пути, либо для хоста. Внизу у меня есть:
[HOST=host1.example.com]
auto_prepend_file = '/var/www/something'
[HOST=host2.example.net]
upload_max_filesize = 5M
Я где-то читал, что если вы используете метод host, вы должны использовать конкретное значение, определенное в ServerName в конфигурации VirtualHost, а не какой-либо из псевдонимов.
P.S. Все это было сделано на Debian Jessie 8.4.
решение3
Вы можете включить эти флаги в файл .htaccess для каждого виртуального хоста, для которого вы хотите эти настройки. Смотрите:http://www.php.net/manual/en/configuration.file.per-user.php
решение4
Для nginx используйте это решение:
Так как PHP 5.3.3
вы можете использовать эту команду в вашем nginx
-vhost-файле.
Пример настройки maxlifetime
сессий:
server {
listen 80;
listen [::]:80;
...
location ~ \.php$ {
...
fastcgi_param PHP_VALUE "session.gc_maxlifetime=604800";
fastcgi_param PHP_VALUE "session.cookie_lifetime=604800";
}
}