PHP-FPM正在运行,NGINX正在运行。 NGINX确实读取了PHP-FPM的套接字。 我停止PHP-FPM,我得到了错误的网关错误。 但是,什么都不显示。 我已经检查了nginx / error.log和php5-fpm.log,并且没有错误。
我更改了PHP-FPM中的日志logging以查看正在发生的事情,并根据需要创buildsubprocess(pm = ondemand)。
这是我的php-fpm.conf:
pid = /var/run/php5-fpm.pid error_log = /var/log/php5-fpm.log log_level = debug include=/etc/php5/fpm/pool.d/*.conf
pool.d / www.conf(那里唯一的文件)[www] user = www-data group = www-data
listen=/var/run/php5-fpm.sock listen.owner=www-data listen.group=www-data pm=ondemand pm.max_children=4 pm.start_servers=2 pm.min_spare_servers=1 pm.max_spare_servers=3 chdir=/
这里是nginx.conf
user www-data www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; } http { client_max_body_size 32M; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_disable "msie6"; upstream php { server unix:/var/run/php5-fpm.sock; } include /etc/nginx/sites-enabled/*; }
如果在某个地方出现了错误,我会尝试做一些事情,但是在这里,我甚至不知道为什么这样做不起作用。 我试过的唯一的事情是重启两台服务器,但没有帮助。
编辑:这是一个单一的虚拟服务器,这不起作用
server { listen 80; server_name example.com www.example.com; index index.php; root /var/www/example.com; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
/var/www/example.com中的目录和文件权限是root:www-data rwxr-xr-x
也忘了提及:
NGINX Version: 1.8.0 PHP version: 5.6.11-1~dotdeb+7.1 w/ Zeng Opcache v7.0.6-dev
我发现了问题并解决了它:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
这是从虚拟服务器configuration丢失的行。 我只是将其添加到fastcgi_params文件(我的猜测是,它在更新过程中从该文件中删除)