viewlog.php errors w/nginx+php-fpm
|
06-26-2015, 10:42 AM
Post: #1
|
|||
|
|||
viewlog.php errors w/nginx+php-fpm
Recently I took my WPT server from an Apache+mod_php setup to Nginx+php-fpm and I have been running into an issue with the viewlog.php getting processed correctly. Basically, on the Apache setup things work as expected. However, under my nginx+php-fpm setup I got a 404 error.
Things I have checked: file permissions making sure php-fpm runs under the right user/group nginx setup php-fpm setup Its very frustrating because I cant seem to get to the root of WHY this is 404ing. I've tried turning on debug level logging in php-fpm and that didnt turn anything up. I am doing unix sockets instead of tcp sockets for the handoff to php-fpm, no idea if this makes a difference or not. Below are sanitized config files from nginx and php-fpm: nginx.conf ----- # Main Module user nginx; worker_processes 2; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Events Module events { worker_connections 4096; multi_accept on; use epoll; } http { # Basic Settings include /etc/nginx/mime.types; default_type application/octet-stream; server_tokens off; # Logging log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; # Buffers & Timeouts sendfile on; tcp_nopush on; tcp_nodelay on; types_hash_max_size 2048; send_timeout 2; keepalive_timeout 10; keepalive_requests 10000; reset_timedout_connection on; client_body_timeout 10; client_body_buffer_size 128k; client_header_timeout 30; # File Cache Settings open_file_cache max=5000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; # Gzip Settings gzip on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 6; gzip_proxied any; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js; gzip_buffers 16 8k; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; # Virtual Host Configs include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } site config ---- server { listen 80; server_name localhost; root /opt/x/y; index index.php; location /install/ { allow x.x.x.x; allow y.y.y.y; deny all; } location /settings/ { allow x.x.x.x; allow y.y.y.y; deny all; } location /testlog.php { allow x.x.x.x; allow y.y.y.y; deny all; } location /testlog/ { allow x.x.x.x; allow y.y.y.y; deny all; } location /cli/ { deny all; } location ~ ^/(status|healthcheck)$ { allow 127.0.0.1; allow x.x.x.x; allow y.y.y.y; deny all; include fastcgi_params; fastcgi_pass unix:/var/run/php55-fpm.sock; } # redirect server error pages to the static pages # error_page 404 /404.html; error_page 500 502 503 504 /50x.html; # Pass PHP-Files To Pool via UNIX Sockets location ~ \.php?$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/var/run/php55-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; fastcgi_split_path_info ^(.+\.php)(.*)$; #Buffer all the things #Max response size = 252k #Avg response size = 437b fastcgi_buffers 1024 1k; fastcgi_buffer_size 1k; fastcgi_busy_buffers_size 1023k; fastcgi_temp_file_write_size 512k; fastcgi_read_timeout 120; #Prevent version info leakage fastcgi_hide_header X-Powered-By; } location ~ /\.ht { deny all; } } php-fpm.conf ---- include=/etc/php-fpm.d/*.conf [global] pid = /var/run/php-fpm/php-fpm.pid error_log = /var/log/php-fpm/error.log log_level = notice daemonize = yes ;;;;;;;;;;;;;;;;;;;; ; Pool Definitions ; ;;;;;;;;;;;;;;;;;;;; ; See /etc/php-fpm.d/*.conf www php-fpm pool conf ---- [www] listen = /var/run/php55-fpm.sock listen.allowed_clients = 127.0.0.1 listen.owner = nginx listen.group = nginx listen.mode = 0660 user = nginx group = nginx pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 4096 pm.status_path = /status ping.path = /healthcheck ping.response = pong slowlog = /var/log/php-fpm/www-slow.log rlimit_files = 1024 catch_workers_output = yes php_flag[display_errors] = on php_admin_value[error_log] = /var/log/php-fpm/www-error.log php_admin_flag[log_errors] = on php_value[session.save_handler] = files php_value[session.save_path] = /var/lib/php/session php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache If anyone has a guess as to what I've screwed up I'm all ears, thanks! |
|||
07-23-2015, 05:38 AM
Post: #2
|
|||
|
|||
RE: viewlog.php errors w/nginx+php-fpm
As it turns out the way the PHP code for this page is written is wrong. It works on Apache because Apache is stupid and starts displaying the output before the PHP returns a 400 error. In Nginx this fails because it waits until it gets the HTTP response code of 400 and shows the actual error.
|
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)