USER_DIRでPHPが動かなくてハマった話

新しくしたサーバで、昔作ったサイトのメンテを行うためにPHPをインストールしたのだが動かない。.php拡張子付きのファイルがPHPで処理されていない感じ。googleで調べたり、ブラウザのキャッシュをクリアしたりして試すが動かないのでPHPのインストールを諦めて、PHPの動くサーバ上で作業して済ませた。

今日、また PHPを使ったサイトをいじる必要があったので、再トライ。いろいろ試しているうちに、PHPが動かないのは ~/public_html以下のファイルだけで、他のディレクトリのPHPのファイルは正常に表示できることに気がつく。

それでも、なかなか原因がわからなかった、ついに/etc/apache2/mods-enable/php5.confで、わざわざuser directoryでPHPを無効にしてあるのを発見。

<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>

ちゃんと To re-enable php in user directories と書いてあるのに、Do NOT set it to Onの方に目が行き、ここをいじるのを躊躇していた。

わかってしまえば、同様の情報をネットでも調べることができる。
blog.shiten.info ? Ubuntu 10.04 の Apache2 userdir で PHP が動かない件

教訓はなんだろう。英文もちゃんと読め、ということだろうか。

Leave a Reply

メールアドレスが公開されることはありません。