ローカルのphpファイルが表示できない

このQ&Aのポイント
  • Linux初心者が自作のphpファイルをブラウザで開くとダウンロードされる現象が発生している。
  • 既定の/var/wwwにある.phpファイルは正常に表示されるが、/home/ユーザー名/public_htmlにあるファイルは表示されない。
  • 設定ファイルを確認したが状況は変わらず、解決策を知りたい。
回答を見る
  • ベストアンサー

ローカルのphpファイルが表示できません

初めて投稿させて頂きます。 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>

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

> 既定の/var/wwwにある.phpファイルは正常に画面に表示される これはHTTPの仕組みを通しているからです。 クライアントのブラウザでhttp://localhost/hoge.phpへアクセス   ↓ クライアントからサーバ(Apache)へHTTPリクエストが出される   ↓ サーバがhoge.phpを実行し、出力をHTTPレスポンスとしてクライアントへ返す   ↓ クライアントのブラウザでWebページが表示される これに対して、ブラウザの[開く]メニューによるアクセス、file://で始まるURIでのアクセスは ファイルそのものに対するアクセスです。 ブラウザがファイルを読み込んで表示するだけです。 (ファイルの内容が表示されるか、ダウンロード処理が行われるかはブラウザの設定によります) Apacheは関係ありませんから設定を変更しても意味がありません。

w_horse
質問者

お礼

貴重なご回答、誠にありがとうございました。 >これに対して、ブラウザの[開く]メニューによるアクセス、file://で始まるURIでのアクセスは >ファイルそのものに対するアクセスです。 >ブラウザがファイルを読み込んで表示するだけです。 そうだったのですね…。 ただ、ファイルを開いているだけの動作だったのですね。 確かに、考えてみればそうですね……。 >(ファイルの内容が表示されるか、ダウンロード処理が行われるかはブラウザの設定によります) >Apacheは関係ありませんから設定を変更しても意味がありません。 この回答を頂いて、本当にすっきりしました。 Apacheの設定が原因とばかり考えていました。 ブラウザの設定だったのですね。 この質問を投稿した後、実は「localhost/phpinfo.php」で見ていたものは、 「/var/www/」にあるphpinfo.phpではなく、 「/home/ユーザー名/public_html」にあるphpinfo.phpだったことに気付きました。 なので、「表示されない」という問題は自己解決できたのですが、 理由まで分からなかったのです。 それが、今回ご教示頂けたことで理解できました。 本当にありがとうございました。 質問もこれにて締めようと思います。

関連するQ&A

  • ローカルのPHPファイルを表示できない

    LinuxでPHPの開発の勉強をしようとLAMPのインストールをしています。 EeePC 1000HにUbuntu 10.10を入れています。 昨日、Apache2.2 PHP5 MySQLを、apt-getで入れました。 info.phpというファイルを作り、 <?php phpinfo(); ?> と書いて保存しました。 Apache2.2では、localhostのデフォルトのDocumentRootが  /etc/apache2/sites-available/default に指定されていて、   /var/www  となっています。ここにinfo.phpを保存してfirefoxで  http://localhost/info.php を開くと、無事にinfoページがでました。ここまでは問題ありません。 次に、UserDirをa2enmodコマンドを使って設定し、 ユーザー(hoge)の homeディレクトリ以下にpublic_htmlをつくりました。この下に、 通常のindex.htmlファイルを保存して、 ~hoge/index.html が開くことも 確認しました。 その後で、 /home/hoge/public_html/ 以下にinfo.phpを保存し、 firefoxで開こうとすると、「アプリケーションの選択もしくは保存」という いつものダイアログが出てきてしまいます。 このように、/var/www に置いた場合と、public_html以下に置いた場合で firefoxの挙動が変わります。 apache2の /var/www へのアクセス指定するファイルが、 apache2/sites-available/defaultで、以下のようになっています。 <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> この中身の部分を、 apache2/mods-available/userdir.conf にコピペし、以下のようにしました。 <Directory /home/*/public_html>  Options Indexes FollowSymLinks MultiViews  AllowOverride None  Order allow,deny  allow from all   </Directory> apache2もリスタートしましたが、結果は変わりませんでした。 ここまでで行き詰まりました。 どなたか解決法を教えていただけませんか。 よろしくお願いします。

    • 締切済み
    • PHP
  • apache2でユーザーディレクトリが

    apache2でユーザーディレクトリを使いたいんですが ただのapacheではデフォルトでユーザーディレクトリがつかえるんですが 403でパーミッションを直して使えて apache2でいろいろ apache2.confなどにuserdir.cなどのモジュールを読み込ませたり sites-avalias/defaultに /home/*/public_htmlなど試してみたいんですが ダメみたいです ちょっと省略していますが ちなみにバージョンはApache/2.2.3です エラーは http://xxxxx/~ユーザー名 にアクセスすると 403ではなく404エラー フォルダが無いということは sites-avalias/defaultかapache2.confの設定がおかしいんでしょうか? ちゃんと /home/xxxx/public_htmlも作ってありますし パーミッションもあっています しかし <Directory /home/xxx/public_html>などの設定をしたいんですが sites-avalis/defaultに書くのか それともapache2.confに書くのかまぎらわしくて defaultのほうには<Directory /var/www>など書いてあって apache2.confにはmoduleなどいろいろ書いてあります apache2がhttpd.confではなくてまぎらわしくてよくわかりません それとバージョンなど古かったりなど違ったりして できないみたいです Apache/2.2.3でユーザーディレクトリを使っているかた 詳しく教えて下さいお願いします

  • テスト用のローカルWebサーバの構築

    こんにちは。よろしくお願いします。 phpをローカルwebサーバでテストしたいと考えています。 /home/aaa/test.php を、ローカルでは C:/bbb/public_html/test.php としたいのですが、 Apacheのhttpd.confで Alias /home/aaaa "C:/bbb/public_html" としてみたものの No such file or directory in... と出てしまい、うまくいきません。 どこがおかしいのか教えてください。

  • ubuntu、apache2で独自ドメインを使う方法

    ubuntu、apache2で独自ドメインを使う方法 こんにちは。 バーチャルボックスでubuntu-ja-8.04-virtualbox-i386をインストールしました。 入ったのは、Ubuntu-8.04-Japaneseです。 webサーバーを構築して、html、php、cgiで、webサイトを公開しようと考えています。 独自ドメインを使いたいのですが、どうすればいいですか? 今までの手順 ○以下をインストールしました。 sudo apt-get install apache2 sudo apt-get install mysql-server sudo apt-get install php5 sudo apt-get install php5-mysql ○virtualboxのfirefoxに ネットワーク設定しておいた、 http://192.168.1.11 を入力すると、初期設定の”It works!” がでます。 ○メインサイト用の設定ファイルを作りました。 sudo vi /etc/apache2/sites-available/main ここから NameVirtualHost * <VirtualHost *> ServerAdmin webmaster@ubuntud.com DocumentRoot /var/ubuntud.com/public_html ServerName ubuntud.com ErrorLog "/var/ubuntud.com/logs/error_log" CustomLog "/var/ubuntud.com/logs/access_log" combined <Directory "/virtual/ubuntud.com/public_html"> Options None AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> ここまで ○sudo sudo a2dissite default  sudo a2ensite main /etc/apache2/sites-enabled/main に シンボリックリンクを貼り、 mainサイトを有効にしました。 ○sudo mkdir -p /var/ubuntud.com/public_html  sudo mkdir -p /var/ubuntud.com/logs  ディレクトリを作りました。 ○sudo vi /home/public_html/index.html に 以下の内容でタグを書きました。 <html> <head> <title>test</title> </head> <body>This page is test page.</body> </html> ○sudo /etc/init.d/apache2 restart apacheを再起動しました。 ○http://192.168.1.11 で ”This page is test page.”表示されました。 独自ドメイン 例えば、ABC.netという独自ドメインをドメイン業者から取得していて、 ブラウザから http://192.168.1.11 ではなくて http://ABC.netで見られるようにするには、 /etc/apache2/sites-available/main の どこを書き換えればいいでしょうか? 他の.confファイルの設定を変えればいいとも思うのですが。 IPアドレスは、192.168.1.11です。 よろしくお願いします。 以上

  • apache の DocumentRoot は分かったのですが・・・

    apache の DocumentRoot は分かったのですが・・・ apache をインストールしました。   /etc/apache2/sites-enabled/000-default を見ると、   DocumentRoot /var/www と書いてあります。そのすぐ下に、   <Directory />   ・・・   </Directory> という箇所があります。 ここで疑問なのですが、、、 外部からアクセスされるのは、DocumentRoot(/var/www)以下のディレクトリですよね? ルート( / ) はどのみちアクセスされないと思うのですが、なぜ、"/" に関する設定が必要なのでしょうか?   <Directory /var/www/> との違いがよく分かりません。

  • PHPファイルが表示されない

    こんばんは。いつもお世話になっております。 昨日、OS(winXP SP2)の再セットアップを行い、local環境を整えるべく、apache(2.0.59)、PHP(5.2.2)、 MySQLを新たにインストールしてみたのですが、PHPファイルを読み込むことができず、ブラウザに表示 させようとすると、ファイルをダウンロードを促す「保存orキャンセル」の表示が出てきてしまいます。 PHP、apache共に最近リリースされたバージョンということもあり、手持ちの書籍にあるバージョンは古いものではありますが、 数冊ある書籍を参考に、該当する設定をすべて行ったつもりでいますが、肝心なPHPファイルを読み込むことが出来ずにいる次第です。 インストール時に誤った手順を踏んでいないか?と、何度もインストールから設定作業を繰り返しているものの、解決できるに至りません。 以下が設定時に行っている作業ですが、抜けている点、気をつける点などありましたら、どんな些細なことでも構いませんので、ご意見頂戴出来ればと思います。ご指導のほど宜しくお願いいたします。 PHP5.2.2(php-5.2.2-Win32.zipをDL) 解答したフォルダをphpにリネームし、Cドライブ直下に保存。 php.ini-distをphp.iniにリネーム後、C:/windowsへ。php5ts.dllをC:/windows/system32へ。 php.iniの主要変更箇所 doc_root = "C:/home/public_html" include_path = ".;c:\php\includes;C:\php\PEAR" extension_dir = "C:\php\ext" httpd.confの主要変更箇所 LoadModule php5_module C:/php/php5apache2.dll ServerName localhost:80 DocumentRoot "C:/home/public_html" AllowOverride All AddType apprication/x-httpd-php .php AddType apprication/x-httpd-php-source .phps DirectoryIndex index.html index.php index.html.var

    • ベストアンサー
    • PHP
  • index.phpの中身が表示されてしまう

    以下のページを参考に、AWS上にMindTouch の環境を構築しようとしています。 http://nagamoo.blogspot.jp/2012/12/awsamzonlinuxmindtouch.html 参考ページだと、CLIで一通り設定した後、ブラウザでアクセスして引き続き設定をするようなのですが、ブラウザでアクセスすると、index.phpのファイルの中身が表示されてしまいます。 調べてみたところ、以下のサイトを見つけ、AddType2行をhttpd.confに追加してhttpdサービスの再起動を行いましたが、ファイルの中身が表示されてしまいます。 http://www.ksknet.net/apache/php_1.html AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps その他設定が抜けているのでしょうか。 もしお分かりになる方がいらっしゃいましたらご教授いただけますでしょうか。 ===以下、設定関連=== 設定ファイルのServerName部分は、投稿用に別の文字列に置き換えています。 また、文字数の関係で一部省略しています。 ■/etc/httpd/conf/httpd.conf ===ここから=== ~略~ Include conf.d/*.conf User apache Group apache ServerAdmin root@localhost ServerName サーバ名:80 UseCanonicalName Off DocumentRoot "/var/www/html" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <IfModule mod_userdir.c> UserDir disabled </IfModule> DirectoryIndex index.html index.html.var index.php AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy All </Files> ~略~ ===ここまで=== ■/etc/httpd/conf.d/deki-apache.conf ※設定ファイル内の"php_flag short_open_tag on"があると、以下エラーになるため、コメントアウトし、php.iniに"php_flag short_open_tag on"を加えています。 === エラーメッセージ Starting httpd: Syntax error on line 46 of /etc/httpd/conf.d/deki-apache.conf: Invalid command 'php_flag', perhaps misspelled or defined by a module not included in the server configuration === ===ここから=== <VirtualHost *> ServerName dekiwiki.mokemoke.asia ErrorLog /var/log/httpd/error-dekiwiki.log CustomLog /var/log/httpd/access-dekiwiki.log common DocumentRoot "/var/www/dekiwiki" ~略~ # FIXME: # Some php flags we need. These are only needed until all # the short php open tags are changed to long in the source code. #php_flag short_open_tag on # Setting php memory parameters # php_value memory_limit "128M" # php_value post_max_size "64M" # php_value upload_max_filesize "64M" ~略~ <Proxy *> AddDefaultCharset off Order deny,allow Deny from all Allow from all </Proxy> </VirtualHost> <Directory "/var/www/dekiwiki"> Options None AllowOverride All Order allow,deny Allow from all </Directory> ===ここまで=== インストール済みのパッケージ ■php # rpm -qa | grep php php55-xml-5.5.19-2.93.amzn1.x86_64 php-pear-1.9.5-2.17.amzn1.noarch php55-gd-5.5.19-2.93.amzn1.x86_64 php55-cli-5.5.19-2.93.amzn1.x86_64 php55-pecl-jsonc-1.3.6-1.12.amzn1.x86_64 php55-mysqlnd-5.5.19-2.93.amzn1.x86_64 php55-common-5.5.19-2.93.amzn1.x86_64 php55-pdo-5.5.19-2.93.amzn1.x86_64 php55-mcrypt-5.5.19-2.93.amzn1.x86_64 php55-process-5.5.19-2.93.amzn1.x86_64 php55-mbstring-5.5.19-2.93.amzn1.x86_64 ■apache # rpm -qa | grep http httpd-tools-2.2.29-1.4.amzn1.x86_64 httpd-2.2.29-1.4.amzn1.x86_64

    • ベストアンサー
    • PHP
  • PHPのファイルを表示できない

    現在PHPとApacheを用いてPukiwikiを構築しようと思っています。 PHP,Apacheをインストールしphp.iniとhttpd.confの設定をし、ApacheのhtdocsのフォルダにPukiwikiを入れてみたのですが、WebでPukiwiki内のphpファイルを見ようとするとファイルの保存画面が出てきてしまいうまくいきません。 どこかのファイルの設定をいじれば解決できるのでしょうか? ちなみにWindowsXP、PHP-5.2.1、Apache2.2.4を使用しています。 宜しくお願いします。

  • PHPのエラーでapacheが起動できない

    教えてください。 Fedora Core4でWebサーバーを構築しているのですが、 httpd.confをコンパイルすると下記エラーが出てしまいます。 ”Syntax error on line6 of /etc/httpd/conf.d/php.conf:Cannot load /etc/httpd/modules/libphp5.so into server:libgmp.so.3: Cannot open shared object file:No such file or directory” /etc/httpd/conf.d/php.confのファイルをロードしないようにすればapacheは起動するのですが、PHPが使えません。 どう対処したらapacheとPHPが両方解決できますか? 宜しくお願いします。

  • ~user を表示できない

    RedHat8.0+Apache2.43でウェブサーバーを立てたんですが、トップページは普通に表示できるのにユーザーのページが表示できません。/etc/httpd/conf/httpd.confでは <IfModule mod_userdir.c> # UserDir "disable" UserDir public_html </IfModule> としてあります。ユーザー(taro)のディレクトリのパーミッションは [root@aurora public_html]# pwd /home/taro/public_html [root@aurora public_html]# la 合計 16 drwxr-xr-x 2 taro users 4096 1月 31 16:36 . drwxr-xr-x 23 taro users 4096 5月 30 17:35 .. -rw-r--r-- 1 taro users 2936 1月 31 16:36 TokyoTime.class -rw-r--r-- 1 taro users 53 1月 31 16:36 index.html [root@aurora public_html]# です。 ユーザーのページを見れるようにするにはどうしたらいいでしょう?