AWS Bitnami WordPress迁移后出现HTTP Error 500问题求助
解决AWS EC2 Bitnami WordPress迁移后HTTP 500错误的排查方案
嘿,我来帮你一步步排查迁移后出现的HTTP 500错误——从GoDaddy迁到Bitnami版的AWS EC2 WordPress,很容易在配置、权限或者路径上踩坑,咱们先从最关键的地方入手:
1. 先获取具体错误信息(别盯着500这个通用提示)
500只是服务器内部错误的统称,得拿到具体日志才能定位问题:
- 查看Apache错误日志:通过SSH连接到EC2实例后,执行命令实时查看日志:
刷新网站,日志里会显示具体的错误原因(比如数据库连接失败、文件权限不足、代码语法错误等)。tail -f /opt/bitnami/apache2/logs/error_log - 开启WordPress debug日志:如果Apache日志不够详细,可开启WP自带的debug模式:
- 找到
/opt/bitnami/apps/wordpress/htdocs/wp-config.php文件 - 修改以下配置(如果没有就添加):
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
wp-content/debug.log里,这能帮你精准定位问题。 - 找到
2. 检查数据库配置与数据一致性
你替换了旧数据库表,但Bitnami的数据库默认配置和GoDaddy不一样,得确认:
- wp-config.php里的数据库参数:打开wp-config.php,核对以下字段是否和新环境匹配:
DB_NAME:Bitnami默认是bitnami_wordpress,确认你是不是把旧表导入到这个库了DB_USER:默认是bn_wordpressDB_PASSWORD:密码存放在EC2实例的/opt/bitnami/bitnami_credentials文件里,复制过来即可DB_HOST:默认是localhost,本地数据库不用改动
- 更新域名配置:旧数据库的
wp_options表里还存着GoDaddy的旧域名,必须改成新的AWS域名/自定义域名,执行SQL语句:UPDATE wp_options SET option_value = 'https://你的新域名.com' WHERE option_name = 'siteurl'; UPDATE wp_options SET option_value = 'https://你的新域名.com' WHERE option_name = 'home';
3. 修复文件权限(Bitnami环境的权限规则很严格)
用FileZilla上传的文件,权限大概率和Bitnami的要求不匹配,这是500错误的高发原因:
- 修复所有文件的所有者和权限:
sudo chown -R daemon:daemon /opt/bitnami/apps/wordpress/htdocs sudo find /opt/bitnami/apps/wordpress/htdocs -type d -exec chmod 755 {} \; sudo find /opt/bitnami/apps/wordpress/htdocs -type f -exec chmod 644 {} \; - 单独确保上传目录的读写权限:
sudo chmod -R 775 /opt/bitnami/apps/wordpress/htdocs/wp-content/uploads
4. 排查插件/主题兼容性问题
旧环境的插件或主题可能和Bitnami的PHP版本(一般比较新)不兼容:
- 临时禁用所有插件:把
wp-content/plugins文件夹重命名为plugins-old,WordPress会自动禁用所有插件,之后刷新网站看是否恢复正常。如果正常,再逐个恢复插件,找出冲突的那个。 - 测试默认主题:把当前使用的主题文件夹重命名,让WordPress自动切换到默认主题(比如Twenty Twenty-Four),排查主题是否有问题。
5. 修复.htaccess配置
Bitnami的Apache规则和GoDaddy不同,旧的.htaccess可能导致错误:
- 先把旧的
.htaccess重命名为.htaccess-old - 如果能进入WordPress后台,到「设置→固定链接」页面点击「保存更改」,让系统自动生成适配Bitnami环境的.htaccess
- 若无法进入后台,手动创建
.htaccess文件,内容如下:
然后设置权限:# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPresssudo chmod 644 /opt/bitnami/apps/wordpress/htdocs/.htaccess
6. 重启Apache服务
最后重启Apache让所有配置生效:
sudo /opt/bitnami/ctlscript.sh restart apache
先按这个顺序排查,一般都能找到问题所在。
内容的提问来源于stack exchange,提问作者Divyansh Tangri
相关产品推荐
相关产品推荐

