You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在现有Node/Express服务器配置WordPress并解决Cannot GET /blog/错误

解决Node/Express站点下/blog路径WordPress无法访问的问题

一、修复“Cannot GET /blog/”错误

出现这个错误的核心原因:Express无法解析PHP文件。你将WordPress放在Express的public目录下,Express仅会将其作为静态资源处理,但WordPress的核心逻辑依赖PHP脚本执行,因此返回404错误。

以下是基于Nginx反向代理的解决方案(Ubuntu环境):

  1. 调整Express服务监听地址:确保你的Express服务仅监听localhost:3000(不要占用80/443端口,留给Nginx)。
  2. 安装Nginx与PHP运行环境:
    sudo apt update
    sudo apt install nginx php-fpm php-mysql
    
  3. 配置Nginx站点规则(编辑/etc/nginx/sites-available/example.com):
    server {
        listen 80;
        server_name www.example.com;
    
        # 主站请求转发给Express服务
        location / {
            proxy_pass http://localhost:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    
        # /blog路径请求转发给PHP-FPM处理WordPress
        location /blog {
            root /var/www/;
            index index.php index.html;
    
            try_files $uri $uri/ /blog/index.php?$args;
    
            location ~ \.php$ {
                fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 替换为你的PHP版本对应的socket路径
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
        }
    }
    
  4. 迁移WordPress目录并设置权限:
    # 将原public下的blog目录移到Nginx可访问的路径
    sudo mv /path/to/your/express-app/public/blog /var/www/
    # 设置正确的权限,确保Web服务器可读写
    sudo chown -R www-data:www-data /var/www/blog
    sudo chmod -R 755 /var/www/blog
    
  5. 启用配置并重启服务:
    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
    sudo nginx -t # 验证配置语法
    sudo systemctl restart nginx
    

完成后重启Express服务,访问www.example.com/blog即可进入WordPress安装流程。

二、非WordPress站点搭建WordPress博客的通用方案

无论主站是Node/Express、Python Flask还是其他框架,核心思路是用反向代理拆分请求路由,将博客路径的请求转发给PHP环境,主站请求转发给原服务:

    1. 准备PHP环境:安装PHP-FPM(或mod_php)、MySQL,完成WordPress数据库配置。
    1. 独立部署WordPress:将WordPress安装到非主站静态资源目录的独立路径,修改wp-config.php配置站点URL:
    define('WP_HOME', 'https://www.example.com/blog');
    define('WP_SITEURL', 'https://www.example.com/blog');
    
    1. 配置反向代理:通过Nginx/Apache将/blog路径的所有请求转发到PHP运行环境,其余路径转发到原主站服务端口。
    1. 权限配置:确保Web服务器用户(如www-data)拥有WordPress目录的读写权限,尤其是上传目录。

内容的提问来源于stack exchange,提问作者psel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 19:57:25