首页 > 后端开发 > php教程 > 为什么 Nginx 下载 .php 文件而不是执行它们,我该如何修复它?

为什么 Nginx 下载 .php 文件而不是执行它们,我该如何修复它?

DDD
发布: 2024-12-05 02:37:09
原创
1046 人浏览过

Why is Nginx Downloading .php Files Instead of Executing Them, and How Can I Fix It?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板