Mediawiki が初めて起動しない

Mediawiki が初めて起動しない

/wiki/Mediawiki 1.22.6をApacheドキュメントルートディレクトリのサブディレクトリにインストールしようとしています。このディレクトリには他のディレクトリも含まれています。http://example.com/wikiまたはhttp://example.com/wiki/index.phpLocalSettings.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( を使用する必要があります。ファイル)ここで原因ディレクターPHP5.3以上ではdirname(ファイル) . '/includes/PHPVersionError.php'; wfPHPVersionError( 'index.php' ); } # 共通コードを初期化します。これにより、GlobalFunctions、# AutoLoader、グローバル$wgRequest、$wgOut、$wgUser、$wgLang、# $wgContLangなどにアクセスできるようになります。ない$wgTitleを読み込むにはディレクター. '/includes/WebStart.php'; $mediaWiki = new MediaWiki(); $mediaWiki->run();

スクリプトを実行すると、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 には特別な設定はありません。

答え1

に必要な PHP の最小バージョンMediawiki 1.22.6は です5.3.2。質問では完全な出力を示していませんが、取得しているメッセージは実際には Mediawiki のメイン インデックス ファイルの内容のようです。最も単純な説明は、Apache ハンドラ (例えば AddHandler) は.phpファイルを適切に提供するように構成されているため、index.phpファイルはテキストとして提供されています。

PHP が有効になっている場合でも (通常はLoadModule php5_module libexec/apache2/libphp5.soメインなどの構成ディレクティブを使用するか、別のファイルまたはディレクトリから何らかの方法で含めます) 、次のようなディレクティブを使用してコンテナーhttpd.conf内で PHP を有効にする必要がある場合があります。VirtualHost

AddHandler application/x-httpd-php .php

PHP を使用してファイルを提供する方が安全であるため.php(公開すべきでない情報が含まれている場合、その内容が読み取られないようにするため)、ファイル ハンドラーをサーバー全体で有効にする必要があります。またはプロセス.phpを使用して PHP ファイルを提供する場合は、追加の構成手順が必要になることがあります。CGIFCGI

より複雑な説明

複数のバージョンの 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 のデバッグ レベルとログ ファイルを使用してデバッグすることが次のステップです。

答え2

/home/*/public_htmlどうやら、userdir が有効になっていると、ディレクトリに対して php が無効になります。public_html別の名前に変更すると解決しました。

関連情報