Docker部署WordPress时出现PHP致命错误求助
解决WordPress容器中PHP大括号偏移语法致命错误
问题根源
该错误由PHP 8.0及以上版本彻底移除大括号{}访问数组/字符串偏移的语法导致,你的/var/www/html/wp-includes/script-loader.php第706行仍在使用这一过时写法。尽管WordPress 6.2.0理论兼容PHP 8.0,但大概率是容器内WordPress核心文件损坏,或所用镜像存在异常。
修复方案
1. 替换损坏的核心文件
直接替换容器内的script-loader.php为官方正确版本:
- 进入WordPress容器:
docker exec -it <你的WordPress容器名/ID> sh - 下载官方6.2.0版本的文件覆盖原文件:
wget -O /var/www/html/wp-includes/script-loader.php https://raw.githubusercontent.com/WordPress/WordPress/6.2.0/wp-includes/script-loader.php - 退出容器后重启:
docker restart <你的WordPress容器名/ID>
2. 重建干净容器
若替换文件无效,彻底清理异常环境后重新部署:
- 停止并删除现有容器及关联数据卷(注意:
-v会删除数据卷,需保留数据库数据则去掉该参数):docker-compose down -v - 重新拉取镜像并启动:
docker-compose pull wordpress docker-compose up -d
3. 验证PHP版本兼容性
WordPress 6.2.0支持PHP 7.4~8.2,检查容器内PHP版本是否符合要求:
docker exec <你的WordPress容器名/ID> php -v
若版本不在兼容区间,更换对应镜像标签,例如wordpress:6.2.0-fpm-alpine3.17(对应PHP 8.1)。
验证修复
重启容器后查看日志,若不再出现Array and string offset access syntax with curly braces is no longer supported错误,且WordPress能正常访问,即为修复成功。
内容的提问来源于stack exchange,提问作者retronexus
相关产品推荐
相关产品推荐

