VM上でUbuntuサーバーを実行して、さまざまなWebフォーラムソリューションをテストしています。私は〜/ public_html /をApache2 Webサーバーでアクセスできるように設定しましたが、これは問題なく動作します。
ただし、ブラウザで.phpファイルに移動すると(VMのip-address /〜username/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(そして、賞品とは、よくできていることを意味し、実際の賞品はありません。)
PHPのCLIバージョンのみが現在インストールされている可能性があります。
Sudo apt-get install php5
そしてApacheを再起動します
Sudo Apache2ctl restart
。
PHPモジュールがApacheにロードされていることを確認することもできます。
Sudo Apache2ctl -M
モジュールがロードされると、次のようになります
Loaded Modules:
...
php5_module (shared)
...
Syntax OK
これをApacheの設定に追加してください
AddType application/x-httpd-php .php
実際にユーザーのpublic_htmlディレクトリで同じ問題が発生し、/ etc/Apache2/mods-available/php5.confファイルにいくつかのコメント行が含まれていることがわかりました。
# 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.
私はそれが言っていることをして、Apacheを再起動しました、そして問題はなくなりました。
ファイルの内容を返すだけでなく、.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
私は最近この問題を抱えており、このスレッドの他の原因をすべて取り除いた後、mod_php5
拡張子(私のシステムでは/usr/lib64/Apache2/mod_php5.so
)はペミションを実行していませんでした。
Chmodした後、うまくいきました。
忘れがちですが、これが起こる一般的な方法は、開始と終了を忘れることです<?php ?>
タグ。