Mediawiki 第一次沒有執行
我正在嘗試將 Mediawiki 1.22.6 安裝到
/wiki/
apache 文件根目錄的子目錄中,其中包含一些其他目錄。當我第一次嘗試打開http://example.com/wiki>或<http://example.com/wiki/index.php以生成 LocalSettings.php 時,腳本沒有執行;相反,它的一部分被列印出來:bar() 等)在 # PHP 4 中引發解析錯誤。Setup.php 和 ObjectCache.php 的結構分別在 PHP 5.0 和 # 5.1 中無效。if ( !function_exists( ‘version_compare’ ) || version_compare( phpversion(), ‘5.3.2’ ) < 0 ) { // 我們需要在這裡使用 dirname( FILE ) 因為DIR是 PHP5.3+ 需要 dirname( FILE ) . ‘/includes/PHPVersionError.php’; wfPHPVersionError(‘index.php’); } # 初始化通用程式碼。這使我們可以訪問 GlobalFunctions、#AutoLoader 和全域變數 $ wgRequest, $ wg輸出, $ wgUser, $ wgLang 和 # $wgContLang 等;它不載入$wgTitle 需要DIR。’/includes/WebStart.php’; $ mediaWiki = new MediaWiki(); $ mediaWiki->執行();
執行腳本
php -f index.php
會產生預期的輸出。沒有別名或重寫規則;mod_php 似乎已啟用 - 如果安裝為文件根目錄,Mediawiki 可以工作。在目前安裝中,文件根目錄是一個符號連結。
虛擬主機配置如下:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /home/hell/public_html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/hell/public_html> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all IndexOptions +ShowForbidden </Directory> <Directory /home/hell/public_html/private> AuthType Basic AuthName "Restricted Access" AuthUserFile /home/hell/apasswords Require user satan </Directory> # ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ # <Directory "/usr/lib/cgi-bin"> # AllowOverride None # Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch # Order allow,deny # Allow from all # </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
所以Mediawiki沒有特殊配置。
顯然,當 userdir 啟用時,
/home/*/public_html
目錄的 php 被禁用。重命名public_html
為其他內容有所幫助。
所需的最低 PHP 版本
Mediawiki 1.22.6
是5.3.2
. 您沒有在問題中顯示完整的輸出,但看起來您收到的消息實際上是 Mediawiki 主索引文件的內容。最簡單的解釋是您沒有配置 Apache 處理程序(例如AddHandler
)來正確地提供.php
文件,因此index.php
文件被作為文本提供。即使啟用了 PHP(通常使用
LoadModule php5_module libexec/apache2/libphp5.so
main 中的配置指令httpd.conf
或以某種方式從單獨的文件或目錄中包含),您仍可能需要在VirtualHost
容器中使用如下指令啟用它:AddHandler application/x-httpd-php .php
由於使用 PHP 提供文件更安全
.php
(如果它們包含不應該公開的資訊,我們不希望它們的內容可讀),.php
應該為整個伺服器啟用文件處理程序。CGI
如果您使用或處理PHP 文件,則FCGI
可能需要額外的配置步驟。更複雜的解釋
您可能安裝了多個版本的 PHP。也許您的版本
mod_php
是針對舊版本的 PHP 庫編譯的,而命令行版本(有時通過類似的包單獨安裝php-cli
)連結到更新的庫集,因此可以正常工作。找到與 mod_php 關聯的庫(根據需要替換您的包管理工具命令):
% pkg info -a | grep mod_php mod_php5-5.4.28,1 PHP Scripting Language % pkg info -l mod_php5-5.4.28,1 mod_php5-5.4.28,1: /usr/local/libexec/apache24/libphp5.so /usr/local/share/licenses/mod_php5-5.4.28,1/LICENSE /usr/local/share/licenses/mod_php5-5.4.28,1/PHP301 /usr/local/share/licenses/mod_php5-5.4.28,1/catalog.mk
或者
% locate libphp5.so /usr/local/libexec/apache24/libphp5.so % pkg which /usr/local/libexec/apache24/libphp5.so
如果您確定您安裝的 PHP 版本是正確的,並且您的伺服器設置為可以
.php
正確處理,但您仍然遇到問題,那麼下一步是使用 Apache 調試級別和日誌文件進行調試。