Nginx 和 HHVM 总是 return 404
Nginx and HHVM always return a 404
我知道这不是一个罕见的问题,但不知何故我似乎无法找到直接的答案。有人能尽可能直接地回答这个问题吗?
我的 NGINX(传送静态文件)和 HHVM(hhvm index.php
来自控制台)工作正常,但我无法通过 NGINX 访问 .php一个 404
情况:
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
之间有一个 space。
更新
通过将 $document_root
更改为 /var/www
来解决
root
指令在 location
中定义,这就是为什么在 hhvm.conf 中无法通过变量 $document_root
.
访问它的原因
应该直接移动到server
层级:
server {
listen 80;
server_name localhost;
root /var/www;
location / {
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
中不需要修改,尽管您可以 do some cleanup there too.
我知道这不是一个罕见的问题,但不知何故我似乎无法找到直接的答案。有人能尽可能直接地回答这个问题吗?
我的 NGINX(传送静态文件)和 HHVM(hhvm index.php
来自控制台)工作正常,但我无法通过 NGINX 访问 .php一个 404
情况:
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
之间有一个 space。
更新
通过将 $document_root
更改为 /var/www
root
指令在 location
中定义,这就是为什么在 hhvm.conf 中无法通过变量 $document_root
.
应该直接移动到server
层级:
server {
listen 80;
server_name localhost;
root /var/www;
location / {
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
中不需要修改,尽管您可以 do some cleanup there too.