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

从运行WordPress的AWS服务器创建AMI后弹性IP访问遭拒绝

我之前遇到过完全一样的问题!当你基于运行中的WordPress实例创建AMI后,新实例启动出现connection refused但SSH/FTP正常,核心原因基本都是配置绑定了原实例的专属信息或者新实例的服务/网络没跟上,咱们一步步来解决:

排查与解决步骤

1. 修正WordPress的站点URL绑定

原实例的WordPress已经把站点URL写入了数据库或者配置文件,新实例换了IP后,WordPress还在指向旧地址,这是最常见的原因:

  • 先SSH登录新实例,打开WordPress根目录下的wp-config.php(默认路径是/var/www/html/):
    sudo nano /var/www/html/wp-config.php
    
  • 如果文件里有WP_HOME和WP_SITEURL的定义,直接把值改成你的新弹性IP:
    define('WP_HOME','http://你的新弹性IP');
    define('WP_SITEURL','http://你的新弹性IP');
    
    保存退出(Ctrl+O,回车,Ctrl+X)。
  • 如果没有这两个定义,就得修改数据库。先登录MySQL(替换成你的数据库用户名和密码):
    mysql -u 你的数据库用户名 -p
    
  • 切换到WordPress对应的数据库:
    USE 你的WordPress数据库名;
    
  • 更新wp_options表中的两个关键字段:
    UPDATE wp_options SET option_value = 'http://你的新弹性IP' WHERE option_name = 'siteurl';
    UPDATE wp_options SET option_value = 'http://你的新弹性IP' WHERE option_name = 'home';
    
  • 执行完后输入exit退出MySQL。

2. 检查Web服务的运行状态与安全组

SSH能连不代表Web服务正常跑起来了,还要确认服务状态和端口开放:

  • 如果你用的是Apache,检查并启动服务:
    # 查看状态
    sudo systemctl status httpd
    # 没运行的话启动
    sudo systemctl start httpd
    # 设置开机自启,防止重启后失效
    sudo systemctl enable httpd
    
  • 如果是Nginx,操作类似:
    sudo systemctl status nginx
    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  • 检查AWS安全组:确保新实例的安全组和原实例一致,开放了80(HTTP)和443(HTTPS)端口。很多时候新实例默认用了基础安全组,没开Web端口,直接导致访问被拒绝。

3. 确认弹性IP的绑定有效性

有时候弹性IP绑定后会有短暂延迟,或者绑定过程中出现异常:

  • 先在AWS控制台解绑弹性IP,然后重新绑定到新实例,等待1-2分钟后再尝试访问。
  • 核对新实例的公网IP:在EC2实例详情里查看“IPv4 公网IP”,确保和你的弹性IP完全一致。

4. 修复WordPress文件权限

新实例启动后,文件权限可能发生变化,导致Web服务无法读取内容:

  • 进入WordPress安装目录,设置正确的用户组(Apache用apache,Nginx用www-data):
    # Apache环境
    sudo chown -R apache:apache /var/www/html/
    # Nginx环境
    sudo chown -R www-data:www-data /var/www/html/
    
  • 同时调整文件和文件夹的权限,避免过于严格:
    sudo find /var/www/html/ -type f -exec chmod 644 {} \;
    sudo find /var/www/html/ -type d -exec chmod 755 {} \;
    

最后验证

完成以上步骤后,重启Web服务:

# Apache
sudo systemctl restart httpd
# Nginx
sudo systemctl restart nginx

然后用新弹性IP访问网站,应该就能正常打开了。如果还是不行,查看Web服务的错误日志找线索:

# Apache错误日志
sudo tail -20 /var/log/httpd/error_log
# Nginx错误日志
sudo tail -20 /var/log/nginx/error.log

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:29:11