Php

MediaWiki 不顯示樣式——“內部錯誤”

  • December 30, 2015

我剛剛將 MediaWiki 安裝從 1.25.x 版本升級到 1.26.1,但現在沒有顯示樣式資訊。因此,頁面顯示所有類似文本的內容,而左側沒有連結列。當我查看頁面的原始碼並點擊應該載入樣式的連結時,似乎有一些 CSS,但文件開始如下:

/* 內部錯誤

內部錯誤

有問題的模組:{“mediawiki.sectionAnchor”:“error”,“skins.vector.styles”:“error”} */

當我點擊頁面源中的腳本連結時,可能是預設腳本,它顯示了類似的消息(但沒有太多實際程式碼):

/* 內部錯誤

內部錯誤

有問題的模組:{“startup”:“error”} */

通過線上搜尋,我找到了以下兩頁,在撰寫本文時還沒有任何解決方案:

https://www.mediawiki.org/wiki/Topic:Sty0r6j0y9u8yute

https://www.mediawiki.org/wiki/Topic:Stvdbhcbttk5aa9d

如果重要的話,我正在使用的安裝是在 HTTPS 上的。$wgServer 設置相應地設置為$wgServer = "//www.some-domain.com";. 圖像載入得很好,瀏覽器調試器的網路選項卡上沒有 404 或其他此類 HTTP 錯誤。伺服器正在執行 PHP 版本 5.6.16。

我的問題是:

(1) 有沒有其他人遇到過這個問題並找到了除降級 PHP 之外的解決方案?

(2) 有誰知道將 PHP升級到新的 7.x 系列是否可以解決這個問題?(在同一台伺服器上安裝了一些大型 WordPress,所以我還不敢嘗試安裝新的 PHP)

**更新 1:雖然我不知道根本問題是什麼,但顯然問題是特定於預設矢量皮膚的。我將$wgDefaultSkin設置(在LocalSettings.php中)從vector更改為monobook,現在 wiki 顯示得很好。

**更新 2:**按照評論中的要求,我嘗試直接從 GitHub 下載Vector皮膚。我下載了最新的 master 分支(截至 2015-12-18)。不幸的是,它沒有任何區別。刪除舊文件並複制新(或相同?)文件並將設置更改回vector後,問題又回來了。

**更新 3:為了完整起見,我嘗試安裝*Vector的wmf/1.27.0-wmf.9*分支,但沒有任何區別。我什至嘗試重新啟動 Web 伺服器以確保它不是記憶體問題。

**更新 4:我嘗試清除伺服器範圍的 PHP 記憶體,但沒有任何區別。然後我嘗試啟用$wgResourceLoaderDebug選項。雖然這個選項沒有解決載入問題,但我想它會為實際調試皮膚的人提供更好的細節。啟用此選項後,頁面源會顯示 5 個單獨的樣式表條目,其中只有兩個會出現內部錯誤。仍然只有一個腳本條目,並且仍然出現錯誤。

在按照 Froggiz 的建議啟用完整的 MediaWiki 調試後,我發現了這種情況下的一些具體問題,其中一個是Vector無法載入的實際原因。問題及解決方案如下:

(1) $wgCacheDirectory在**LocalSettings.php中被註釋掉。雖然MonoBook皮膚似乎並不關心這種情況,但 Less.php會在記憶體文件夾不可寫的情況下出現異常;顯然這個模組對於Vector皮膚是必需的。我最終將記憶體設置如下:

$ wgCacheDirectory = " $ IP/cache"; // 確保這個文件夾是可寫的;

**(2)**雖然不是主要問題的原因,但預計有四個文件顯然不包含在標準 MediaWiki 版本 1.26.1 包中。事實上,它是一個失去的文件的副本:en-gb.json. 必須創建此文件並將其放置在以下位置:

/resources/lib/oojs-ui/i18n

/皮膚/科隆藍/i18n

/皮膚/現代/i18n

/皮膚/矢量/i18n

雖然LocalSettings.php中*$wgLanguageCode的註釋說要從**./languages/Names.php中選擇語言程式碼,但語言程式碼必須在皮膚的i18n文件夾中有相應的文件。*

引用自:https://serverfault.com/questions/743898