如何通过服务器公网IP而非域名访问Nginx部署的WordPress?
如何通过服务器公网IP而非域名访问Nginx部署的WordPress?
我来帮你一步步搞定这个问题,核心要调整两个关键部分:WordPress的文件路径/权限和Nginx配置里的server_name设置,具体操作如下:
第一步:让Nginx能正确访问到WordPress文件
你现在把WordPress解压到了~/wordpress(你的用户主目录下),但Nginx配置里指定的根路径是/var/www/html/wordpress,这会导致Nginx找不到文件。你有两种解决方式:
方式1:把WordPress文件移到Nginx指定路径
执行以下命令迁移文件:
# 先创建目标目录(如果不存在的话) mkdir -p /var/www/html/wordpress # 把所有WordPress文件移动到目标目录 mv ~/wordpress/* /var/www/html/wordpress/
方式2:修改Nginx的root路径(不移动文件)
如果不想动文件位置,直接修改Nginx配置里的root字段,比如你的用户名是ubuntu,就改成:
root /home/ubuntu/wordpress;
但这种方式需要给Nginx运行用户(通常是www-data)赋予访问你用户目录的权限:
chown -R www-data:www-data ~/wordpress chmod -R 755 ~/wordpress
第二步:配置server_name支持公网IP访问
你的Nginx配置里server_name ?;这部分需要修改,有几种实用选项:
- 直接填你的公网IP:比如你的公网IP是
123.45.67.89,就改成:
这种方式最明确,只有访问这个IP时才会匹配当前server块。server_name 123.45.67.89; - 用下划线匹配任意请求:如果想让这个server块处理所有到服务器80端口的请求(不管用IP还是其他域名访问),可以改成:
server_name _; - 留空:直接写
server_name ;也能实现任意请求匹配,但用下划线的方式更符合Nginx的规范。
第三步:验证配置并重启服务
修改完Nginx配置后,先检查语法是否正确:
nginx -t
如果提示test is successful,就重启Nginx服务:
systemctl restart nginx
同时确认PHP-FPM服务正常运行:
systemctl status php8.1-fpm
如果没运行,就启动它:
systemctl start php8.1-fpm
第四步:开放服务器80端口防火墙
最后要确保服务器防火墙允许80端口的入站请求,以常用的ufw为例:
ufw allow 80/tcp
做完这些后,直接在浏览器输入服务器的公网IP,就能进入WordPress的安装向导了。注意安装时站点URL要填你的公网IP,避免后续出现跳转异常的问题。
备注:内容来源于stack exchange,提问作者palmasd1
相关产品推荐
相关产品推荐

