我在这里searchserverFault分配,发现这个解决scheme…
包括在虚拟主机应该工作:
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,并且想要为虚拟主机设置不同的设置,我该怎么办?
S.
在php-fpm上,你通常将其设置在域的fpm池中。 这些池包含在php-fpm的主要configuration文件中,它位于我的服务器的/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
我有一个内存很大的服务器,并希望避免为我运行的每个低stream量站点configuration多个池。 我也不喜欢基于目录的.user.ini的安全问题,所以我使用php.ini“sections”实现了一个不同的解决scheme:
你可以定义php.ini(在我的例子中是/etc/php5/fpm/php.ini)的path或主机特定的部分。 在底部,我有:
[HOST=host1.example.com] auto_prepend_file = '/var/www/something' [HOST=host2.example.net] upload_max_filesize = 5M
我在其他地方读到,如果使用主机方法,则必须使用VirtualHostconfiguration中ServerName中定义的特定值,而不是任何别名。
PS这一切都是在Debian Jessie 8.4上完成的
您可以将这些标志包含在每个需要这些设置的虚拟主机下的.htaccess文件中。 请参阅: http : //www.php.net/manual/en/configuration.file.per-user.php
对于nginx使用这个解决scheme:
从PHP 5.3.3你可以在你的nginx -vhost-file中使用这个命令。
设置会话最maxlifetime的示例:
server { listen 80; listen [::]:80; ... location ~ \.php$ { ... fastcgi_param PHP_VALUE "session.gc_maxlifetime=604800"; fastcgi_param PHP_VALUE "session.cookie_lifetime=604800"; } }