ウェブサーバーを構築する
ウェブサーバーを構築するときによく使用される Apache HTTP Server の始まりは、NCSA httpd のバグ修正や新しい機能を追加するときにパッチ(patch)を集めて開発していたことが由来となっているようです。 しかし、Apache HTTP Server は、こうしたバグの修正や新しい機能の追加を行ってきたことにより、現在では世界一のシェアを誇るウェブサーバー用ソフトウェアとして知られています。
ネットワーク端末から接続を行う場合には、パケットフィルタリングを停止しておく必要があります。
パッケージのインストール
ウェブサーバーパッケージは、yum コマンドを使用してインストールします。
[root@web ~]# yum install httpd
[ CentOS 6 / CentOS 5 ]
パッケージインストール後の設定
Apache HTTP Server に関する設定を変更します。 オプション項目が若干多いと思うかもしれませんが、言いかえればそれだけ柔軟かつ高機能であると言ってもよいと思います。
[root@web ~]# vi /etc/httpd/conf/httpd.conf
### Section 1: Global Environment # # The directives in this section affect the overall operation of Apache, # such as the number of concurrent requests it can handle or where it # can find its configuration files. # # # Don't give away too much information about all the subcomponents # we are running. Comment out this line if you don't mind remote sites # finding out what major optional modules you are running # Apache レスポンスヘッダの指定 ServerTokens Prod [ Prod : プロダクト名のみ ] : ( 中略 ) : ### Section 2: 'Main' server configuration # # The directives in this section set up the values used by the 'main' # server, which responds to any requests that aren't handled by a # <VirtualHost> definition. These values also provide defaults for # any <VirtualHost> containers you may define later in the file. # # All of these directives may appear inside <VirtualHost> containers, # in which case these default settings will be overridden for the # virtual host being defined. # # # ServerAdmin: Your address, where problems with the server should be # e-mailed. This address appears on some server-generated pages, such # as error documents. e.g. admin@your-domain.com # # サーバー管理者の指定 ServerAdmin webmaster@i2kt.com # # ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup. # # If this is not set to valid DNS name for your host, server-generated # redirections will not work. See also the UseCanonicalName directive. # # If your host doesn't have a registered DNS name, enter its IP address here. # You will have to access it by its address anyway, and this will make # redirections work in a sensible way. # # サーバー名の指定 ServerName www.i2kt.com:80 : ( 中略 ) : # # This should be changed to whatever you set DocumentRoot to. # <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # # 制御オプションの指定(SSI、CGI プログラムの実行を許可) Options Includes ExecCGI FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # # アクセスコントロールファイルによるオーバーライドの許可 AllowOverride All [ All : すべてを許可 ] # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory> : ( 中略 ) : # # The following directives define some format nicknames for use with # a CustomLog directive (see below). # # ログの設定(414 ERROR は記録しない) LogFormat "%h %l %u %t ¥"%!414r¥" %>s %b ¥"%{Referer}i¥" ¥"%{User-Agent}i¥"" combined LogFormat "%h %l %u %t ¥"%r¥" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent : ( 中略 ) : # # For a single logfile with access, agent, and referer information # (Combined Logfile Format), use the following directive: # # カスタムログの設定 SetEnvIf Request_URI "default¥.ida" no_log SetEnvIf Request_URI "cmd¥.exe" no_log SetEnvIf Request_URI "root¥.exe" no_log SetEnvIf Request_URI "Admin¥.dll" no_log SetEnvIf Request_URI "NULL¥.IDA" no_log SetEnvIf Request_URI "¥.(gif)|(jpg)|(png)|(ico)|(css)$" no_log SetEnvIf Remote_Addr 192.168. no_log CustomLog logs/access_log combined env=!no_log : ( 中略 ) : # # Optionally add a line containing the server version and virtual host # name to server-generated pages (internal error documents, FTP directory # listings, mod_status and mod_info output etc., but not CGI generated # documents or custom error documents). # Set to "EMail" to also include a mailto: link to the ServerAdmin. # Set to one of: On | Off | EMail # # Apache のバージョン表示設定 ServerSignature Off [ Off : 非表示 ] : ( 中略 ) : # # LanguagePriority allows you to give precedence to some languages # in case of a tie during content negotiation. # # Just list the languages in decreasing order of preference. We have # more or less alphabetized them here. You probably want to change this. # # MIME 言語タイプの適用優先順位(日本語を優先) 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 : ( 中略 ) : # # Specify a default charset for all content served; this enables # interpretation of all content as UTF-8 by default. To use the # default browser choice (ISO-8859-1), or to allow the META tags # in HTML content to override this choice, comment out this # directive: # # コンテントタイプパラメータを持たない応答に利用する文字コード(システム文字コード) AddDefaultCharset Off : ( 中略 ) : # # AddHandler allows you to map certain file extensions to "handlers": # actions unrelated to filetype. These can be either built into the server # or added with the Action directive (see below) # # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # # ハンドラとサフィックスの対応付け(pl 拡張子ファイルも CGI プログラムとして扱う) AddHandler cgi-script .cgi .pl : ( 中略 ) : # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html # # 404 エラーページの設定(ドキュメントルートに 404 エラーページを配置) ErrorDocument 404 /404.html
[ CentOS 6 / CentOS 5 ]
ウェブサーバーの起動
パッケージをインストールした段階では、セキュリティを考慮しているため自動起動されません。 システムの再起動後にウェブサーバーを自動起動するための設定を行います。
ウェブサーバーを起動する
[root@web ~]# /etc/rc.d/init.d/httpd start
httpd を起動中: [ OK ]
ウェブサーバーの自動起動を設定する
[root@web ~]# chkconfig httpd on
[root@web ~]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[ CentOS 6 / CentOS 5 ]