How to install Webistrano with passenger on CentOS 6.4

Webistrano เป็น web based ที่ทำมาใช้สำหรับ manage capistrano ซึ่งเป็นเครื่องมือที่ช่วยในการ deploy โดยพัฒนามาจากภาษา ruby

1.ติดตั้ง httpd mysql

yum install httpd mysql-server mysql-devel mysql-libs mysql curl-devel httpd-devel apr-devel apr-util-devel

2. ติดตั้ง ruby 1.9.3 ผ่าน rvm

curl -L https://get.rvm.io | bash -s stable --ruby=1.9.3

3. start mysql และสร้าง database

service mysqld start
echo "CREATE DATABASE webistrano" | mysql -uroot

4. ทำการ clone git webistrano

cd /var/www/
git clone https://github.com/peritor/webistrano.git
cd webistrano

5. แก้ไข Gemfile

vi Gemfile

ให้มีลักษณะดังนี้

source "http://rubygems.org"

gem 'bundler', ">=1.0.10"
gem "rails", "2.3.11"
gem "mysql"
gem "erubis"
gem "rake"
gem "iconv"
gem "rdoc", ">=2.4.2"
gem "syntax", "1.0.0"
gem "capistrano", "2.6.0"
gem "open4", "0.9.3"
gem "exception_notification", "2.3.3.0"

group :test do
gem "mocha", "0.9.8"
end

6. ทำการติดตั้ง gem file

gem install bundle

7.  แก้ไขไฟล์

vi config/initializers/capistrano_namespace_rake_fix.rb

ให้มีลักษณะดังนี้

# see http://groups.google.com/group/capistrano/browse_thread/thread/b5e11c0ebf37a8be
#Capistrano::Configuration::Namespaces::Namespace.class_eval { undef :symlink }

8. แก้ไข Rakefile

vi Rakefile

ให้มีลักษณะดังนี้

require(File.join(File.dirname(__FILE__), 'config', 'boot'))

require 'rake'
require 'rake/testtask'
#require 'rake/rdoctask'
require 'rdoc/task'

require 'tasks/rails'

 

9. ติดตั้ง gem file

bundle install

 

10. ทำการติดตั้ง webistrano

RAILS_ENV=production bundle exec rake db:migrate

 

11. ติดตั้ง mod_passenger

gem install passenger

passenger-install-apache2-module

 

12. Active module passenger

touch /etc/httpd/conf.d/passenger.conf
echo "LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5/libout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p429/ruby
" > /etc/httpd/conf.d/passenger.conf

 

13. สร้าง vhost ของ httpd

touch /etc/httpd/conf.d/webistrano.conf
echo " <VirtualHost *:80>
ServerName webistrano.engineerball.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /var/www/webistrano/public
<Directory /var/www/webistrano/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
</VirtualHost>
" > /etc/httpd/conf.d/webistrano.conf

14. start httpd

service httpd start
ball Written by:

Teerapat Khunpech Live, Tech, Beers, Bike, Cafe Racer, Docker, Devops, Eco-System