ZF3 Nginx Serve index.php作为下载文件

ZF3 Nginx Serve index.php作为下载文件,php,linux,nginx,debian,zend-framework3,Php,Linux,Nginx,Debian,Zend Framework3,我安装了带有nginx和php7的debian 8,用于使用zendframework创建端点。当我关注这个网站时,我必须将它们添加到nginx中的虚拟主机配置中。就像我看到下面的代码一样: server { listen 80; listen [::]:80; root /var/www/endpoint/html/public; server_name my_ip; location / { index index.php

我安装了带有nginx和php7的debian 8,用于使用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\u 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(PHP7)处理Debian 8。

位置内的索引
进行内部重定向。@Deadooshka你能告诉我应该如何解决这个问题吗?这是来自原始github的信息,我不确定您是否需要那里的
索引
,因为我看不到
.php
@Deadooshka dunno的正确
位置。但是当我不在[at]php中使用zf配置时,它就正常工作了。我认为这个配置的逻辑很糟糕,因为如果客户机请求真实的php文件,那么它本身就会得到一个php脚本。您至少需要默认的php处理程序
location\.php${}
噢,对不起。我忘了调整PHP7。我会编辑我的答案,你能接受吗?@DollyAswin thx再次感谢大家的大力支持。如果到今天为止还没有修复,我就必须再次安装apache:)。