PHP ページが正常に実行されずに常にダウンロードされる原因は何ですか

PHP ページが正常に実行されずに常にダウンロードされる原因は何ですか

さまざまな 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

答え4

AddType 行を確認します.htaccess。カスタム AddType があり、これが不正なコンテンツ タイプの原因でした。Firefox は問題のデバッグに役立ちましたが、 を使用することもできますwget

ファイアフォックス Wget

関連情報