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

MediaWiki Docker容器遇PHP警告及表单提交空白问题求助

MediaWiki Docker 反向代理场景下的数组偏移警告及POST提交空白页问题

问题详情

  • 部署环境:官方Docker容器运行最新版MediaWiki,使用Nginx Proxy Manager(NPM)作为反向代理,仅修改上传配置以支持超过2MB的文件上传
  • 出现的问题:
    1. 非调试模式下触发警告:在/var/www/html/includes/Setup.php第368行尝试访问布尔类型值的数组偏移量,对应代码为$wgServerName = $serverParts['host'];PHPINFO()已显示正确的FQDN(wiki.xx.yy)
    2. 开启调试模式后,出现无具体文件及行号的尝试访问布尔类型值的数组偏移量警告
    3. 所有表单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上传参数:
    1. 确保Docker容器内php.ini的upload_max_filesize、post_max_size已设置为目标值(如10M),可通过Docker挂载自定义php.ini实现
    2. 在LocalSettings.php中设置:
$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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:03:24