nginx + PHP5-FPM: eventual 500 errors for single site

Discussion in 'Server Operation' started by 37minutes, Mar 28, 2012.

  1. 37minutes

    37minutes New Member

    Hi,

    I've just setup my nginx <--socket--> php5-fpm web server. It's working pretty well except for one problem: on one of my php sites, when I browse around to different pages, I eventually get a 500 error. And once it shows up, I'll get 500 errors for the rest of the site until I restart php5-fpm. But *not* on other php sites being hosted on the same server! I have several Wordpress installations using the same php socket, and they work fine even after the 500 errors show up on this certain site.

    What could possibly be the problem? I've looked in all the logs I could find, but they don't show what's causing the problem. (e.g., the php5-fpm log just says that it is running and ready to accept connections; the nginx log doesn't print anything in the error log--it just prints the GET request in the access log)

    The problematic site's nginx configuration:

    Code:
        server {
    
            listen       80;
            server_name  www.jimtulpulco.com jimtulpulco.com;
    		root   		 /srv/www/jimtulpulco.com/public_html/;
    
    		location / {
    		index index.html index.htm index.php;
    		}
    
    		if (!-e $request_filename) {
    		rewrite ^(.+)$ /index.php?q=$1 last;
    		}
    
    		location ~ \.php$ {
    		try_files $uri =404;
        	fastcgi_pass unix:/var/run/php5-fpm.sock;
        	fastcgi_index index.php;
    		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        	include /etc/nginx/fastcgi_params;
        	}
    
        }

    My php5-fpm.conf:

    Code:
    [www]
    
    user = www-data
    group = www-data
    
    listen = /var/run/php5-fpm.sock
    listen.mode = 0666
    
    pm = static
    
    pm.max_children = 15
    pm.max_requests = 100
    request_terminate_timeout = 30s
    
    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp
    
    php_admin_value[error_log] = /var/log/fpm-php.www.log
    php_admin_flag[log_errors] = on
    php_admin_value[memory_limit] = 128M

    My fastcgi_params:

    Code:
    fastcgi_param	QUERY_STRING		$query_string;
    fastcgi_param	REQUEST_METHOD		$request_method;
    fastcgi_param	CONTENT_TYPE		$content_type;
    fastcgi_param	CONTENT_LENGTH		$content_length;
    
    fastcgi_param	SCRIPT_FILENAME		$request_filename;
    fastcgi_param	SCRIPT_NAME		$fastcgi_script_name;
    fastcgi_param	REQUEST_URI		$request_uri;
    fastcgi_param	DOCUMENT_URI		$document_uri;
    fastcgi_param	DOCUMENT_ROOT		$document_root;
    fastcgi_param	SERVER_PROTOCOL		$server_protocol;
    
    fastcgi_param	GATEWAY_INTERFACE	CGI/1.1;
    fastcgi_param	SERVER_SOFTWARE		nginx/$nginx_version;
    
    fastcgi_param	REMOTE_ADDR		$remote_addr;
    fastcgi_param	REMOTE_PORT		$remote_port;
    fastcgi_param	SERVER_ADDR		$server_addr;
    fastcgi_param	SERVER_PORT		$server_port;
    fastcgi_param	SERVER_NAME		$server_name;
    
    fastcgi_param	REDIRECT_STATUS		200;
    fastcgi_buffers 256 16k;
    fastcgi_buffer_size 32k;
     
    Last edited: Mar 28, 2012
  2. falko

    falko Super Moderator

Share This Page