ウェブサーバーの構築(Apache2+PHP5)
ここからいよいよウェブサーバーの構築です。ウェブサーバーとは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でも入れてみるのもいいでしょう。