ゼロから始めるLinuxサーバ構築
ウェブサーバーの構築
RedHat Linux9やFedoraCoreなどのバージョンのLinuxでは,Apacheなどの主要なアプリケーションはRPMというパッケージでインストール・アンインストールできます。ここでは,LinuxインストールCDに収録されているApacheについて説明をします。
Apacheの設定はhttpd.confという設定ファイルを書き換えることによって行うことが出来ます。ここでは,この設定ファイルの説明を簡単に行っていきます。
なお,httpd.confは標準では/etc/httpd/conf/httpd.confに収められています。httpd.confを編集したら,設定を反映するためにApacheを再起動しましょう。
#/etc/init.d/httpd restart |
他のサイトではこのhttpd.confを日本語訳しているところもあります。参考になさってください。
- ServerAdmin kei_kun@email.plala.or.jp
サーバ管理者のメールアドレスを入力します。ここで入力されたメールアドレスは,HTTPエラーページなどに記載されます。
- ServerName keikun.homeip.net:80
運用するサーバ名を記述します。ServerAdminと同様にHTTPエラーなどに記載されます。
- DocumentRoot "/home/public_www/"
ドキュメントルートを設定します。指定したディレクトリ以下はHTTPで公開できるようになります。
- <Directory "/var/www/html">
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
HTMLのタグのように,<Directory〜>〜</Directory>で挟まれた部分は,その範囲においての設定を行うことが出来ます。例えば,上記の例であれば,/var/www/htmlディレクトリ以下に対してOptionやAllowOverrideなどの設定を行っていることになります。この設定を誤るとファイル一覧が出てしまい意図しないファイルが見えてしまうなどの弊害が出ますので,もし分からないようでしたら上記のようなオプションにすることをおすすめします。
- <IfModule mod_userdir.c>
UserDir public_html
</IfModule>
ユーザにもホームページを公開したい場合にはUserDirの前の#を外します。上記のように設定すると,/home/username/public_html/に置かれたファイルが,http://yourdomain.com/~usernameからアクセスできるようになります。ただし,その他の人にディレクトリの実行権を与える必要があります。(通常は705にする)
- AddLanguage ja .ja
AddLanguage nl .nl
・・・・
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddLanguage hr .hr
Apache2.0のデフォルトでは,日本語が一番上に来ていません。一番上にした方が文字化けを起こりにくくすることが出来るでしょう。
- LanguagePriority ja en da nl et fr de el it kr no pl pt pt-br ltz ca es sv tw
ここでも同じことが言えます。
- AddDefaultCharset shift_jis
最初,ここが日本語用になっていないために日本語のサイトを作成すると文字化けの現象に見舞われます。ここは,使用する文字コードが分かっている場合は,shift_jisまたはEUC-JPを,分からない場合は頭に#を付けてコメントアウトしましょう。
- AddHandler cgi-script .cgi .pl
デフォルトでは,.cgiのみがCGIスクリプトとしています。ここに.plと追加することによって.plのものもスクリプトとして取り扱うことが出来ます。当サイトではWebメーラーで.plのスクリプトを使用しています。
以上の設定で,最低限の設定はOKです。
補足,SSL対応サイトを強制的にSSLサイトへ向かわせる方法。
SSL対応サイトとそうでないサイトを同一サーバー上で運用すると,SSL対応にしたいサイトへSSL対応していない方法で接続する可能性が生じます。
(例:https://yourdomain.com/ssl/が本来のアドレスだが,
http://yourdomain.com/ssl/
で接続してしまう。)このようなことは,セキュリティーホールになりうるので,http://〜で接続してきたときはhttps://〜へリダイレクトするように設定します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "logs/rewrite_log"
RewriteLogLevel 0
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/webmail/(.*)?$ https://%{HTTP_HOST}/webmail/$1 [L,R]
RewriteRule ^/postmail/ssl/(.*)?$ https://%{HTTP_HOST}/postmail/ssl
$1 [L,R]
</IfModule>
この設定例だと,http://yourdomai.com/webmail/〜のアドレスとhttp://yourdomai.com/postmail/ssl/〜のアドレスをhttps://〜のサイトへ誘導することになります。
目次へ戻る