- Webサーバー(Apache2 + SSL)の設定 -
ここでは、ホームページを外部に公開するための環境を構築します。
HTTPサーバーにApache2を用いて、SSLで暗号化されたセキュアなページ( https:// でアクセスします )も作れるように設定していきます。
SSL化のための鍵の作成方法についてはSSL化のための鍵作成を参照してください。
※ 基本的な設定箇所のみを記述しています。(赤字は補足説明です) ドメインは、EXAMPLE.COMを使用しているものとします。 httpd.conf全文を参照したい方はこちらを参照してください。(若干編集しています) # cd /etc/httpd HTTPの設定 # vi conf/httpd.conf #ServerAdmin root@localhost ← 管理者のメールアドレス ServerName www.example.com:80 ← 必ず設定してください。 #DocumentRoot "/var/www/html" ← ルートディレクトリ http://www.example.com/ でここのディレクトリにアクセスします。 DocumentRoot "/home/webmaster/www" ← 管理しやすいように変更しました オプションの設定 # Options Indexes FollowSymLinks Options FollowSymLinks Includes ExecCGI Multiviews ※ Optionsについて All : MultiViewsを除いたすべての機能を有効 ExecCGI : CGIの実行を許可 FollowSymLinks : シンボリックリンクの許可 Indexes : DirectoryIndexで指定したファイルが無い場合 ディレクトリ内を一覧を見ることができる。 Includes : SSIを有効にする IncludesNOEXEC : SSIは有効になりますが、#execコマンドと#exec CGIは無効 Multiviews : Content negotiated MultiViewsを許可 (AddLanguageなどが有効になる) SymLinksIfOwnerMatch : 対象とするファイル(ディレクトリ)がリンクしている時 同様のユーザーIDの場合にシンボリックリンクを許可 <IfModule mod_userdir.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # # UserDir disable ← 注釈にしました # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disable" line above, and uncomment # the following line instead: # UserDir www ← 一般ユーザーのホームディレクトリ(public_htmlから変更しました) 一般ユーザーのアドレスは、http://example.com/~userとなります。 </IfModule> #<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 /home/*/www> AllowOverride FileInfo AuthConfig Limit Options ExecCGI MultiViews 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> アクセスする際ディレクトリ名の終わりの / を指定すると、ここで指定したindex.htmlを表示します。 優先順位はindex.html→index.htm→・・・・となっております。 #DirectoryIndex index.html index.html.var DirectoryIndex index.html index.htm index.php index.cgi #ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" ScriptAlias /cgi-bin/ "/home/webmaster/cgi-bin/" #<Directory "/var/www/cgi-bin"> <Directory "/home/webmaster/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> 言語の優先順位[日本語jaを先頭に持ってきます] #LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw LanguagePriority ja en da nl et fr de el it kr no pl pt pt-br ltz ca es sv tw デフォルトのCarsetをnoneにします。(※ 文字化け対策) #AddDefaultCharset ISO-8859-1 AddDefaultCharset none AddHandler cgi-script .cgi AddHandler cgi-script .pl CGIについて 上記の設定では、一般ユーザーディレクトリ内では、CGI は実行できません。 取り合えず実行できるようにするには、suexecを無効にします。 suexecをリネームしておきます。 # mv /usr/sbin/suexec /usr/sbin/suexec.bak 設定を反映させるためhttpdを再起動してください。 # service httpd restart SSLの設定 # vi conf.d/ssl.conf <VirtualHost _default_:443> # General setup for the virtual host DocumentRoot "/home/webmaster/www" ServerName example.com:443 #ServerAdmin you@example.com ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log SSL認証ファイルの場所を指定 鍵の作成についてはSSL化のための鍵作成を参照してください。 #SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt SSLCertificateFile /usr/local/certs/server.crt #SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key SSLCertificateKeyFile /usr/local/certs/server.key </VirtualHost> PHP/Perl(CGI)の設定 特に変更箇所はありませんでした # vi conf.d/php.conf # vi conf.d/perl.conf 各設定ファイルを変更後、設定ファイルが正しいかどうか確認します。 # /etc/rc.d/init.d/httpd configtest Syntax OK エラーがあれば、該当箇所を訂正してください。 httpdを起動します # /etc/rc.d/init.d/httpd start 自動起動の設定、及び確認です # chkconfig httpd on # chkconfig --list httpd
Copyright © 2004-2005 E-HIRO.NET. All Rights Reserved.