如何解决WordPress在Nginx环境下出现404 Not Found错误

来自:素雅营销研究院

头像 方知笔记
2025年06月06日 13:03

问题概述

当您在Nginx服务器上运行WordPress时,可能会遇到”404 Not Found”错误。这种错误通常发生在访问网站页面或执行某些操作时,表明服务器无法找到请求的资源。本文将介绍几种常见原因及相应的解决方案。

常见原因及解决方法

1. 固定链接设置问题

WordPress的固定链接功能依赖于服务器配置。在Nginx环境下,如果配置不当,会导致404错误。

解决方案:

  • 登录WordPress后台
  • 进入”设置” > “固定链接”
  • 选择”朴素”以外的任何选项
  • 保存设置后,需要配置Nginx的rewrite规则

2. Nginx配置缺失

Nginx默认不会自动处理WordPress的URL重写,需要手动添加配置。

解决方案: 在Nginx配置文件中添加以下代码(通常在/etc/nginx/sites-available/your-site):

location / {
try_files $uri $uri/ /index.php?$args;
}

然后重新加载Nginx配置:

sudo nginx -t && sudo systemctl reload nginx

3. 文件权限问题

不正确的文件权限可能导致Nginx无法访问WordPress文件。

解决方案: 设置正确的文件权限:

sudo chown -R www-data:www-data /var/www/your-wordpress-site
sudo find /var/www/your-wordpress-site -type d -exec chmod 755 {} \;
sudo find /var/www/your-wordpress-site -type f -exec chmod 644 {} \;

4. PHP-FPM配置问题

如果PHP处理器未正确配置,可能导致动态内容无法执行。

解决方案: 检查Nginx配置中PHP处理部分是否正确:

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

确保路径与您安装的PHP版本匹配。

其他排查方法

  1. 检查错误日志
sudo tail -f /var/log/nginx/error.log
  1. 禁用插件:有时插件冲突会导致404错误,尝试禁用所有插件后逐一启用测试。

  2. 检查.htaccess文件:虽然Nginx不使用.htaccess,但确保没有残留文件干扰:

rm /var/www/your-wordpress-site/.htaccess

总结

WordPress在Nginx环境下出现404错误通常与服务器配置有关,特别是URL重写规则。通过正确配置Nginx、设置适当的文件权限和检查PHP处理器,大多数问题都可以解决。如果问题仍然存在,建议查阅Nginx和WordPress的官方文档或寻求专业技术支持。