我正在设置一个带有 wordpress 的子域。我的 nginx 配置出现 404 错误。目前使用的 PHP 版本:7.0.22,php 日志中没有出现任何错误,但我在 nginx 中
/var/log/nginx/error.log
*1 open() "/usr/share/nginx/html/50x.html" failed (2: No such file or directory), client: xxx.xxx.xxx.xxx, server: kb.workspire.io, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php7-fpm.sock", host: "kb.workspire.io"
这是我当前的服务器块
/etc/nginx/sites-available/kb.workspire.io
server {
listen 80
server_name kb.workspire.io;
root /var/www/kb.workspire.io/wordpress;
index index.php;
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
listen 443 ssl;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php7-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
答案1
此处的位置块:
location = /50x.html {
root /usr/share/nginx/html;
}
告诉 nginx 获取自定义错误页面/usr/share/nginx/html/50x.html
,但由于该页面不存在而引发错误。
如果您使用自定义错误页面,则需要修复路径以便可以找到它们。 50x.html 页面应该在 中,/usr/share/nginx/html
但 40x.html 页面却在 中,这看起来确实很奇怪/var/www/kb.workspire.io/wordpress
。
如果你是不是使用自定义错误页面,您可以删除error_page
指令和location = /50x.html
块。