====== Install ======
===== リポジトリ =====
{{section>centos:yum:quick_repo#centos_6x}}
===== 開発ツール =====
# yum -y install openssl-devel gcc-c++ git
===== MongoDB =====
# vi /etc/yum.repos.d/mongodb.repo
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=0
# yum --enablerepo=mongodb-org-3.0 install mongodb-org
# chkconfig mongod on
# service mongod start
===== Apache、etc =====
# yum -y install httpd libcurl-devel httpd-devel apr-devel apr-util-devel
===== Ruby、etc =====
==== rbenv ====
複数のRubyバージョンをインストールして、それぞれのRuby環境を切り替える
# cd /usr/local/
# git clone https://github.com/sstephenson/rbenv.git
# mkdir rbenv/shims rbenv/versions
# groupadd rbenv
# chgrp -R rbenv rbenv
# chmod -R g+rwxXs rbenv
# git clone git://github.com/sstephenson/ruby-build.git ruby-build
# cd ruby-build
# ./install.sh
# vi /etc/profile.d/rbenv.sh
export RBENV_ROOT="/usr/local/rbenv"
export PATH="/usr/local/rbenv/bin:$PATH"
eval "$(rbenv init -)"
# source /etc/profile.d/rbenv.sh
# which rbenv
==== ruby ====
※AsakusaSatelliteがjson 1.8.0を要求するが、ruby 2.2.2などではインストールできないのでダウングレード
# rbenv install 2.1.0
# rbenv global 2.1.0
# ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
==== bundler ====
プロジェクト内で使うRubyのパッケージを管理する。Gemfileにパッケージ名、バージョンなどを記述してgemのライブラリを管理する
# gem install bundler --no-rdoc --no-ri
Fetching: bundler-1.9.9.gem (100%)
Successfully installed bundler-1.9.9
1 gem installed
==== passenger ====
Apacheなど、webサーバ上でRubyのwebアプリを動作させるモジュール
=== インストール ===
# gem install passenger --no-rdoc --no-ri
=== Apacheモジュールのビルドとインストール ===
# passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v5.0.8.
This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.
Here's what you can expect from the installation process:
1. The Apache 2 module will be installed for you.
2. You'll learn how to configure Apache.
3. You'll learn how to deploy a Ruby on Rails application.
Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.
Press Enter to continue, or Ctrl-C to abort.
1
--------------------------------------------
Which languages are you interested in?
Use to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby
⬢ Python
⬡ Node.js
⬡ Meteor
--------------------------------------------
~省略~
--------------------------------------------
Almost there!
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-5.0.8/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-5.0.8
PassengerDefaultRuby /usr/local/rbenv/versions/2.1.0/bin/ruby
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.
--------------------------------------------
Validating installation...
* Checking whether this Passenger install is in PATH... ✓
* Checking whether there are no other Passenger installations... (!)
You are currently validating against Phusion Passenger 5.0.8, located in:
/usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-5.0.8/bin/passenger
Besides this Passenger installation, the following other
Passenger installations have also been detected:
/usr/local/rbenv/shims/passenger
Please uninstall these other Passenger installations to avoid
confusion or conflicts.
* Checking whether Apache is installed... ✓
* Checking whether the Passenger module is correctly configured in Apache... (!)
You did not specify 'LoadModule passenger_module' in any of your Apache
configuration files. Please paste the configuration snippet that this
installer printed earlier, into one of your Apache configuration files, such
as /etc/httpd/conf/httpd.conf.
Detected 0 error(s), 2 warning(s).
Press ENTER to continue.
--------------------------------------------
Deploying a web application: an example
Suppose you have a web application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:
ServerName www.yourhost.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /somewhere/public
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
# Uncomment this if you're on Apache >= 2.4:
#Require all granted
And that's it! You may also want to check the Users Guide for security and
optimization tips, troubleshooting and other useful information:
/usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-5.0.8/doc/Users guide Apache.html
https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html
Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
https://www.phusionpassenger.com
Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
=== Apacheの設定 ===
※AsakusaSatelliteを「ドキュメントルート/as」に設置する前提で。
# vi /etc/httpd/conf.d/asakusasatellite.conf
LoadModule passenger_module /usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-5.0.8/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/passenger-5.0.8
PassengerDefaultRuby /usr/local/rbenv/versions/2.1.0/bin/ruby
RailsEnv production
RailsBaseURI /as
===== AsakusaSatellite =====
http://www.codefirst.org/AsakusaSatellite/
開発者向けのリアルタイムチャットアプリケーション
==== インストール ====
# cd /tmp/
# wget https://github.com/codefirst/AsakusaSatellite/archive/v0.9.0.tar.gz
# tar xzvf v0.9.0.tar.gz
# mv AsakusaSatellite-0.9.0 /var/AsakusaSatellite
# cd /var/AsakusaSatellite/
=== ライブラリインストール ===
/var/AsakusaSatellite/Gemfileを参考に、プロジェクト(/var/AsakusaSatellite/)配下に必要なライブラリをインストールする
# bundle install --path .bundle --without development test
# cp config/environments/production.rb config/environments/production.rb.bk
# vi config/environments/production.rb
12,13c12
< #config.serve_static_assets = true
< config.serve_static_assets = false
---
> config.serve_static_assets = true
=== rake実行 ===
プロジェクト(/var/AsakusaSatellite/)配下のライブラリを読み込んでrake実行
# bundle exec rake assets:precompile RAILS_ENV=production
==== 認証設定 ====
Twitter⇒Redmine
# cp /var/AsakusaSatellite/config/filter_intra.yml /var/AsakusaSatellite/config/filter_intra.yml.bk
# vi /var/AsakusaSatellite/config/filter_intra.yml
21c21
< - dir: as_global_js_css
---
> # - dir: as_global_js_css
23c23
< # - dir: as_twitterauth_plugin
---
> - dir: as_twitterauth_plugin
25c25
< - dir: as_redmineauth_plugin
---
> # - dir: as_redmineauth_plugin
# cp /var/AsakusaSatellite/config/settings.yml /var/AsakusaSatellite/config/settings.yml.bk
# vi /var/AsakusaSatellite/config/settings.yml
1,6d0
< #omniauth:
< # provider: "twitter"
< # provider_args:
< # - "Ug9FZ0r8zp3jwuvOGFYWQ"
< # - "qMvcOzyQu4Qkz1bm0k1bOHYDn1m4JF3DXbQK9CWfMA"
<
8c2
< provider: 'redmine'
---
> provider: "twitter"
10c4,10
< - 'http://192.168.1.210/redmine/'
---
> - "Ug9FZ0r8zp3jwuvOGFYWQ"
> - "qMvcOzyQu4Qkz1bm0k1bOHYDn1m4JF3DXbQK9CWfMA"
>
> #omniauth:
> # provider: 'redmine'
> # provider_args:
> # - 'Redmine URL'
# cp /var/AsakusaSatellite/plugins/as_redmineauth_plugin/app/models/redmine_user.rb /var/AsakusaSatellite/plugins/as_redmineauth_plugin/app/models/redmine_user.rb.bk
# vi /var/AsakusaSatellite/plugins/as_redmineauth_plugin/app/models/redmine_user.rb
24c24
< "#{last} #{first}"
---
> "#{first} #{last}"
==== デスクトップ通知用設定 ====
# cp /var/AsakusaSatellite/config/message_pusher.yml /var/AsakusaSatellite/config/message_pusher.yml.bk
# vi /var/AsakusaSatellite/config/message_pusher.yml
12,13c12,13
< http: http://192.168.1.249:3002/http
< web_socket: ws://192.168.1.249:3002/websocket
---
> http: http://localhost:3002/http
> web_socket: ws://localhost:3002/websocket
==== socky ====
デスクトップ通知用socky起動(プロジェクトローカルのthinでsocdkyを起動)
* thin \\ ウェブサーバ(https://github.com/macournoyer/thin) \\ # thin -R RackFile -pPORT -tTimeout(SEC) start &
* Socky \\ Ruby向けWebSocketサーバ(https://github.com/socky) \\ # bundle exec thin -R socky/config.ru -p3002 -t0 start &
=== 起動スクリプト ===
# vi /etc/init.d/socky
#!/bin/bash
#
### BEGIN CHKCONFIG INFO
# chkconfig: 2345 55 25
# description: bundle exec thin ...
### END CHKCONFIG INFO
prog=socky
cmd=/usr/local/rbenv/shims/bundle
pjroot=/var/AsakusaSatellite
pidfile=$pjroot/tmp/pids/thin.pid
start() {
echo -n $"Starting $prog: "
if [ -f "$pidfile" ] ; then
pid=`cat "$pidfile"`
printf 'Existing process: %d\n' "$pid"
retval=1
else
cd $pjroot
$cmd exec thin -R socky/config.ru -p3002 -t0 -d start
fi
}
stop() {
echo -n $"Stopping $prog: "
if [ -f "$pidfile" ] ; then
cd $pjroot
$cmd exec thin -R socky/config.ru -p3002 -t0 -d stop
#SOCKYPID=`cat "$pidfile"`
#/bin/kill "$SOCKYPID" >/dev/null 2>&1
fi
}
restart()
{
if [ -f "$pidfile" ] ; then
cd $pjroot
$cmd exec thin -R socky/config.ru -p3002 -t0 -d restart
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
#restart
stop
start
;;
*)
echo "Usage: $prog {start|stop|restart}" >&2
exit 3
;;
esac
exit
# chmod 755 /etc/init.d/socky
# /etc/init.d/socky start
# chkconfig socky on
==== ドキュメントへのシンボリックリンク作成 ====
# cd /var/www/html
# ln -s /var/AsakusaSatellite/public as
# ln -s /var/AsakusaSatellite/public/assets/ assets
==== 権限設定 ====
# chown -R apache.apache /var/AsakusaSatellite
# chmod -R 777 /var/AsakusaSatellite/tmp
# chmod -R 777 /var/AsakusaSatellite/public/upload
===== apache(再)起動 =====
# /etc/init.d/httpd restart