Nginx + PHP5-FPM doesn't work
Nginx 1.6.2
PHP 5
This is my nginx configuration:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name 23.239.13.154;
location / {
try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ {
try_files $uri =404;
fastcgisplitpath_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgiparam SCRIPTFILENAME $documentroot$fastcgiscript_name;
include fastcgi_params;
}
}
This configuration worked fine for 40 days.
Now, when I try execute some php script, the script is downloaded.
Nginx version: 1.4.6 and 1.6.2. Both versions have the same problem.
I tryed a lot of different approachs, but stil not working.
Why sometimes nginx is so hard?
I need to use Nginx + Wordpress.
1 Reply
E.g., the general try_files in the / block will redirect non-static requests to the WordPress PHP-based script, which will then usually be handed off to FastCGI through the php block definition.
If removing that doesn't help, I would suggest enabling debugging (add "debug" to your error log) and then reviewing the log for a controlled request which will let you know exactly how it's being processed This assumes you're using a binary with debug support enabled (use -V to check for "with-debug").
BTW, when I was testing an nginx-fronted WP configuration a while back, my root try_files only used /index.php?$args (e.g., no $uri) - if it's working for you this way it might not matter, but I don't think you need/want it.
– David