Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

i get 504 gateway timeout when i try to reach my server a small check didn't find any logs on php5-fpm logs, but just to make sure, i tried to restart it. when i'm trying to restart it:

sudo service php5-fpm restart

i get [fail] but when i do

sudo service php5-fpm stop
sudo service php5-fpm start

I get no error.

how can i investigate it if there are no logs? what can i do?

share|improve this question

5 Answers 5

up vote 5 down vote accepted

Did you check your error_log file for php-fpm? Location of that file should be declared in your php-fpm.conf (in Ubuntu config is /etc/php5/fpm/php-fpm.conf, log file is /var/log/php5-fpm/log), also check your log_level, if is disabled (;log_level), please enable it and change it to the debug. After that try restart php5-fpm service and check your logs.

You can also try to run php5-fpm in foreground mode:

# php5-fpm -y /etc/php5/fpm/php-fpm.conf

Maybe this show you something interesting.

share|improve this answer
1  
In my case, this command started php5-fpm whereas service php5-fpm start did not. Thanks! –  David Thomas Jul 26 '14 at 10:23
    
Davis, it seems to work for me +1! But.. jamzed gave me the solution, I found some error +1! thank you all! –  Tenaciousd93 Jun 11 at 16:27

Standard troubleshooting procedure:

  • Check the log file. If you don't know where it is check the config or to figure out for certain find the pid with ps aux | grep php-fpm, then do lsof -p $PID | grep log (omit the grep if it shows nothing).
  • 99% of the time log files will show you the cause. If not, look for a logging level in the config, raise it and try again.
  • Perhaps it quits instantly and you can't get the PID to inspect the process. You can also try starting the process in the foreground, but this means figuring out which commandline switches you need to use. Usually you just need to point it at your existing config.
  • If neither the log file or stdout/stderr (foreground output) contain include any clues it's time for strace... but that's another post.
share|improve this answer
    
+1 nice way to find the log file! –  deweydb Jun 11 at 2:42

This note helped me: https://bugs.launchpad.net/nginx/+bug/1366651

In my case, updating to nginx > 1.6.1 the parameters that are passed to php5-fpm are located in fastcgi.conf instead of in fastcgi_params, resulting in a PHP that always returns 200 (ok), but never any content, because the SCRIPT_FILENAME was no longer set.

I hope it also helps someone else.

share|improve this answer

For me, the problem was my php-fpm.conf file was not using the default config filename - it was named /etc/php5/fpm/php5-fpm.conf ( php5-fpm.conf vs php-fpm.conf )

php5-fpm -t  

[26-Jul-2014 22:39:16] ERROR: failed to open configuration file '/etc/php5/fpm/php-fpm.conf': No such file or directory (2)
[26-Jul-2014 22:39:16] ERROR: failed to load configuration file '/etc/php5/fpm/php-fpm.conf'
[26-Jul-2014 22:39:16] ERROR: FPM initialization failed

I renamed the conf file to php-fpm.conf and that fixed the problem.

sudo mv /etc/php5/fpm/php5-fpm.conf /etc/php5/fpm/php-fpm.conf
sudo service php5-fpm restart
 * Restarting PHP5 FastCGI Process Manager php5-fpm                                                                           [ OK ]
share|improve this answer

I experienced this problem of no log files then noticed that I was accessing the URL over HTTPS instead of HTTP and that protocol had not been set up in Nginx so PHP5-FPM wasn't getting the traffic.

Might help someone.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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