Heim >Backend-Entwicklung >PHP-Tutorial >Nginx服务器某个目录无法执行PHP文件
服务器使用的LNMP 的配置,但是只能访问静态的HTML CSS JS,一访问PHP文件就下载了下来。
但是这个服务器上的其他项目,PHP文件是可以正常执行的。
请教各位大神怎么解决?
Nginx配置,域名是mydomain.com
<code>user www www; worker_processes auto; error_log /home/wwwlogs/nginx_error.log crit; pid /usr/local/nginx/logs/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; multi_accept on; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 50m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 500; fastcgi_send_timeout 500; fastcgi_read_timeout 500; fastcgi_buffer_size 1024k; fastcgi_buffers 16 1024k; fastcgi_busy_buffers_size 1024k; fastcgi_temp_file_write_size 1024k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\."; #limit_conn_zone $binary_remote_addr zone=perip:10m; ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section. server_tokens off; #log format log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; server { listen 80; server_name mydomain.com; #access_log main; /home/wwwlogs/mydomain.log mydomain root /wwwroot/web/mydomain.com/web; index index.html index.htm index.php; location ~ [^/]\.php(/|$) { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi.conf; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } </code>
服务器使用的LNMP 的配置,但是只能访问静态的HTML CSS JS,一访问PHP文件就下载了下来。
但是这个服务器上的其他项目,PHP文件是可以正常执行的。
请教各位大神怎么解决?
Nginx配置,域名是mydomain.com
<code>user www www; worker_processes auto; error_log /home/wwwlogs/nginx_error.log crit; pid /usr/local/nginx/logs/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; multi_accept on; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 50m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 500; fastcgi_send_timeout 500; fastcgi_read_timeout 500; fastcgi_buffer_size 1024k; fastcgi_buffers 16 1024k; fastcgi_busy_buffers_size 1024k; fastcgi_temp_file_write_size 1024k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\."; #limit_conn_zone $binary_remote_addr zone=perip:10m; ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section. server_tokens off; #log format log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; server { listen 80; server_name mydomain.com; #access_log main; /home/wwwlogs/mydomain.log mydomain root /wwwroot/web/mydomain.com/web; index index.html index.htm index.php; location ~ [^/]\.php(/|$) { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi.conf; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } </code>
提示下载,证明Nginx并没有把PHP文件交给后端的PHP-FPM执行而是作为一个普通资源返回给浏览器了.尝试把:location ~ [^/]\.php(/|$)
改为 location ~ \.php$
我猜你的sever配置有点问题,和其他的配置比对一下