システムのアップグレード後にApache2でPHPが機能しない


14

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

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

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

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

任意の助けをいただければ幸いです。ありがとう。

回答:


17

/var/log/apache2/error.log PHPが正常にロードされた場合、次のような行が表示されます。

[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であるため、アップグレードでインストールされない可能性があります。そのパージを修正してから、再度インストールするには:

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その後サーバーを再起動する必要があります

鮮やかさ。AFKは今のところ、これを今夜テストします。ありがとう。
Jivings

パージして再インストールすると、モジュールはmods対応でロードされますが、私はまだ同じ問題を抱えています...競合するものが見つからず、confファイルのインクルードがapache.confに確実に存在します。他にアイデアはありますか?ありがとう。
Jivings

@Jivings:いくつかのデバッグのアイデアが追加されました
Lekensteyn

まだ理解できません。しかし、私はさらに奇妙な何かを発見しました。PHPは、セットアップされている仮想ホストの1つで正常に機能しているように見えますが、/ var / wwwでdocumentRootを定義するだけです。これはどのように可能ですか?!
Jivings

1
それでもブラウザのキャッシュをフラッシュして、Apacheを再起動する必要があります。
フランチェスコ

3

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

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

編集

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

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

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


1
これは、構成の問題に関連している必要があります。アップグレードでは、ファイルはまったく/etcコピーされません(少なくとも、/etc/init.d/apache2再インストールでは作成されず、purge + installでのみ作成されるという問題がありました)
Lekensteyn

私のシステムがアップグレードする前にそれが働いていたのは奇妙です
...-Jivings

おそらく機能が変更されます。すべてのアップグレードで古い構成設定が考慮されるとは限りません。一部の変更は大多数にとって意味がありますが、他の一部にとっては意味がありません。
レーケンシュタイン

確かに。とにかくそれの一番下に到達するのを手伝ってくれてありがとう、:)
Jivings

1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.