我知道这不是一个不常见的问题,但不知何故,我似乎无法找到直接的答案。有人能够尽可能直接地回答这个问题吗?

我的 NGINX(提供静态文件)和 HHVM(来自控制台的 hhvm index.php)工作正常,但我无法在没有 404 的情况下通过 NGINX 访问 .php

情况:
HHVM 3.5.0
nginx 1.7.9

我的/etc/nginx/conf.d/default.conf 中有这个

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /var/www;
        index  index.php index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    include hhvm.conf;
}

在 HHVM.conf 中
location ~ \.(hh|php)$ {
    fastcgi_keep_conn on;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

最佳答案

将以下 HHVM conf 替换为您的:

location ~ \.(hh|php)$ {
    fastcgi_keep_conn on;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

问题

我看到 $document_root$fastcgi_script_name 之间有一个空格。

更新
通过使用 $document_root 更改 /var/www 解决

关于php - Nginx 和 HHVM 总是返回 404,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28308099/

10-16 12:08