一个可以设置error_reporting在nginx.conf像这样:
fastcgi_param PHP_VALUE error_reporting=E_ALL;
Run Code Online (Sandbox Code Playgroud)
但是,如果我在一个服务器块中执行此操作,它是否会影响所有其他服务器块?我应该同时更改所有服务器块中的php设置吗?
如果服务器上的每台主机都在自己的 PHP-FPM 池中运行,那么添加fastcgi_param PHP_VALUE ...到一台 nginx 主机不会影响其他主机。
另一方面,如果所有nginx主机都使用一个 PHP-FPM 池,您应该PHP_VALUE为您拥有的每台主机指定(error_reporting=E_ALL对于其中一个,其他为空值)。由于fastcgi_param通行证PHP_VALUE如果指定,如果没有不及格。一段时间后,所有工作人员都将拥有PHP_VALUE=error_reporting=E_ALL,除非您PHP_VALUE在其他主机中明确设置。
此外,fastcgi_param PHP_VALUE ...声明相互覆盖(最后一个生效)。
重现步骤:
apt install nginx php5-fpm
/etc/nginx/sites-enabled/hosts.conf:
server {
server_name s1;
root /srv/www/s1;
location = / {
include fastcgi.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param PHP_VALUE error_reporting=E_ERROR;
}
}
server {
server_name s2;
root /srv/www/s1;
location = / {
include fastcgi.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
}
Run Code Online (Sandbox Code Playgroud)添加s1,s2到/etc/hosts
更改pm到static,pm.max_children要1在/etc/php5/fpm/pool.d/www.conf
cat /srv/www/s1/index.php:
<?php var_dump(error_reporting());
Run Code Online (Sandbox Code Playgroud)systemctl restart php5-fpm && systemctl restart nginx
curl s2 && curl s1 && curl s2
int(22527)
int(1)
int(1)
Run Code Online (Sandbox Code Playgroud)您可以设置PHP_VALUE每台服务器,这只会影响该服务器.如果您PHP_VALUE的所有服务器都需要使用PHP,请使用包含文件.
例如(debian),创建/etc/nginx/conf.d/php_settings.cnf:
fastcgi_param PHP_VALUE "upload_max_filesize=5M;\n error_reporting=E_ALL;";
Run Code Online (Sandbox Code Playgroud)
然后将此文件包含在您需要的任何服务器或位置配置中:
server {
...
location ~ \.php$ {
...
include /etc/nginx/conf.d/php_settings.cnf;
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12982 次 |
| 最近记录: |