Nginx服务器某个目录无法执行PHP文件
程序员文章站
2022-05-05 13:20:48
...
服务器使用的LNMP 的配置,但是只能访问静态的HTML CSS JS,一访问PHP文件就下载了下来。
但是这个服务器上的其他项目,PHP文件是可以正常执行的。
请教各位大神怎么解决?
但是这个服务器上的其他项目,PHP文件是可以正常执行的。
请教各位大神怎么解决?
Nginx配置,域名是mydomain.com
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;
}
}
回复内容:
服务器使用的LNMP 的配置,但是只能访问静态的HTML CSS JS,一访问PHP文件就下载了下来。
但是这个服务器上的其他项目,PHP文件是可以正常执行的。
请教各位大神怎么解决?
Nginx配置,域名是mydomain.com
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;
}
}
提示下载,证明Nginx并没有把PHP文件交给后端的PHP-FPM执行而是作为一个普通资源返回给浏览器了.尝试把:location ~ [^/]\.php(/|$)
改为 location ~ \.php$
我猜你的sever配置有点问题,和其他的配置比对一下
推荐阅读
-
为什么在服务器上php里执行file_put_contents创建文件返回是false呢,文件目录已经设置为777的权限了,不解
-
Apache Nginx 禁止目录执行PHP脚本文件的方法
-
为什么在服务器上php里执行file_put_contents创建文件返回是false呢,文件目录已经设置为777的权限了,不解
-
为什么在服务器上php里执行file_put_contents创建文件回到是false呢,文件目录已经设置为777的权限了,不解
-
nginx-php-服务器 - nginx+php:可以正确解释php文件,但是点php页面的链接会404或者直接显示php文件所在目录的文件列表
-
nginx-php-服务器 - nginx+php:可以正确解释php文件,但是点php页面的链接会404或者直接显示php文件所在目录的文件列表
-
Nginx服务器某个目录无法执行PHP文件
-
Apache Nginx 禁止目录执行PHP脚本文件的方法
-
PHP脚本文件被Apache Nginx 禁止目录执行的方法
-
PHP脚本文件被Apache Nginx 禁止目录执行的方法