酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

さくらVPS/Cent OS 6.4 Apache 2.2導入[Railsサーバへの道]

さくらVPS 2GB SSDのCentOS 6.4にApacheを導入するための手順です。Apacheは最もメジャーなWebサーバの一つで、競合にはNginxがあります。Webサーバはミッション・クリティカルなので、エンジニアさんの慣れた方をチョイスして下さい。


Apacheのインストール確認

まずは、Apacheのインストール済かどうかを確認します。

1
2
3
4
yum list installed | grep httpd
> httpd.x86_64         2.2.15-15.el6.centos.1
> httpd-devel.x86_64   2.2.15-15.el6.centos.1
> httpd-tools.x86_64   2.2.15-15.el6.centos.1

上のような結果がでるなら既にインストール済なのでApacheの設定へ。 まだインストールしていないなら次のコマンドを実行。

1
sudo yum install httpd httpd-devel

Apacheの設定

設定の実施前にhttpd.confのバックアップを取る。

1
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

Apacheの設定を行う。 sudo vim /etc/httpd/conf/httpd.confを実行して以下を編集。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# 44行目 OS情報を表示しないようにする
ServerTokens Prod

# 150行目以降の LoadModule ...の部分について 
# 下は使いそうなモジュールだけ残しています。
# 他はコメントアウトしてください(#を先頭につける)
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so

# 262行目 自分のメールアドレスに変更
ServerAdmin email@example.com

# 331行目 -(ハイフン)を追加
Options -Indexes FollowSymLinks

# 536行目 OS情報を表示しないようにする
ServerSignature Off

# キャッシュ強化(以下の行を追加)
# Apache Expire Header
ExpiresActive On
ExpiresByType application/javascript "access plus 1 days"
ExpiresByType application/x-javascript "access plus 1 days"
ExpiresByType text/javascript "access plus 1 days"
ExpiresByType text/css "access plus 1 days"
ExpiresByType image/jpeg "access plus 3 days"
ExpiresByType image/png "access plus 3 days"
ExpiresByType image/gif "access plus 3 days"
ExpiresByType image/x-icon "access plus 3 days"

# ETags
FileETag MTime Size

設定が完了したら、チェック。

1
2
sudo apachectl configtest
> Syntax OK <= 成功

Apacheを起動及び、自動起動を設定。

1
2
sudo service httpd start
sudo chkconfig httpd on

自動機能の確認。以下のようになっていれば成功。

1
2
chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

Special Thanks

さくらのVPS を改めて使いはじめる 4 – Apache をセットアップする

変更来歴

12/23 11:40 キャッシュ強化のための設定を追加 09/22 14:55 CentOS 6.4対応 & 記述ミスの修正

検証環境

今回の記事の検証環境は以下の通りです。

Local/Server:
  Ruby: 2.0.0
  Rails: 4.0.0

Local:
  OS: Mac Mountain Mountain Lion(OS X 10.8.4)

Server(さくらVPS 2G SSD):
    CentOS release 6.4 (Final)

おすすめの書籍