2012-09-24 95 views
2

再次,我在Mediawiki中出現了一個奇怪的失敗。如果一個鏈接被格式化這樣的:Mediawiki顯示自己的PHP源代碼

www.path-to-my-wiki.net/wiki_path/index.php?title=blah

服務器會提示出的源代碼(不是開玩笑) php文件!

(樣品:)

<?php 

/** 
* This is the main web entry point for MediaWiki. 
* 
... 
* 
* @file 
*/ 


# Initialise common code 
$preIP = dirname(__FILE__); 
require_once("$preIP/includes/WebStart.php"); 

# Initialize MediaWiki base class 
require_once("$preIP/includes/Wiki.php"); 
$mediaWiki = new MediaWiki(); 

wfProfileIn('main-misc-setup'); 
OutputPage::setEncodings(); # Not really used yet 

$maxLag = $wgRequest->getVal('maxlag'); 
if(!is_null($maxLag) && !$mediaWiki->checkMaxLag($maxLag)) { 
    exit; 
} 

如果該鏈接將是這樣的:

www.path-to-my-wiki.net/wiki/blah

服務器將不提示出PHP源代碼,但需要的頁面。

我還沒有改變任何有關網絡服務器和Mediawiki的配置,而這個wiki無法從互聯網上訪問。但我懷疑我不是唯一一個和這個Mediawiki合作的人。

+0

我認爲你需要重寫網址......你可以在htaccess文件中做到這一點 –

+0

服務器配置錯誤 - 它不會將php文件視爲php腳本,而是將它們視爲純文本文件,並將其作爲服務對象。使用'/ wiki/blah/...'版本,可能會有一個mod_rewrite + htaccess集合,將PHP文件視爲php腳本。 –

回答

1

聽起來好像您的Apache配置沒有爲.php擴展名分配處理程序,但是對於重寫而言。您很可能需要提供您的.htaccess才能獲得更多答案。

+0

@註冊用戶,@ marc-b,@sixeightzero:那也是我的第一個想法。 .htaccess沒有改變。也不是PHP解釋器的apache配置。經過長時間的研究,失敗是在「另一座城堡」中。缺少代理配置中的url-pass。這個問題自一開始就存在,但由於wiki未被移出代理服務器而未被識別...... – wog