EC2にapache、nginx、mysql、memcached、redisをインストールする方法メモ。
apacheのインストール
webサーバーを起動するだけなら以下のコマンドで完了。
ディレクトリの中身一覧を表示しない設定は、最近のバージョンのapacheなら/etc/httpd/conf.d/welcome.confの中で最初から設定されています。
sudo yum install -y httpd sudo /etc/init.d/httpd restart sudo chgrp -R ec2-user /var/www sudo chown -R ec2-user /var/www
nginxのインストール
リバースプロキシとして使うための設定がけっこう面倒。
# yumリポジトリの登録 sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm sudo yum install -y nginx # mod_so が有効か確認する(最近のapacheはデフォルトで有効) /usr/sbin/httpd -M | grep so_module # リバプロのIPを正しいIPに変換するためのモジュール sudo yum install -y gcc httpd httpd-devel cd /usr/local/src/ sudo wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz sudo tar xvzf mod_rpaf-0.6.tar.gz cd mod_rpaf-0.6 sudo perl -p -i.bak -e 's/APXS2=\\$\\(shell which apxs2\\)/APXS2=\\/usr\\/sbin\\/apxs/g' ./Makefile sudo make rpaf-2.0 sudo make install-2.0 sudo chmod 755 /usr/lib64/httpd/modules/mod_rpaf-2.0.so # リバプロの設定をnginxの設定ファイルに追記 sudo sh -c 'echo " proxy_set_header Host \\$http_host; proxy_set_header X-Real-IP \\$remote_addr; proxy_set_header X-Forwarded-Proto \\$scheme; proxy_set_header X-Forwarded-Host \\$http_host; proxy_set_header X-Forwarded-Server \\$host; proxy_set_header X-Forwarded-For \\$proxy_add_x_forwarded_for; " >/etc/nginx/conf.d/proxy.conf' # 参考リンクのディレクトリ名をそのまま使っている。 # Debianだとこういうディレクトリを使うらしい。 # EC2はDebian系ではないので/etc/nginx/conf.d/に置いた方がいいと思う。 sudo mkdir /etc/nginx/sites-available sudo mkdir /etc/nginx/sites-enabled cd etc/nginx sudo perl -p -i.bak -e 's/http {/http {\\n include \\/etc\\/nginx\\/sites-enabled\\/*;/g' /etc/nginx/nginx.conf sudo perl -p -i.bak -e 's/root \\/usr\\/share\\/nginx\\/html;/root \\/var\\/www\\/html;/g' /etc/nginx/nginx.conf # ここからはリバースプロキシの設定 sudo sh -c 'echo " server { listen 80; server_name .; location / { proxy_pass http://localhost:8000; proxy_redirect default; break; } }" >/etc/nginx/sites-available/isucon_study' sudo perl -p -i.bak -e 's/^Listen 80$/Listen 127.0.0.1:8000/g' /etc/httpd/conf/httpd.conf sudo sh -c 'echo " LoadModule rpaf_module /usr/lib64/httpd/modules/mod_rpaf-2.0.so RPAFenable On RPAFsethostname On RPAFproxy_ips 127.0.0.1 10.0.0.1 RPAFheader X-Forwarded-For " >/etc/httpd/conf.d/reverse_proxy.conf'
参考リンク
CentOS-6へ最新版のnginxを3分でインストールする方法
mysqlのインストール
動かすだけならyumでインストールするだけ。
sudo yum intall -y mysql mysql-server sudo /etc/init.d/mysqld restart $ mysql mysql> show databases; mysql> show tables; ...
memcachedのインストール
動かすだけならyumでインストールするだけ。
sudo yum install -y memcached sudo /etc/init.d/memcached restart # telnetで試してみたいなら telnet 127.0.0.1 11211
redisのインストール
基本的にはhttps://gist.github.com/dstroot/2776679のスクリプトを実行すればインストールできる。
このURLのシェルスクリプトをそのまま実行すると、「sedの部分のみ」sudo権限がなくて失敗することに注意。その点を修正したインストールスクリプトは下記の通り。
# このスクリプトから必要な部分のみ抜粋 # https://gist.github.com/dstroot/2776679 sudo yum -y install gcc gcc-c++ make cd /usr/local/src sudo wget http://redis.googlecode.com/files/redis-2.6.0-rc5.tar.gz sudo tar xzf redis-2.6.0-rc5.tar.gz sudo rm redis-2.6.0-rc5.tar.gz -f cd redis-2.6.0-rc5 sudo make sudo mkdir /etc/redis /var/lib/redis sudo cp src/redis-server src/redis-cli /usr/local/bin sudo sh -c ' sed -e "s/^daemonize no$/daemonize yes/" -e "s/^# bind 127.0.0.1$/bind 127.0.0.1/" -e "s/^dir \\.\\//dir \\/var\\/lib\\/redis\\//" -e "s/^loglevel verbose$/loglevel notice/" -e "s/^logfile stdout$/logfile \\/var\\/log\\/redis.log/" redis.conf > /etc/redis/redis.conf' sudo wget https://raw.github.com/gist/2777433/e64b4b8ad7d38676f7e7f70b24f3f004b4f10b74/redis-server sudo mv redis-server /etc/init.d sudo chmod 755 /etc/init.d/redis-server sudo service redis-server start # telnetで試してみたいなら telnet 127.0.0.1 6379
参考リンク
https://gist.github.com/dstroot/2776679