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


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


🗻 Apacheのインストール確認

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

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の設定へ。
まだインストールしていないなら次のコマンドを実行。

sudo yum install httpd httpd-devel

🍣 Apacheの設定

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

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

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

# 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

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

sudo apachectl configtest
> Syntax OK <= 成功

Apacheを起動および、自動起動を設定。

sudo service httpd start
sudo chkconfig httpd on

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

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

🐰 参考リンク

さくらの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(macOS 10.8.4)

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

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)