MediaWiki 1.38启用.git后无法加载皮肤,抛出未捕获异常
解决MediaWiki 1.38升级后MinervaNeue皮肤文件找不到的500错误
验证皮肤目录的实际路径
报错里的/skins/MinervaNeue/是服务器根目录下的绝对路径,但你的MediaWiki大概率部署在虚拟主机的子目录(比如/public_html/wiki/skins/MinervaNeue/)。可以在LocalSettings.php中临时添加代码确认当前工作路径:echo "当前工作目录:" . getcwd();访问网站查看输出后,修正皮肤相关配置的路径,优先使用基于
LocalSettings.php所在目录的绝对路径,比如:$wgSkinDirectory['MinervaNeue'] = __DIR__ . '/skins/MinervaNeue';检查Git子模块完整性
因你使用Git升级,MinervaNeue可能是Git子模块。若虚拟主机支持SSH,进入MediaWiki根目录执行:git submodule status若显示子模块未初始化/未更新,运行:
git submodule update --init --recursive skins/MinervaNeue无SSH权限的话,手动下载对应MediaWiki 1.38版本的MinervaNeue皮肤包,覆盖现有目录,确保
skin.json等文件完整。调整PHP的open_basedir限制(若允许)
部分虚拟主机限制了PHP的目录访问范围,导致无法读取皮肤目录。若能修改php.ini或.htaccess,添加MediaWiki根目录到open_basedir:
php.ini写法:open_basedir = /实际/mediawiki路径:/tmp.htaccess写法:
php_value open_basedir "/实际/mediawiki路径:/tmp"修正LocalSettings.php的皮肤配置
升级后配置可能失效,打开LocalSettings.php确认皮肤加载代码正确:$wgDefaultSkin = 'minerva'; wfLoadSkin( 'MinervaNeue' );移除手动指定的错误绝对路径配置,改用
__DIR__确保路径准确性。细化文件权限设置
尽管已设置755/774,虚拟主机的PHP运行用户可能与文件所有者不一致。尝试调整:- 皮肤目录权限设为755(保证PHP可进入目录)
skin.json等文件权限设为644(满足PHP读取需求,避免过松权限被拦截)
同时确认skin.json确实存在,未被FTP工具遗漏上传。
内容的提问来源于stack exchange,提问作者M Noivad
相关产品推荐
相关产品推荐

