ウェブサーバーの構築(Apache2+PHP5)

カテゴリ: Web Linux - Linuxウェブ環境を簡単準備 / 公開日: 2011年1月23日(日曜)15:16 / 投稿者: Tom Goodsun

ここからいよいよウェブサーバーの構築です。ウェブサーバーとはHTTPで通信してくるユーザー(クライアント)の要求に応じて、サーバー内の上表をHTTP経由で返すサーバーです。世の中で最もよく知られ、そして使われているのはApache(アパッチ)でしょう。このは無償で使用できます。

Apacheはそれ単体ではただのテキスト形式のファイル画像などを返すことしかできません。CMSや独自のサーバーサイドプログラムを使って、ファイルを操作したり、データベースと連携したシステムを作るには、そのプログラムが実行できる環境を構築しなければなりません。そこで今最もサーバーサイドプログラムとして流行っているのがPHPです。

世の中ではLAMP(ランプ:Linux、Apache、MySQL、PHP)といって、ウェブの実行環境を端的にあらわす言葉があり、ひとつの標準となっています。今回の場合ですLとMはすでに構築済みです。残りのApacheとPHPをインストールします。タイトルの通り、Apacheのバージョンは2、PHPは5以上をインストールしましょう。

最新版のインストールはこちらをご覧ください。

まずはApacheからインストールします。rootユーザーで以下のコマンドを実行します。

yum -y install httpd

Apacheのデーモンはhttpdと呼ばれています。以後、httpd=Apacheという認識で問題ありません。バージョンですが、2009年11月現在最新のApache2.2がデフォルトのリポジトリからインストールできます。
ひとまず起動してみてもいいのですが、先に設定をしてしまいましょう。
まずApacheの設定ファイルのバックアップをとって、編集していきます。

$ cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
$ vi /etc/httpd/conf/httpd.conf

編集箇所は決まっています。
今回はウェブ関連の管理をwebmasterユーザーにし、デフォルトのウェブ用のディレクトリは/home/webmaster/public_html/にします。その設定です。

231行目、User apache User webmaster
232行目、Group apache Group webmaster
281行目、DocumentRoot "/var/www/html" DocumentRoot "/home/webmaster/public_html"
306行目、<Directory "/var/www/html"> <Directory "/home/webmaster/public_html">
320行目、Options Indexes FollowSymLinks Options
327行目、AllowOverride None AllowOverride
391行目、DirectoryIndex index.html index.html.var DirectoryIndex index.html index.htm index.php index.pl index.cgi
406行目、Deny from all Allow from all

ここまで設定したら、起動してみます。が、その前に設定が正しいかどうかを確認します。

$ /etc/init.d/httpd configtest
Sysntax OK

設定内容が間違っているとその内容が出ますので、適切な状態に変更します。
では起動します。

$ /etc/init.d/httpd start     
httpd を起動中:                                            [  OK  ]

ではテスト用にindex.htmlを作成してみます。作るときはwebmasterユーザーで行いましょう。

$ su - webmaster
$ vi /home/webmaster/public_html/index.html

内容には「Hello!」と書いて保存します。そしてブラウザでLinuxのIPアドレスにアクセスします。IPアドレスはifconfigコマンドで確認できます。
ちゃんとブラウザ上に「Hello!」と表示されましたか? 表示されていれば静的ページのHTMLは組んでいける環境になりました。

次にPHPの設定です。まずはインストールから。以下の方法で、ほとんどのパッケージをインストールできます。

$ yum -y install php*

PHPはどちらかというとApacheのプラグイン的なものです。なので、設定の反映はApacheの再起動が必要です。では設定をカスタマイズしていきます。PHPの設定ファイルは/etc/php.iniです。

$ vi /etc/php.ini

変更箇所は以下の通りです。

360行目、error_reporting = E_ALL error_reporting = E_ALL
367行目、display_errors = On display_errors = On
910行目、;session.save_path = "/var/lib/php/session"  session.save_path = "/home/webmaster/session"

mbstring関係の設定は以下のようになるようにします。mbstringとはマルチバイト文字列(Multi Bytes String)のことで、われわれ日本人にとってはとても重要な部分です。

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;

ここまで設定が終わったら基本的な設定は終わったことになります。PHPの設定を反映するためにはApacheを再起どうさせます。

$ /etc/init.d/httpd configtest
Sysntax OK
$ /etc/init.d/httpd restart     
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

では実行確認をしましょう。まずはよくやる手ですが、index.phpというテキストファイルを作って、以下のような内容を記述します。
そしてそのファイルにアクセスします。index.htmlなどがあるとApacheのDirectoryIndexの設定で、優先順位を設定されているので、見れないことがあります。

<?php phpinfo(); ?>

PHPの設定内容が表示されれば、成功です。
あとはなにかPHPベースのCMSでも入れてみるのもいいでしょう。