※ ChatGPTを利用し、要約された質問です(原文:ローカルのphpファイルが表示できません)
ローカルのphpファイルが表示できない
このQ&Aのポイント
Linux初心者が自作のphpファイルをブラウザで開くとダウンロードされる現象が発生している。
既定の/var/wwwにある.phpファイルは正常に表示されるが、/home/ユーザー名/public_htmlにあるファイルは表示されない。
設定ファイルを確認したが状況は変わらず、解決策を知りたい。
初めて投稿させて頂きます。
Linux初心者です。
初めてphpを使ったwebサイトを作成しようとしています。
先日、php5とapache2を導入しました。
今phpの動作確認中なのですが、
既定の/var/wwwにある.phpファイルは正常に画面に表示されるのですが、
自分で作成した/home/ユーザー名/public_html にそのファイルを持って行って、
ブラウザ(Iceweasel)のファイルを開くで開くと、ダウンロードをする画面となってしまい、困っています。
Google Cromeでも、同様で、
検索バーに「file:///home/ユーザー名/public_html/XXX.php」を入力すると、
XXX.phpが勝手にダウンロードされてしまいます。
あらゆるサイトを見て設定ファイルも確認したのですが、状況が
変わりません。
申し訳ありませんが、
お分かりの方がいたら、どなたかご教示頂けないでしょうか。
以下に状況をまとめます。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
■ディストリビューション
Debian
■phpバージョン
PHP 5.4.4-14
■apacheバージョン
Apache 2.0
■現象
/var/wwwのphpinfo.phpは正常に表示されるが、
自分で作成した/home/ユーザー名/public_htmlのphpinfo.phpを表示しようとすると
Iceweaselではダウンロードの画面が出、Google Cromeではダウンロードされてしまいます。
■設定したファイル
(1)/etc/apache2/mods-available/mime.conf に以下3行を追記(並べて3行記述しています)。
**********************************************************
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
**********************************************************
/etc/apache2/mods-enabled/mime.conf にも上記の変更が反映されていました。
(2)以下5つのファイルの
DocumentRoot を「/var/www」→「/home/ユーザー名/public_html」に、
<Directory /var/www/>タグを<Directory /home/ユーザー名/public_html/>に変更。
・/etc/apache2/sites-available/default
・/etc/apache2/sites-available/default-ssl
・/etc/apache2/sites-available/mysite
・/etc/apache2/sites-available/mysite~
・/etc/apache2/sites-enabled/mysite
(3)/etc/apache2/mods-available/dir.conf にindex.phpの記述があることを確認済み。
(4)sudo /etc/init.d/apache2 restart でapache2を再起動。
■備考
・httpd.confは存在していないため、何もしていません。
・変更点ではないですが、/etc/apache2/mods-enabled/php5.conf の以下の記述はコメントアウトされていない状態であることを確認済みです。
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>
お礼
貴重なご回答、誠にありがとうございました。 >これに対して、ブラウザの[開く]メニューによるアクセス、file://で始まるURIでのアクセスは >ファイルそのものに対するアクセスです。 >ブラウザがファイルを読み込んで表示するだけです。 そうだったのですね…。 ただ、ファイルを開いているだけの動作だったのですね。 確かに、考えてみればそうですね……。 >(ファイルの内容が表示されるか、ダウンロード処理が行われるかはブラウザの設定によります) >Apacheは関係ありませんから設定を変更しても意味がありません。 この回答を頂いて、本当にすっきりしました。 Apacheの設定が原因とばかり考えていました。 ブラウザの設定だったのですね。 この質問を投稿した後、実は「localhost/phpinfo.php」で見ていたものは、 「/var/www/」にあるphpinfo.phpではなく、 「/home/ユーザー名/public_html」にあるphpinfo.phpだったことに気付きました。 なので、「表示されない」という問題は自己解決できたのですが、 理由まで分からなかったのです。 それが、今回ご教示頂けたことで理解できました。 本当にありがとうございました。 質問もこれにて締めようと思います。