前準備 - 必要moduleのinstall
# yum groupinstall "Development Tools"
# yum install openssl-devel readline-devel zlib-devel curl-devel \
libyaml-devel ImageMagick ImageMagick-devel
# yum install ipa-pgothic-fonts
# yum install ruby ruby-devel
install redmine
と言っても、wgetして解凍するだけ
$ cd ~/dev $ wget http://www.redmine.org/releases/redmine-3.3.0.tar.gz $ tar -zxvf redmine-3.3.0.tar.gz $ ln -s redmine-3.3.0 redmine
redmine 用 database準備
mysql> create database redmine CHARACTER SET utf8;
mysql> GRANT ALL ON redmine.* to redmine@localhost;
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR redmine@localhost=password('????');
redmine 設定と、追加module install
$ cd ~/dev/redmine/redmine/config
$ cp database.yml.example database.yml
$ vi database.yml
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "????"
encoding: utf8
$ cp configuration.yml.example configuration.yml
email_delivery:
delivery_method: :smtp
smtp_settings:
enable_starttls_auto: true
address: "smtp.gmail.com"
port: 587
domain: "smtp.gmail.com"
authentication: :plain
user_name: "????@gmail.com"
password: "????"
# gem install io-console # gem install bundler --no-rdoc --no-ri ## --no-rdoc --no-ri はドキュメント不要のため # gem install json # yum install mysql-devel # gem install mysql2 $ cd ~/dev/redmine $ bundle install --path vendor/bundler --without development test $ bundle exec rake generate_secret_token $ bundle exec rake db:migrate RAILS_ENV=production
ruby application server - unicorn
$ ~/dev/redmine $ vi Gemfile gem "unicorn" #<-ADD $ bundle update
config unicorn
$ vi /home/end0tknr/dev/redmine/config/unicorn.rb
# -*- coding: utf-8 -*-
worker_processes 4
timeout 900
listen 6000
pid '/home/end0tknr/logs/unicorn.pid'
stderr_path '/home/end0tknr/logs/unicorn.log'
stdout_path '/home/end0tknr/logs/unicorn.log'
preload_app true
GC.respond_to?(:copy_on_write_friendly=) and GC.copy_on_write_friendly = true
before_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
old_pid = "#{ server.config[:pid] }.oldbin"
unless old_pid == server.pid
begin
sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
Process.kill :QUIT, File.read(old_pid).to_i
rescue Errno::ENOENT, Errno::ESRCH
end
end
end
after_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end
config nginx
# vi /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
index index.html index.htm;
server {
listen 80;
location /favicon.ico {
alias /home/ec2-user/dev/Splats/static/img/favicon.ico;
break;
access_log off;
}
location / {
return 302 https://$host$request_uri;
}
}
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/????.????.mydns.jp/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/????.????.mydns.jp/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /usr/share/nginx/html;
index index.html index.htm index.nginx-debian.html;
allow ???.???.???.0/24;
deny all;
server_name _;
location /redmine {
proxy_pass http://127.0.0.1:6000;
auth_basic "MEMBER ONLY";
auth_basic_user_file /home/ec2-user/dev/htpasswd;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-User $remote_user;
}
}
}
start uncorn , nginx
「 ????.????.mydns.jp/redmine 」でアクセスする為、「 --path /redmine」を起動時に指定しています。
$ cd /home/ec2-user/dev/redmine $ bundle exec unicorn_rails -D --path /redmine \ -c config/unicorn.rb -E production $ sudo su - # /etc/rc.d/init.d/nginx start access to https://????.????.mydns.jp/redmine initial user'ss id/pw = admin/admin