GCP上WordPress站点cpuflat.com严重错误,无法访问wp-admin求助
部署在Google Cloud Platform(GCP)的WordPress站点cpuflat.com持续两周出现「There has been a critical error on this website. Learn more about troubleshooting WordPress.」错误,无法访问wp-admin,通过SSH运行bndiagnostic工具得到诊断结果,以下是针对性修复步骤:
1. 修复PHP致命错误(核心问题)
错误日志显示:PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /bitnami/wordpress/wp-content/mu-plugins/index.php on line 2
- 原因:PHP 7.4+已弃用大括号数组/字符串偏移语法,该文件使用过时语法触发致命错误
- 修复步骤:
- 登录服务器后进入必须插件目录:
cd /bitnami/wordpress/wp-content/mu-plugins/ - 编辑
index.php,将第2行的${变量名}或$数组{索引}语法替换为$变量名或$数组[索引] - 若无法修改或不确定代码,临时禁用必须插件:
mv mu-plugins mu-plugins.bak,验证站点是否恢复
- 登录服务器后进入必须插件目录:
2. 修复Apache配置语法错误
错误信息:apache2: Syntax error on line 112 of /opt/bitnami/apache2/conf/httpd.conf: module log_config_module is built-in and can't be loaded
- 原因:尝试加载已内置的Apache模块,导致配置无效
- 修复步骤:
- 编辑Apache主配置文件:
vim /opt/bitnami/apache2/conf/httpd.conf - 找到第112行的
LoadModule log_config_module modules/mod_log_config.so,在行首添加#注释掉该行 - 重启Apache服务:
sudo /opt/bitnami/ctlscript.sh restart apache
- 编辑Apache主配置文件:
3. 解决内存不足问题
实例内存状态:total used free shared buff/cache available Mem: 575 370 40 14 164 90 Swap: 634 169 465
- 临时缓解:执行命令释放缓存:
sudo sync && sudo sysctl -w vm.drop_caches=3 - 长期方案:在GCP控制台升级实例配置,增加内存配额;或配置OOM优先级,避免WordPress/Apache进程被系统杀死
4. 修复WordPress文件权限
- 执行Bitnami权限修复脚本:
sudo /opt/bitnami/apps/wordpress/bnconfig --fix_permissions - 手动补充设置关键目录权限:
- 根目录:
sudo chmod 755 /bitnami/wordpress - wp-content目录:
sudo chmod 755 /bitnami/wordpress/wp-content - 插件/主题文件:
sudo chmod 644 /bitnami/wordpress/wp-content/plugins/* /bitnami/wordpress/wp-content/themes/*
- 根目录:
5. 修复端口连通性
- 登录GCP控制台,进入对应实例的VPC网络-防火墙规则页面
- 创建或更新规则,允许来自
0.0.0.0/0的TCP流量访问22(SSH)、80(HTTP)、443(HTTPS)端口 - 确保实例的网络标签与防火墙规则的目标标签匹配
6. Apache CGI-bin访问警告处理
日志显示client denied by server configuration: /opt/bitnami/apache/cgi-bin,这是正常的安全配置,禁止外部访问cgi-bin目录,无需修改;若需排查,可检查该目录的权限及Apache配置中的访问控制规则
内容的提问来源于stack exchange,提问作者MODERN

