Apache2.2 インストールと設定

CentOS/RHELに Apache2.2 を yum でインストールする方法と、いつもやる最低限の初期設定を書きます。

■ Apache2.2 と mod_ssl (yum配布版rpm)

(1) インストール

SSLを入れない理由もないので mod_ssl も同時に入れます。

# yum  -y install httpd mod_ssl

(2) ファイル構成

/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/README
/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.d/welcome.conf

この中で重要なのはメインの設定ファイル httpd.conf です。
SSLの設定は ssl.conf で行います。

(3) 設定

メインの設定
/etc/httpd/conf/httpd.conf


KeepAlive On

KeepAliveTimeout 2

<IfModule prefork.c>
...
...
ServerLimit      100		※MaxClientsと同じにする
MaxClients       100		※メモリに応じ 100 程度から調整
MaxRequestsPerChild  1000	※メモリリークを抑えるため 1000以下
</IfModule>


# Includeの前に名前ベースのバーチャルホストの宣言
NameVirtualHost *:80
NameVirtualHost *:443
Include conf.d/*.conf


<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

<Directory "/var/www/html">
    Options -Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

DirectoryIndex index.html index.html.var index.htm index.shtml index.phtml index.hdml index.php index.cgi index.pl index.xml

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 UTF-8

AddHandler cgi-script .cgi .pl

AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html

バーチャルホストの設定(ファイルを作成)
/etc/httpd/conf.d/vhosts.conf

# 未定義の場合にデフォルトのDocumentRootを表示
<VirtualHost _default_:80>
</VirtualHost>

#バーチャルホストの設定
<VirtualHost *:80>
    #ServerAdmin admin@HOSTNAME
    DocumentRoot /home/USERNAME/public_html
    ServerName HOSTNAME
    ServerAlias DOMAINNAME
    SetEnvIf Request_URI "\.(gif)|(jpg)|(jepg)|(png)|(js)|(css)|(swf)|(flv)|(hta)$" nolog
    ErrorLog logs/HOSTNAME-error_log
    CustomLog logs/HOSTNAME-access_log combined env=!nolog
</VirtualHost>

SSLのデフォルト設定(特にSSL使わない場合)
/etc/httpd/conf.d/ssl.conf

<VirtualHost _default_:443>
#<VirtualHost xxx.xxx.xxx.xxx:443>	← IPベースの場合はIPを指定

#ErrorLog logs/ssl_error_log
ErrorLog logs/error_log             ← SSLじゃないログと統合する
#TransferLog logs/ssl_access_log
CustomLog logs/access_log combined  ← SSLじゃないログと統合する

LogLevel warn

...
...

#コメントアウト
#CustomLog logs/ssl_request_log \
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

Apache(httpd)を再起動

# /etc/rc.d/init.d/httpd start

コメントを残す