web-dev-qa-db-ja.com

PHPシステムのアップグレード後にApache2で動作しません

最近、私のシステムをKarmicからLucidにアップグレードしました。これには、ApacheとPHPの更新が含まれていたと思います。

現在、私のサーバーはPHPファイルを処理できません。それらへのナビゲーションは、解析ではなくダウンロードをトリガーしています。

PHPモジュールはまだApache mods対応でロードされており、httpd.confにAddType application/x-httpd-php .phpがあります。

Apacheアクセスまたはエラーログに意味のあるメッセージがないため、困惑しています。

助けていただければ幸いです。ありがとう。

14
Jivings

PHPが正常にロードされた場合、/var/log/Apache2/error.logは次のような行を表示する必要があります。

[2011年8月30日12:53:36] [通知] Apache/2.2.14(Ubuntu)PHP/5.3.2-1ubuntu4.9とSuhosin-Patchの構成-通常の操作の再開

日付に注意してください。2009年からのものである場合は、構成が間違っています。

AddTypeは役に立たないので、使用する必要があります:

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

Apache 2.xのphp.netでのインストール手順 も参照してください。

手動で追加する必要はないはずです。パッケージlibapache2-mod-php5/etc/Apache2/mods-available/php5.confをインストールします:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

これはconffileであるため、アップグレード時にインストールされない可能性があります。それを修正purgeしてから再度インストールする場合:

Sudo apt-get purge libapache2-mod-php5
Sudo apt-get install libapache2-mod-php5

PHPを有効にするには、次を実行する必要があります。

Sudo a2enmod php5

次の後にWebサーバーを再起動します。

Sudo /etc/init.d/Apache2 restart

他にやるべきこと:

  • /etc/Apache2の競合する設定を確認してください。
  • ソースからApacheをビルドしましたか?
  • Sudo Apache2ctl configtestを実行して、構文エラーの構成を確認します
  • http:// localhost/server-info を開いて、ロードされた構成とモジュールを確認します。そのためにstatusモジュールをロードする必要があります。リモートサーバーを実行している場合は、Allow from/etc/Apache2/mods-enabled/status.confリストに自分を追加し、その後サーバーを再起動する必要があります
17
Lekensteyn

他に何も機能せず、Apacheが非常に混乱し始めた後、私はついにすべてのApacheパッケージを削除して再インストールしました。

今はうまく機能しているようです。

編集

Apacheの構成設定を再度セットアップするときに、何が間違っていたかを見つけました。 [このブログエントリ] [1]で説明しています。

Userdirモジュールはアクティブに使用されていませんが、残りのサイトファイルは〜/ public_htmlフォルダーにあり、そこにあるすべてのものに対してphpが無効にされていました。

これは、私のKarmic設定にはなかったphpモジュールへの最近の追加だったに違いないと思います。

3
Jivings

php5.conf/etc/Apache2/mods-enabledファイルの下部には、phpがユーザーディレクトリ内で実行されないようにするための数行があるため、設定によってはこれも問題になる可能性があります。これらの行をコメントアウトして、Apache2をリロードできます。

1
Jeff