在 MediaWiki 中保存編輯的零星問題
在我們的 Wiki(http://scratch-dach.info MediaWiki 1.25.1、PHP 5.3.29、MySQL 5.5.44-log)中,我們在保存編輯時會遇到零星問題。瀏覽器不定期地嘗試下載 index.php 文件而不是送出編輯。似乎較大的頁面更有可能受到此問題的影響。
下載 PHP 原始碼通常意味著 Apache 配置錯誤並且不允許在該目錄中執行腳本,但是通常所有 php 腳本(尤其是 wiki 中的 index.php)在伺服器上執行良好。
我們託管了許多具有相同擴展/配置的 wiki,但只有在這種情況下才會發生此類錯誤。Wiki 之間唯一的具體區別似乎是我們的數據庫超過 1 GB。在 Apache-Log 中沒有可疑條目。
經過一些測試,我們發現該錯誤僅出現在包含電子郵件地址或外部連結之類
[http://test.name]
的http://test.name
頁面上。但是,如前所述,該錯誤是零星的,有時帶有連結的頁面會保存,有時我們會收到 php-Download 錯誤。問題是我們只有一個來自我們的提供商 Strato 的“主機”包,所以我們無法直接訪問 php 和 apache 模組。我們在網上搜尋了很久,但沒有找到這樣的問題的描述…
非常感謝任何幫助!
(這個問題是stackoverflow的後續問題,我們被告知將問題放在伺服器故障上。)
經過長時間的搜尋,我們發現了問題。提供商 (STRATO) 執行了一個名為server-site-security的安全程序,該程序會掃描重複輸入相同 URL 的使用者。雖然在這種情況下這通常是垃圾郵件機器人的行為,但它會影響普通使用者編輯帶有連結的 Wiki 頁面。在詢問提供商是否安裝了類似的程序ModSecurity後,我們追踪了該錯誤。通過配置界面停用伺服器站點安全後,問題就消失了。
這不太可能是 PHP 或 MediaWiki 的問題。如果 Apache 決定執行一個腳本,無論該腳本做什麼,Apache 都會列印它的輸出。當 Apache 確實使用 PHP 以外的其他處理程序來處理
.php
腳本時,就會發生下載。您所描述的內容(較大的頁面更頻繁地失敗)聽起來像 Apache 嘗試將
.php
文件視為文本,如果在執行腳本時出現錯誤(如超時或記憶體不足)。也許你有一些奇怪的錯誤處理配置。loglevel traceX
可能有幫助。