首页 >后端开发 >php教程 >为什么 Nginx 将我的 PHP 文件作为下载而不是执行它们?

为什么 Nginx 将我的 PHP 文件作为下载而不是执行它们?

DDD
DDD原创
2024-12-02 19:04:10130浏览

Why is Nginx Serving My PHP Files as Downloads Instead of Executing Them?

Nginx 以下载方式提供 PHP 文件:解决执行问题

当遇到 Nginx 以下载方式提供 PHP 文件而不是执行它们的情况时,诊断根本原因至关重要。

检查配置文件:

  • /etc/nginx/sites-available/default: 确保 IPv4 和 IPv6 监听指令均未注释。另外,验证index.php是否包含在索引行中。
  • PHP设置:检查/etc/php5/fpm/php.ini并确认cgi.fix_pathinfo设置为0 . 此参数阻止 Web 服务器将文件扩展名附加到 FastCGI URI。

配置示例:

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/html;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name localhost;

               location ~ \.php$ {
                    try_files $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 和 php5-fpm:

sudo service nginx restart
sudo service php5-fpm restart

额外注意事项:

  • 确保在服务器上正确安装和配置 PHP。
  • 如果问题仍然存在,请检查错误日志以获取任何其他线索。

以上是为什么 Nginx 将我的 PHP 文件作为下载而不是执行它们?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn