1

I am planning to switch my website (drupal 6.25) from apache to nginx. i have prepared everything for nginx and tested it on port 81. it is working fine. and now i changed listen from 81 to 80 and stop apache and start nginx. the website starts giving


504 Gateway Time-out nginx/0.8.54

and serves nothing :( my nginx server is

server {
        listen   80 backlog=128;
        root /var/www/web1/htdocs;
        index index.php index.html index.htm;        
        server_name www.example.com;

        location / {
        if (!-e $request_filename) {
                rewrite ^/(.*)$ /index.php?q=$1 last;
                }
        }

        access_log /var/log/nginx.web1.log;
        error_log /var/log/nginx.web1.error.log error;
        location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico)$ {
                rewrite ^/favicon.ico$ /sites/all/themes/sky/favicon.ico break;
                access_log        off;
                expires           30d;
        }
        location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        #fastcgi_pass  127.0.0.1:9000; #I have tried this option as well
        fastcgi_pass  unix:/tmp/php.socket;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/web1/htdocs/$fastcgi_script_name;
    }
}

and the nginx.conf contains:


user www-data;
worker_processes 5;
pid /var/run/nginx.pid;

events {
        worker_connections 64;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        keepalive_requests      20;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_static       on;
        gzip_disable "msie6";

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

 include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}


#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}

any idea of what is wrong? or how can i fix it?
Thanks a lot for your help

Alaa Alomari
  • 638
  • 6
  • 19
  • 37
  • The error says "Gateway timeout" yet you're not showing any configuration of PHP. Please provide this or people won't be able to help you much. – Martin Fjordvald May 03 '12 at 12:08
  • in php.ini, i have request_terminate_timeout=30s max_execution_time = 30 memory_limit = 2048M default_socket_timeout = 60 what else you might need from php.ini? – Alaa Alomari May 03 '12 at 12:42
  • Anything in `/var/log/nginx/access.log` or `/var/log/nginx/error.log`? – pjmorse May 03 '12 at 13:30
  • 1
    Mostly interested in how you spawn php, I was suspecting that you didn't at all but I didn't want to put an answer until I knew it. Seems vartec didn't mind though so follow his advice. – Martin Fjordvald May 03 '12 at 14:18
  • @pjmorse: nothing wrong at all in the error log. – Alaa Alomari May 05 '12 at 09:27
  • @MartinFjordvald: please excuse my limited experience in nginx. what i have done is installing nginx and php5-cgi and made the above configuration only. i was happy when i works when i tried it, but once moved it to live, it started the troubles. I am sure i missed something, please advise – Alaa Alomari May 05 '12 at 10:59
  • Did vartec's answer not provide a solution? His answer would be my primary guess as well. If not, switching back to port 81 makes it work for you? – Martin Fjordvald May 05 '12 at 22:33
  • @MartinFjordvald : when i return it to port 81 (restricted access to my office only) it works fine, but once switched to port 80 (live) it starts giving the problem. it seems my fpm installation has a problem and don't spawn php – Alaa Alomari May 06 '12 at 06:40

1 Answers1

1

You're trying to connect to PHP Fast-CGI on unix:/tmp/php.socket, but you're not running PHP Fast-CGI daemon. PHP-FPM is a separate daemon and nginx will not spawn it automatically.

See PHP documentation on deploying FastCGI Process Manager (FPM) and HOWTO for installing Nginix + PHP-FPM on Ubuntu

If you're using standard install, you're most likely will have a service named php-fpm or php5-fpm, which you should start and add to list of services started automatically.

vartec
  • 6,217
  • 2
  • 33
  • 49