**!!! ACHTUNG - evtl. veraltet - ACHTUNG !!!**
Diese Seite wurde zuletzt am 9. Juli 2014 um 08:56 Uhr geändert.
Installation:
aptitude install sudo ruby rdoc ruby-dev make libmysqlclient-dev gettext unzip git-core subversion nginx monit...
cd tmp; wget http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz; tar xvfz rubygems-1.3.4.tgz; cd rubygems-1.3.4; ruby setup.rb
gem install rake rails
In dem (ersten) RoR-Projekt sollten in der "environment.rb" (Rails::Initializer.run) folgende Zeilen enthalten sein:
[[...]]
config.gem 'rtex'
config.gem 'sqlite3-ruby', :lib => 'sqlite3'
config.gem 'mysql'
config.gem 'mongrel'
config.gem 'authlogic'
config.gem 'grosser-i18n_data', :lib => 'i18n_data', :source => 'http://gems.github.com'
config.gem 'grosser-fast_gettext', :lib => 'fast_gettext', :source => 'http://gems.github.com/'
config.gem 'gettext', :lib => false
config.gem 'haml'
config.gem 'mislav-will_paginate', :lib => 'will_paginate', :source => 'http://gems.github.com'
[[...]]
... welche man dann ganz einfach installieren kann...
und wenn man schonmal dabei ist, auch gleich ein paar nützliche Plugins dazu:
cd
rake gems:install
haml --rails .
ruby script/plugin install 'rspec', :git => 'git://github.com/dchelimsky/rspec.git'
ruby script/plugin install 'rspec-rails', :git => 'git://github.com/dchelimsky/rspec-rails.git'
ruby script/plugin install 'exception_notifier', :git => 'git://github.com/rails/exception_notification.git'
ruby script/plugin install 'asset_packager', :git => 'git://github.com/sbecker/asset_packager.git'
ruby script/plugin install 'gettext_i18n_rails', :git => 'git://github.com/grosser/gettext_i18n_rails.git'
ruby script/plugin install 'timer', :svn => 'http://activewarehouse.rubyforge.org/svn/timer/trunk/'
Nun noch nen bissl konfigurieren und es kann mit groooßen Schritten losgehen!
Für eigene Zwecke hatte ich mal ein [[ftp://ftp.bluemetaljackets.de/stuff/prort.rb|RoR-Template]] erstellt, welches ich ja eigentlich mal zu einem ganz einfachen Template umscripten und hier einfügen könnte!? ;-)
User und Gruppe "rails" anlegen!
config/mongrel_cluster.yml:
---
address:
log_file: log/mongrel.log
port: "3000"
environment: production
pid_file: tmp/pids/mongrel.pid
servers: 3
cwd:
docroot: public
user: rails
group: rails
/etc/nginx/sites-available/rails
# Load balance to mongrels
upstream mongrel_cluster {
server >3000;
server >3001;
server >3002;
}
# Virtualhost
server {
# HTTP Settings
listen 80;
server_name www.bluemetaljackets.de;
root /var/rails/radiant/public;
access_log /var/log/nginx/bluemetaljackets.access.log;
error_page 500 502 503 504 /500.html;
client_max_body_size 50M;
# First rewrite rule for handling maintenance page
if ( -f $document_root/system/maintenance.html ) {
rewrite ^(.*)$ /system/maintenance.html last;
break;
}
location / {
index index.html index.htm;
# Forward information about the client an host
# Otherwise Radiant wouldn't have access to it
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded_For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_max_temp_file_size 0;
# Directly serve static content
location ~ ^/(images|javascript|stylesheets)/ {
expires 10y;
}
if ( -f $request_filename ) {
break;
}
# Directly serve cached pages
if ( -f $request_filename.html ) {
rewrite (.*) $1.html break;
}
# Otherwise let Mongrel handle the request
if ( !-f $request_filename ) {
proxy_pass http://mongrel_cluster;
break;
}
}
}
/etc/default/monit
[[...]]
startup=**1**
[[...]]
/etc/monit.d/mongrel.monitrc
check process mongrel_rails_3000
with pidfile /tmp/pids/mongrel.3000.pid
start program = "/usr/bin/mongrel_rails cluster::start -C /config/mongrel_cluster.yml --clean --only 3000"
stop program = "/usr/bin/mongrel_rails cluster::stop -C /config/mongrel_cluster.yml --only 3000"
if totalmem is greater than 110.0 MB for 4 cycles then restart
if cpu is greater than 80% for 4 cycles then restart
if 20 restarts within 20 cycles then timeout
group rails
check process mongrel_rails_3001
with pidfile /tmp/pids/mongrel.3001.pid
start program = "/usr/bin/mongrel_rails cluster::start -C /config/mongrel_cluster.yml --clean --only 3001"
stop program = "/usr/bin/mongrel_rails cluster::stop -C /config/mongrel_cluster.yml --only 3001"
if totalmem is greater than 110.0 MB for 4 cycles then restart
if cpu is greater than 80% for 4 cycles then restart
if 20 restarts within 20 cycles then timeout
group rails
check process mongrel_rails_3002
with pidfile /tmp/pids/mongrel.3002.pid
start program = "/usr/bin/mongrel_rails cluster::start -C /config/mongrel_cluster.yml --clean --only 3002"
stop program = "/usr/bin/mongrel_rails cluster::stop -C /config/mongrel_cluster.yml --only 3002"
if totalmem is greater than 110.0 MB for 4 cycles then restart
if cpu is greater than 80% for 4 cycles then restart
if 20 restarts within 20 cycles then timeout
group rails
/etc/monit.d/nginx.monitrc
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
if failed host port 80 then restart
if 5 restarts within 5 cycles then timeout
So, das ist erstmal der Anfang = Durcheinander...
sortiert wird später! :-P
----
----
----
Interessante RoR-Projekte:
* http://radiantcms.org/
* http://www.redmine.org/
* http://github.com/rubyist/aasm/tree/master
danach conf/environment.rb folgendes hinzufuegen:
config.gem "rubyist-aasm", :lib => "aasm", :source => "http://gems.github.com"
* http://github.com/technoweenie/restful-authentication/wikis/home
danach ein einfaches
script/generate authenticated user sessions --aasm
* http://github.com/timcharper/role_requirement/wikis/usage
danach ein einfaches
script/generate roles Role User
* http://agilewebdevelopment.com/plugins/timer
* http://rubyforge.org/projects/fckeditorp/
* http://code.google.com/p/rails-unobtrusive-date-picker/