PHP-FPM is running, NGINX is running. NGINX does read the socket for PHP-FPM. I stopped PHP-FPM and I got bad gateway error. However, nothing gets displayed. I have checked nginx/error.log and php5-fpm.log and there is no error regarding that.

I changed logging in PHP-FPM to see what is happening and based on requests it creates child processes as needed (pm=ondemand).

Here is my php-fpm.conf:

pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
log_level = debug

pool.d/www.conf (the only file there) [www] user=www-data group=www-data



and here is 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/*;

If there was an error in somewhere, I would have tried to do something but here, I don't even know why this is not working. The only thing I tried was to restart both servers and that didn't help.

EDIT: Here is a single virtual server that this doesn't work with

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;


Directory and file permissions inside /var/www/example.com are root:www-data rwxr-xr-x

Also forgot to mention:

NGINX Version: 1.8.0
PHP version: 5.6.11-1~dotdeb+7.1 w/ Zeng Opcache v7.0.6-dev

I found the problem and solved it:

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

This is the line that was missing from virtual server config. I just added it into fastcgi_params file (my guess is, it was removed from that file during update)

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.