ZF3 Nginx 提供 index.php 作为下载文件

ZF3 Nginx Serve index.php As Download File

我安装了带 nginx 的 debian 8 和 php 7 以使用 zendframework 创建端点。当我关注该网站时,我必须将这些添加到我在 nginx 中的虚拟主机配置中。就像我看到下面的代码一样:

server {
    listen 80;
    listen [::]:80;

    root /var/www/endpoint/html/public;

    server_name my_ip;

    location / {
          index index.php
          try_files $uri $uri/ @php;
    }

location @php {
        # Pass the PHP requests to FastCGI server (php-fpm) on 127.0.0.1:9000
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME /var/www/endpoint/html/public/index.php;
        include fastcgi_params;
    }}

但是当我访问该网站时,它下载 index.php 而不是执行 index.php。

希望有人能帮我解决这个问题。

我认为您需要将 fastcgi_pass 值替换为 socket path 而不是服务器地址和端口。

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

然后通过键入此命令重新启动您的 php7-fpm

sudo systemctl restart php7-fpm

感谢@Dolly-aswin,

Thx 它可以将 127.0.0.1 替换为 php-fpm sock

location ~ \.php$ {
            #fastcgi_pass   127.0.0.1:9000;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_param  SCRIPT_FILENAME /var/www/endpoint/html/public/index.php;
            include fastcgi_params;
    }

我的 ZendFramework 3 现在正在使用 Nginx (PHP 7) 在 Debian 8 上工作。