質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

3回答

10877閲覧

ローカル開発環境からブラウザでphpファイルを確認できない

blackPorgy_

総合スコア46

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

2クリップ

投稿2015/09/10 13:37

VirtualboxにvagrantでCentOSを導入して,php,MySQL,pythonなどをインストールしました.また,Cyberduckを導入しCentOSと接続して,ローカル開発環境を整えました.次にphpファイルをブラウザで確認しようと,```

<?php echo "Hello from vagrant!"; ``` というファイルを作り,index.phpという名前でCyberduckに保存して,ブラウザで 192.168.xx.xx/index.php と入力したのですが,上のソースコードが表示され,ちゃんと「Hello from vagrant」と表示されませんでした. 調べてみると,CentOSのApacheの設定に問題があるようなのでrootで``` sudo vi /etc/httpd/conf/httpd.conf ``` で設定エディタを立ち上げたのですが,どの部分を変更すればちゃんとphpファイルがブラウザで確認できるのかがわかりません.Apacheの設定方法を教えていただけると幸いです.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

以下は正しく行えている前提で回答致します。
(phpファイル内容が表示できているので問題ないと想定しています。)

  • CentOS, PHP, Apacheのインストール
  • Firewallの無効化、または適切な設定(HTTPプロトコルの通信許可設定)
  • Apacheの設定、起動(/etc/httpd/conf/httpd.conの設定など)
  • MySQLは現段階でPHPを動作させる部分には関係ないので除いています

CentOS、Apacheのバージョンが未記載ですが、CentOS7にyumコマンドでインストール可能なApache 2.4.6を想定して回答致します。

検証した環境(ゲストOS:Vagrant上のサーバ)

  • CentOS7
  • Apache 2.4.6
  • php 5.4.16

yumコマンドでApache, phpをインストールすると上記バージョンのApache, phpがインストールされます。
その状態でドキュメントルート(/var/www/html)に記載いただいているphpソースをindex.phpとして保存しブラウザからアクセスすると問題なく「Hello from vagrant」と表示されます。

Apacheの設定ファイルはご認識の通り「/etc/httpd/conf/httpd.conf」ですが、標準では「/etc/httpd/conf.d/」内のxxxx.confも読み込むようになっています。
phpに関しては「/etc/httpd/conf.d/php.conf」に設定があります。
参考に検証した環境のphp.confファイルを以下に記載します。

shell

1# 2# Cause the PHP interpreter to handle files with a .php extension. 3# 4<FilesMatch \.php$> 5 SetHandler application/x-httpd-php 6</FilesMatch> 7 8# 9# Allow php to handle Multiviews 10# 11AddType text/html .php 12 13# 14# Add index.php to the list of files that will be served as directory 15# indexes. 16# 17DirectoryIndex index.php 18 19# 20# Uncomment the following lines to allow PHP to pretty-print .phps 21# files as PHP source code: 22# 23#<FilesMatch \.phps$> 24# SetHandler application/x-httpd-php-source 25#</FilesMatch> 26 27# 28# Apache specific PHP configuration options 29# those can be override in each configured vhost 30# 31php_value session.save_handler "files" 32php_value session.save_path "/var/lib/php/session"

「FilesMatch」ディレクティブ部分と「AddType」にて拡張子がphpのファイルをphpファイルとして扱うように指定されています。
ご自身の環境ではどのようになっていますでしょうか。

調べてみると,CentOSのApacheの設定に問題があるようなので

拡張子がphpのファイルをApacheがphpとして扱えていないように思われますので、上記設定をご確認ください。

投稿2015/09/10 14:17

takyafumin

総合スコア2335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

blackPorgy_

2015/09/10 14:42

回答ありがとうございます.CentOSのバージョンは6.7,apacheのバージョンは2.2.15でした.sudo vi /etc/httpd/conf.d/php.confで調べてみると,AddTypeはありましたが,FilesMatchの記載が見当たりませんでした.これは,INSERTモードで上のように書き加えればいいのでしょうか.
takyafumin

2015/09/10 15:15

CenOS, apacheのバージョン承知致しました。 同環境を構築して確認してみましたが、yumでapache, phpをインストールした場合、先ほど(CentOS7環境)と同様に「Hello from vagrant!」と表示されました。 /etc/httpd/conf.d/php.confの設定内容ですが、apacheは2.2.x系と2.4.x系において設定ファイルの記述方法に異なる部分があるため、改めて設定内容を記載致します。 再度、ご自身の設定との差異をご確認ください。 ```shell # # PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # <IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule worker.c> LoadModule php5_module modules/libphp5-zts.so </IfModule> # # Cause the PHP interpreter to handle files with a .php extension. # AddHandler php5-script .php AddType text/html .php # # Add index.php to the list of files that will be served as directory # indexes. # DirectoryIndex index.php # # Uncomment the following line to allow PHP to pretty-print .phps # files as PHP source code: # #AddType application/x-httpd-php-source .phps ```
blackPorgy_

2015/09/13 05:10

設定内容がかなり違っているようです… # # PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # <IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule !prefork.c> LoadModule php5_module modules/libphp5-zts.so </IfModule> # # The following lines prevent .user.ini files from being viewed by Web clients. # <Files ".user.ini"> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all Satisfy All eny from all Satisfy All </IfModule> </Files> # # Allow php to handle Multiviews # AddType text/html .php # # Add index.php to the list of files that will be served as directory # indexes. # DirectoryIndex index.php # mod_php options <IfModule mod_php5.c> # # Cause the PHP interpreter to handle files with a .php extension. # <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> # # Uncomment the following lines to allow PHP to pretty-print .phps # files as PHP source code: # #<FilesMatch \.phps$> # SetHandler application/x-httpd-php-source #</FilesMatch> # # Apache specific PHP configuration options # those can be override in each configured vhost # php_value session.save_handler "files" php_value session.save_path "/var/lib/php/session" php_value soap.wsdl_cache_dir "/var/lib/php/wsdlcache" </IfModule>
takyafumin

2015/09/13 07:46

提示いただいた/etc/httpd/conf.d/php.confの内容で一部転記ミスと思われる部分を削除して動作させたところ、PHPがきちんと動作しました。 転記ミスと思われる箇所 25-26行目(削除して確認) --- eny from all Satisfy All --- 記述されている内容が異なるように見えますが、apacheに設定している内容はほぼ同一です。 * phpモジュールの読み込み(LoadModule) * php拡張子の場合、phpとして扱う設定(AddType, SetHandler) * その他、php固有の設定(php_value *****) 問題点の切り分けとして、以下もご確認ください。 * /etc/httpd/conf/httpd.confで/etc/httpd/conf.d/を読み込んでいるか (Include conf.d/*.conf の記述) * phpモジュールが読み込まれているか sudo httpd -M を実行して「php5_module (shared)」が表示されるか 上記のほか、他の質問で/etc/httd/conf/httpd.confの設定変更を変更している箇所があれば、記述が重複しますのでhttpd.confの設定をもとん戻して確認ください。 * DirectoryIndex index.html index.htm index.cgi index.php(index.phpを追加) * AddType application/x-httpd-php .php なお、設定ファイル(httpd.confやphp.conf)の設定変更後はapacheの再起動が必要です。 sudo service httpd restartにてapacheの再起動後にブラウザから表示確認をお試しください。
blackPorgy_

2015/09/13 15:52

やってみました.ちゃんと表示されました!ありがとうございます.本当に助かりました!丁寧に質問に答えて下さりありがとうございました.
takyafumin

2015/11/10 02:11

hiro_weedslayerさま コメント欄ですと後続のやりとりが長くなった場合に大変見づらくなってしまうため、新たに質問を上げていただくことは可能でしょうか。 その際、参考にしているドットインストールのURLもお知らせください。 ドットインストールの内容を確認したら、解決のヒントがあるかもしれないので。 よろしくお願いします。
hiro_weedslayer

2015/11/11 04:12

takyafuminさま 了解です。ご迷惑をお掛けしました。
takyafumin

2015/11/11 16:28

迷惑はありません。 こちらに質問をあげてくださったようですね。 他の方も回答してくださっているようです。 https://teratail.com/questions/19874 ドットインストールのURLもお知らせいただきありがとうございます。 こちらでも確認してみます。
guest

0

vagrantで、PHPをインストールされたとの事なのですが、インストールしたPHPのモジュール名はわりますか?

それと、サーバ上にSSHログインを行い、php -v コマンドが実行出来ますでしょうか?

投稿2015/09/11 07:25

takayukiinaba

総合スコア1158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

blackPorgy_

2015/09/13 05:00

回答ありがとうございます. モジュール名は,すみません,わかりません.dotinstallというサイトで紹介されていた手順でインストールしました.githubにdotinstall側が用意していたスクリプトを使いました. また,サーバ上にsshログインを行い,php -vコマンドは実行できます.php 5.6.13です.
guest

0

PHPのとじタグ
?>
は書かれていないのでしょうか?
書かれていなかったら書いてみてもう一度ブラウザでアクセスしてみては

投稿2015/09/10 14:09

kutu

総合スコア257

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

blackPorgy_

2015/09/10 14:37 編集

回答有難うございます.書いてみましたが,ブラウザでは反応しませんでした.
takayukiinaba

2015/09/11 07:23

横から失礼します。 上記の場合は、PHPのみの記述になりますので閉じタグは不要です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問