Nginx 将 .php 文件作为下载而不是执行它们
在这种情况下,Nginx 错误地处理 .php 文件,下载它们而不是执行它们执行他们。要纠正此问题,必须进行某些配置调整。
1.取消注释监听行:
修改 /etc/nginx/sites-available/default 以启用 Nginx 监听 IPv4 和 IPv6 端口 80:
listen 80; ## listen for ipv4; listen [::]:80 default_server ipv6only=on; ## listen for ipv6
2 。设置服务器名称:
确保 server_name 反映实际的服务器名称,例如 server_name example.com;.
3.将index.php添加到索引行:
在根指令中,将index.php添加到索引文件列表:
root /var/www/html; index index.php index.html index.htm;
4.取消注释 PHP Location 块:
取消注释 location ~ .php$ {} 块以启用 PHP 处理:
location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+?\.php)(/.+)?$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
5.在 php.ini 中禁用 Pathinfo Fix:
编辑 /etc/php5/fpm/php.ini 并设置 cgi.fix_pathinfo = 0。
6.重启 Nginx 和 PHP-FPM:
重启 Nginx 和 PHP-FPM:
sudo service nginx restart && sudo service php5-fpm restart
修改配置:
server { listen 80; listen [::]:80 default_server ipv6only=on; root /var/www/html; index index.php index.html index.htm; # Make site accessible from http://example.com/ server_name example.com; location ~ \.php$ { try_files $uri $uri/ =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location / { try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules }
实施这些更改后,Nginx 应该正确执行 .php 文件。
以上是为什么 Nginx 下载 .php 文件而不是执行它们,我该如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!