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