読者です 読者をやめる 読者になる 読者になる

汎用的に使える自宅Linuxサーバを安価で手軽に構築(7)

サーバ Linux

はじめに

前回はCUPSを導入してプリントサーバを構築しました。今回はApacheを導入してWebサーバを構築します。

インストール

httpdパッケージをインストールします。

# yum install httpd

基本設定

/etc/httpd/conf/httpd.confを編集します。以下の項目は全て設定ファイル内に記述されています。初期設定値から適切な値に変更してください。

初期状態の設定は必要最小限になっているので、ここで変更する項目はあまりありません。

# 適切なメールアドレスに変更
#ServerAdmin root@localhost
ServerAdmin ymkn@jibunstyle.net

# 適切なサーバ名に変更
#ServerName www.example.com:80
ServerName saba:80

# 日本語を最優先の言語にする
#LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

# 文字コードがらみのトラブルを未然に防ぐためにAddDefaultCharsetを無効にする
#AddDefaultCharset UTF-8

基本的なセキュリティ対策

引き続きhttpd.confを編集し、基本的なセキュリティ対策を施します。

# サーバ情報の表示を最小限にする
#ServerTokens OS
ServerTokens Prod

# ServerSignature On
ServerSignature Off



<Directory "/var/www/html">
# インデックス表示を無効にします。
#    Options FollowSymLinks Indexes
    Options FollowSymLinks

あっさりですが、いったんはこれで設定完了です。

サービスとファイアウォールの起動設定

おなじみsetupコマンドを使ってシステム起動時にhttpdが起動するようにします。もちろん、ファイアウォールの設定で80番を解放するのを忘れずに。

# setup
[サービス]を選択して[httpd]を有効に
[ファイヤーウォールの設定]を選んで[カスタマイズ]を選び、[受信を許可]で[WWW (HTTP)]を有効にする

httpdの起動

# /etc/init.d/httpd start

動作確認

WindowsでWebブラウザを起動し、自宅サーバのURLに接続します。

http://saba/

CentOS Test Pageが表示されればOKです。

ユーザディレクトリ

次に、ユーザディレクトリの設定を行います。今回は、ユーザディレクトリを開発用ディレクトリとして使うこととし、公開範囲はLAN内限定にします。

再び/etc/httpd/conf/httpd.confを編集しましょう。

# UserDirを有効にするためにコメントアウト
#UserDir disable

# UserDirを有効にするためにアンコメント
# デフォルトの/home/*/public_htmlでは、
# httpdの実行ユーザのアクセスを許可するために
# /home/*のアクセス権をゆるめる必要があるため、
# /home以下でない場所に専用のディレクトリを別途用意する
#UserDir public_html
UserDir /var/www/users/*

# UserDirにはLAN内からのみアクセス可能にする

#<Directory /home/*/public_html>
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>
<Directory /var/www/users/*/>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST PUT DELETE OPTIONS>
        Order deny,allow
        Deny from all
        Allow from 192.168.1.
    </Limit>
    <LimitExcept GET POST PUT DELETE OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

# cgiとして認識する拡張子を追加する(お好みで)
#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi .pl .rb
ディレクトリの作成

これで/var/www/users以下のディレクトリがユーザディレクトリとして扱われるようになりました。実際にフォルダを作成し、テストページを配置して動作確認します。

# mkdir /var/www/users
# mkdir /var/www/users/ymkn
# chown ymkn /var/www/users/ymkn

利便性のために、ホームディレクトリへ/var/www/users/ymknのシンボリックリンクを張ります。この作業は一般ユーザで行います。

$ ln -s /var/www/users/ymkn ~/public_html

続いて、動作確認用のテストページを適当に作成します。

$ vi ~/public_html/index.html
	<html><head><title>ymkn's home</title></head><body><h1>hello!</h1></body></html>

設定反映

今編集した内容を反映させます。

# /etc/init.d/httpd reload

動作確認

公開用ディレクトリの時と同様に、WindowsからWebブラウザで下記URLにアクセスします。

http://saba/~ymkn/

先ほど作成したテストページが表示されたでしょうか? 無事表示が確認できたら、公開用ディレクトリのテストページを削除します。

# rm -f /etc/httpd/conf.d/welcome.conf
# rm -f /var/www/error/noindex.html

最後にもう一度設定を反映して完了です。

# /etc/init.d/httpd reload

おわりに

以上でApacheの導入によるWebサーバの構築は完了です。静的なコンテンツとCGIスクリプトは動作しますので、どんどん開発や勉強に活用しましょう。

次回以降でmysqlPHPを導入し、データベースを使ったPHPアプリケーションの動作環境を構築します。いわゆるLAMP環境ですね。