こんにちは!エンジニアのオータケです。
これからPHPを学ぼうと思っている皆さん、またはPHPを学び始めたみなさん。Apacheを知っていますか?
PHPのことについて調べているときに時々出てくる
PHPを実行するときに必要なのは知ってるけど、使うための設定方法がかわからない
といった方はぜひご覧ください。本記事では次のような内容を解説しております。
- [基本] Apacheとは何か
- [基本] ApacheにPHPを導入する方法(Windows、Mac、Ubuntu、CentOS)
- [実践] 正しく導入できたのか?不安な人のための確認方法
これらを学んで、本格的にPHPを勉強していきましょう!
Apacheとは?
実はみんなお世話になっている
皆さんは普段、PCやスマホからニュースサイトでニュースを見たり、お気に入りのWebサイトで情報を収集したりしているかと思います。これらのサイトはWebサーバーというものがなければアクセスすることができません。
このWebサーバーとは一言で簡単に表すなら、サイトを見ようとしてアクセスした時の窓口となり、この窓口が情報を返してくれる仕組みになっています。
つまり、Webサーバーがなければみなさんが見ているWebサイトを見ることができなくなってしまいます。このWebサーバーにはApacheというソフトがよく用いられます。
モジュール版とCGI版がある
今回PHPをApacheに導入する際にモジュール版と呼ばれるものとCGI版と呼ばれているものの2種類があります。
しかし、これについて解説し始めると少々複雑になってしまうのでここでは解説しませんが、簡単に違いを言えばモジュール版はPHPの処理実行速度面が速く、CGI版はセキュリティ面で恩恵を受けることができるといった形です。
今回は一般的によく用いられているモジュール版の導入方法を解説していきます。
ApacheにPHPを導入する方法
Windows・Mac編
まず、WindowsとMacでの導入方法について解説します。WindowsについてはXAMPPがよく使われるため次の記事を参考にされるとわかりやすく、短時間で導入できるかと思います!
この記事内にはMacでの導入方法についても記載されています。XAMPPまたはMAMPを使って導入したい方、よくわからないけどとりあえず導入してみたい方は上記の方法をおすすめします。
Debian系(Ubuntu編)
次にDebian系(今回はUbuntuでの導入方法)を解説します。まず、Apacheの導入が済んでいない方についてはターミナルを開いてから次のコマンドを打ちましょう。
sudo apt-get install apache2
少しするとApacheのインストールが完了するため、次にPHPを導入します。
sudo apt-get install php
実際にはインストール時にPHPやApacheはインストールされていることがあるためこのコマンドを打つ必要がない場合もあります。
RedHat系(CentOS)
次にRedHat系(今回はCentOSでの導入方法)を解説します。CentOSはバージョンが大きく、6と7の2種類あります。どちらでも同じ方法で導入できるため、次のコマンドでApacheを導入してください。
yum install httpd
このコマンドを実行して無事、Apacheをインストールできた場合は次にPHPを入れましょう。
yum install php
これらのコマンドでインストールできます。(yumを使う場合はsudoを先頭につけて使うか、rootユーザーに切り替えてyumをする必要があります。)
CentOSの場合もOSをインストールする際の設定次第ではこのあたりのパッケージ(ソフト)がインストールされている場合もあるため、実行しなくても導入済みなことがあります。
また、CentOSの場合はApacheのパッケージ名はapacheではなくてhttpdであるため注意しておきましょう。導入方法についてはここまでになります。ただ、正しく導入できたかわかりませんよね?
次の章では導入してからしっかり動作するかどうかを確認していきたいと思います。
インストール後のお話
正しく導入できたか確認したい
先程の章では導入の方法について解説してきました。この項で正しく導入できたかを確認していきたいと思います。まず、PHP自体が正しくインストールされているかどうかは次のように確認します。
Windowsの場合はコマンドプロンプトを起動してください、それ以外のMacやUbuntu,CentOSといったOSはターミナルを起動して次のようなコマンドを打ちます。
php -v
ここで次のように表示されればPHPの導入したと言えます。
PHP 7.2.4 (cli) (built: Mar 28 2018 04:26:56) ( NTS MSVC15 (Visual C++ 2017) x64 ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
これはWindowsで試した結果であるため、MacやUbuntu,CentOSの場合はまた少し違った情報が表示されると思います。重要なのは最初に「PHP X.X.X」(Xは数値が入る)が表示されているかどうかです。
これが表示されていないということはPHPの導入に失敗している可能性があるため、前章で再度確認してみてください。次にphpinfoを使ってWebブラウザ上でPHPが正しく導入されているか確認したいと思います。
<?php echo phpinfo(); ?>
このプログラムをメモ帳(以外のテキストエディタ等でも可)にコピペしましょう。コピペしたらphpinfo.phpというファイル名で保存し、Apacheのルートディレクトリになっている場所に置きましょう。
Windowsの場合でXAMPPを入れている場合はCxampphtdocsの下に入れてみましょう。MacやUbuntu、CentOSの場合は設定ファイルに書かれているパスにファイルを置く必要があります。
(例えば、CentOSの場合はhttpd.confに記載されている/var/www/html直下、Ubuntuの場合は/etc/apache2/apache2.confに記載されている、/var/www直下になります。)
ちなみにphpinfoって何?って思った方は次の記事を見ていただくとスッキリすると思います!
この記事では今回解説するphpinfoでPHPが正しく導入できているかを確認しています。XAMPPで導入している方についてはXAMPPのApacehを稼働させて(再生ボタンみたいなのを押す)、「http://localhost/php.info」にアクセスしてみましょう。
phpinfo.phpの設置が終わったらブラウザでphpinfo.phpにアクセスし、次のような画像が表示されるか確認し、正しく表示されていれば成功と言えるでしょう。
もし、表示されない場合は次の項をぜひご覧ください。なぜ表示されないかの主な原因を書いておきました!
動かなかった場合
先程の項で正しく動かなかった場合どうすればよいでしょうか? 正しく動かない場合にはいくつかの原因が考えられます。そのよくある原因を見ていきましょう。
設定ファイル(httpd.confなど)の設定に問題がある
まず、設定ファイルに問題がある場合動きません。設定ファイルとはApache側の設定ファイルのことを指します。(前章で少し触れた、httpd.confやapache2.confのことです。)
例えば、ブラウザでアクセスしたらソースコードがそのまま表示されてしまった場合、設定ファイルの設定不備が原因と言えるでしょう。この場合は、主に次の点を見ます。
LoadModule php7_module modules/libphp7.so
このような記述がhttpd.confやapache2.conf内にある必要があります。(こういった行を発見した場合でも先頭に#などが付いている場合は#を削除して外しましょう。)
他には、
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
といった設定も追加しておくと良いでしょう。(この設定もさきほど同様、先頭に#が付いている場合は#を消しましょう)
Webサーバーが起動していない
そもそも、Webサーバーが起動していない場合もあります。例えば、WindowsやMacでXAMPPなどを利用している場合はApacheが起動しているかを確認してください。起動していない場合は起動するボタンを押して起動してください。
UbuntuやCentOSなどの場合は、次のコマンドで起動状態を確認します。(CentOSは環境によってはsudoをつけなくても大丈夫な場合があります。)
Ubuntu・CentOS
sudo apachectl status
これらのコマンドで状態を確認します。起動している場合は次のような形で表示されます。
CentOSの場合は、緑色の文字で[OK]と表示されます!
Ubuntu・CentOS
sudo service httpd start
これで起動しているかどうかを確認し、起動していなければApacheを起動することでWebサーバーを立ち上げることができます。
Webサーバーが立ち上がってない場合はPHPが正しく導入されているかどうかよりもブラウザでWebサーバーにアクセスしてもページ自体が表示されないといった問題がおきます。
まとめ
いかがでしょうか?今回はApacheにPHPを導入するという環境構築方法について解説してきました。導入自体は全然難しくなかったかと思います。
環境によって導入方法が若干違うのが面倒くさいかもしれませんが、コツを掴んでしまえばすぐに導入できるかと思います。もし、迷いそうになったらこの記事を読んでくださいね。
また、これからPHPを本格的に勉強される方は次の記事必見です!