Ubuntu ServerのユーザーディレクトリでPHPが使えるようにする。

Ubuntu 10.04.4 LTSだとphpとユーザディレクトリのモジュールを有効にしただけではユーザディレクトリにPHPスクリプトを置いても実行されずにスクリプトがダウンロードされてしまう。

以下の設定ファイルを編集し、apacheを再起動すると動いてくれる。

  • /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>
~                   

編集後

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

のブロックをコメントアウトする。
"php_admin_value engine Off"という命令によってユーザディレクトリでのPHPの実行が抑制されているようだが、"php_admin_value engine On"にしてもPHPスクリプトへのアクセス時にサーバーエラーになってしまい実行できない。ブロック全体をコメントアウトまたは削除する必要がある。(よく読むとこのファイルのコメントにそう書いてある。)