MediaWiki Docker容器遇PHP警告及表单提交空白问题求助
MediaWiki Docker 反向代理场景下的数组偏移警告及POST提交空白页问题
问题详情
- 部署环境:官方Docker容器运行最新版MediaWiki,使用Nginx Proxy Manager(NPM)作为反向代理,仅修改上传配置以支持超过2MB的文件上传
- 出现的问题:
- 非调试模式下触发警告:
在/var/www/html/includes/Setup.php第368行尝试访问布尔类型值的数组偏移量,对应代码为$wgServerName = $serverParts['host'];PHPINFO()已显示正确的FQDN(wiki.xx.yy) - 开启调试模式后,出现无具体文件及行号的
尝试访问布尔类型值的数组偏移量警告 - 所有表单POST提交后直接显示空白页面
- 非调试模式下触发警告:
解决方案
1. 强制设置服务器参数,修复Setup.php解析问题
反向代理环境中,MediaWiki自动解析服务器信息时可能失败,导致$serverParts返回布尔值而非数组。直接在LocalSettings.php中手动指定服务器相关参数:
$wgServer = "https://wiki.xx.yy"; $wgServerName = "wiki.xx.yy"; $wgCanonicalServer = $wgServer;
同时确保NPM反向代理配置中已启用X-Forwarded-Proto、X-Forwarded-Host、X-Forwarded-For请求头的转发,让MediaWiki能正确识别客户端请求信息。
2. 解决POST提交空白页问题
POST空白页多与反向代理信任、CSRF验证或上传配置冲突有关:
- 添加反向代理信任配置到
LocalSettings.php:
$wgTrustedProxies = ['192.168.xxx.xxx']; // 替换为你的NPM反向代理IP $wgUsePathInfo = false;
- 同步调整PHP及MediaWiki上传参数:
- 确保Docker容器内
php.ini的upload_max_filesize、post_max_size已设置为目标值(如10M),可通过Docker挂载自定义php.ini实现 - 在
LocalSettings.php中设置:
- 确保Docker容器内
$wgMaxUploadSize = 10485760; // 对应10MB,与PHP配置保持一致
- 开启详细错误排查:在
LocalSettings.php中添加:
$wgShowExceptionDetails = true; $wgDebugLogFile = "/var/log/mediawiki/debug.log";
查看容器内/var/log/mediawiki/debug.log或PHP错误日志,获取空白页的具体报错信息。
3. 基础权限检查
确保MediaWiki容器内的/var/www/html/images目录权限正确,设置为www-data用户可读写:
docker exec -it 你的MediaWiki容器名 chown -R www-data:www-data /var/www/html/images
内容的提问来源于stack exchange,提问作者TechyJames
相关产品推荐
相关产品推荐

