順番に入れていく。まだローカルでテストしてる段階なので、VPSに入れる時にはオプションとか変更するかも。
以下、特に断りがないかぎりバージョンは本記事公開時点の最新を選択。
CVMUプロジェクト自体、安定性より最新を重視してるので、さすがにdevelopment・canary・nightlyやβ版、RC版は使わないけど、正式リリースであれば出たばっかりのバージョンでもどんどん使っていくつもり。
※コマンドの先頭が「#」になってるものはroot権限が必要という意味で、実際はsudoでやってる場合もある。
Nginx
もちろんmainline(1.9.6)。
centos7 + nginx-mainline - Qiita
リポジトリ設定
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1インストール
# yum install --enablerepo=nginx nginx
開始
# systemctl start nginx.service
起動時開始設定
$ systemctl list-unit-files -t service | grep nginx nginx.service disabled # systemctl enable nginx.service ln -s '/usr/lib/systemd/system/nginx.service' '/etc/systemd/system/multi-user.target.wants/nginx.service' $ systemctl list-unit-files -t service | grep nginx nginx.service enabled
ファイアウォールに追加
$ firewall-cmd --list-all public (default, active) interfaces: enp0s3 enp0s8 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: # firewall-cmd --add-service=http --zone=public --permanent success # firewall-cmd --add-service=https --zone=public --permanent success # firewall-cmd --reload success $ firewall-cmd --list-all public (default, active) interfaces: enp0s3 enp0s8 sources: services: dhcpv6-client http https ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
設定
全体設定のほうは、とりあえずサーバートークン(ヘッダやエラーページのバージョン表示)OFFのみ変更。
(略)
http {
server_tokens off;
(略)
バーチャルサーバ(ホスト)の設定は、まずはこんな感じ。SSLに関しては別記事で。
server {
listen 80;
server_name cvmu.local;
rewrite ^(.*) https://cvmu.local$1 permanent;
}
server {
listen 443 default_server;
server_name cvmu.local;
ssl on;
ssl_certificate /etc/nginx/ssl/cvmu_local/server.pem;
ssl_certificate_key /etc/nginx/ssl/cvmu_local/server.key;
ssl_dhparam /etc/nginx/ssl/cvmu_local/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !kECDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED';
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;';
location / {
root /usr/share/nginx/html/cvmu_local;
index index.html index.htm;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}rbenv+Ruby
2.2.3を入れる。本番では変わるかも(trunkは既に2.3)。
必要環境(※1)のインストール
# yum install -y gcc openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel
rbenv/ruby-buildのインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv $ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv初期設定
~/.bashrc
に追記
[[ -d ~/.rbenv ]] && \ export PATH=${HOME}/.rbenv/bin:${PATH} && \ eval "$(rbenv init -)"
Rubyのインストール
$ rbenv install 2.2.3 $ rbenv global 2.2.3 $ ruby -v ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
...やっぱりシステム全体に入れよう。
ということで「必須環境のインストール」の次からやり直す。
rbenvをシステムワイドにインストールする ≫ つくば日記(仮)
【Linux】CentOS6.5にrbenvをsudoで呼び出せるよう環境構築 | Web活
visudoの設定
# visudo
(略)
Defaults env_keep += "(略)"
Defaults env_keep += "PATH RBENV_ROOT" ←追加
(略)
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rbenv/bin:/usr/local/rbenv/shims ←rbenv関連のパスを追加rbenv/ruby-buildのインストール
# git clone git://github.com/sstephenson/rbenv.git ${RBENV_ROOT} # git clone git://github.com/sstephenson/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build
rbenv初期設定
# rbenv init - $ bash -c 'cat <<\__EOT__ >> ~/.bash_profile export RBENV_ROOT="/usr/local/rbenv" export PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init -)" __EOT__'
2つ目のコマンドは、rbenvを使いたいユーザーで実行。反映させるためにexec ${SHELL} -l
。
Rubyインストール
# rbenv install 2.2.3 # rbenv global 2.2.3 $ ruby -v ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
Rails+Unicorn
本当は5を入れたいけどまだ出てないから4.2.4で。
Rails 4.2 + Unicorn + Nginx でアプリケーションサーバの構築 - Qiita
上記記事を参考に、最小限のテストプロジェクトを作って動かす。
まだMariaDBセットアップしてないから、DBはsqlite3。なのでsqliteの開発ライブラリを入れる。
# yum install sqlite-devel
あと、therubyracerでg++が足りなかったので追加でインストール。
# yum install gcc-c++
調べるまで知らなかったけど、Unicornってbundleでアプリごとに入れられるみたい。
てっきりPhusion Passengerみたいにシステムgemで入れるものだと思ってた。
ちょっと時間がなくて急ぎ足でごちゃごちゃっと入れちゃったから、nginxとUnicornのところは後日再確認して復習かな。
コメント