さまざまな Web フォーラム ソリューションをテストするために、VM 上で Ubuntu Server を実行しています。apache2 Web サーバーでアクセスできるように ~/public_html/ を設定しましたが、問題なく動作しています。
しかし、ブラウザで .php ファイルにアクセスすると (VM の IP アドレス/~ユーザー名/phpfile.php を使用)、ファイルが正しく表示されません。代わりに、ファイルに保存するか、どのプログラムで開くかを尋ねられます。興味深いことに、このダイアログ ボックスは、それが php ファイルであることを認識します。
システムに次のバージョンの PHP がインストールされています:
PHP 5.3.2-1ubuntu4.5 with Suhosin-Patch (cli) (built: Sep 17 2010 13:49:46)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
そして次のサーバー:
Server version: Apache/2.2.14 (Ubuntu)
Server built: Nov 18 2010 21:19:09
この問題の原因や解決策を誰かが知っていたら、とても嬉しいです :)
編集: この動作は ~/public_html/ ディレクトリ内のファイルでのみ発生することが判明しました。/var/www/ 内のすべての PHP ファイルは正常に動作します。
理由を説明できる人に賞品が贈られますか? :D (賞品というのは、単によくやったという意味で、残念ながら実際の賞品はありません。)
答え1
現在インストールされているPHPのcliバージョンのみを試してみてください
sudo apt-get install php5
Apacheを再起動します
sudo apache2ctl restart
。
PHPモジュールがApacheにロードされているかどうかを確認するには、次のようにします。
sudo apache2ctl -M
モジュールがロードされている場合は、次のように表示されます。
Loaded Modules:
...
php5_module (shared)
...
Syntax OK
答え2
これをApacheの設定に追加します
AddType application/x-httpd-php .php
答え3
.php ファイルが要求されたときに、ファイルの内容を返すだけでなく、php インタープリターを起動するように Apache を構成する必要があります。
これは、問題のディレクトリの httpd.conf で実行する必要があります。次のようになります。
# Use for PHP 5.x:
LoadModule php5_module modules/libphp5.so
AddHandler php5-script php
# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php
AddType text/html php