新しく Rails アプリケーションを作るときの手順

レポジトリとプロジェクト名を変数に設定する

SVN_REPOS=リポジトリのアドレス
PROJECT_NAME=newproject

ディレクトリのレイアウトを作成し import する

mkdir tmp
cd tmp
mkdir branches tags trunk
svn import . ${SVN_REPOS}/${PROJECT_NAME}/ -m "Initial import"
cd ..
rm -rf tmp

最初の段階で import しておいた空のディレクトリから、trunk を Rails アプリケーションのトップディレクトリで checkout します

rails ${PROJECT_NAME}
cd ${PROJECT_NAME}
svn checkout ${SVN_REPOS}/${PROJECT_NAME}/trunk .

まずはすべてを add しておき、それから不要なものを取り除いていくように

svn add --force .

databse.yml などの設定ファイルや log/ 以下なんかは Subversion 管理下に置かないように

svn revert log/*
svn propset svn:ignore "`echo -en "*.log\n*.pid\n*.txt"`" log
svn propset svn:ignore "*" log tmp/*
svn propset svn:ignore "`echo -en "app\napidoc\nappdoc"`" doc
svn propset svn:ignore "`echo -en "schema.rb\ndevelopment_structure.sql"`" db

svn revert config/database.yml
mv config/database.yml config/database.yml.example
svn propset svn:ignore "database.yml" config
cp config/database.yml.example config/database.yml
svn add config/database.yml.example

最後に、svn:executable も設定しておく

svn propset svn:executable "*" `find . -type f -perm -1`

そして、commit

svn commit -m "New Rails project"

RMagickモジュールのインストール

pngライブラリ のインストール

$ apt-get install libpng-dev

jpegライブラリ のインストール

$ apt-get intall libjpeg-dev

フォントのインストール

$ apt-get install libfreetype6-dev

ImageMagick のインストール

$ cd /usr/local/src/
$ wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
$ tar xzvf ImageMagick06.3.0-1.tar.gz
$ cd ImageMagick-6.3.0
$ ./configure --with-jpeg=yes --with-png=yes --enable-shared=yes --enable-st=no --enable-lzw=yes
$ make -j2
$ make install

RMagick のインストール

$ gem install rmagick

apache2 リバースプロキシの設定例

./configure --enable-shared --enable-rewrite --enable-proxy --enable-so
make
make install

http-proxy.conf

# proxy settings
ProxyRequests Off
ProxyTimeout 30
ProxyPreserveHost Off


Order deny,allow
Allow from all

ProxyPass /images/ !
ProxyPass /stylesheets/ !
ProxyPass /javascripts/ !


BalancerMember http://localhost:8001 loadfactor=10 timeout=100
BalancerMember http://localhost:8002 loadfactor=10 timeout=100


BalancerMember http://localhost:9001 loadfactor=10 timeout=100
BalancerMember http://localhost:9002 loadfactor=10 timeout=100

httpd-vhosts.conf

# Use name-based virtual hosting.
NameVirtualHost *:80
SetEnvIf Request_URI \.(gif|jpg|png|js|css|ida|exe|ico|swf|JPG|GIF|PNG)$ no_log
SetEnvIf User-Agent "internal dummy connection" no_log


DocumentRoot "RAILS_ROOT/public"
ServerAdmin hoge@hoge.jp
ServerName hoge.jp
ErrorLog "|/usr/local/apache2/bin/rotatelogs RAILS_ROOT/log/error/hoge-error%Y%m%d.log 86400 540"
CustomLog "|/usr/local/apache2/bin/rotatelogs RAILS_ROOT/log/access/hoge-access%Y%m%d.log 86400 540" "combined" env=!no_log

ProxyPass / balancer://hoge.jp/
ProxyPassReverse / balancer://hoge.jp/


Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all



DocumentRoot "RAILS_ROOT/public"
ServerAdmin foo@foo.jp
ServerName foo.jp
ErrorLog "|/usr/local/apache2/bin/rotatelogs RAILS_ROOT/log/error/foo-error%Y%m%d.log 86400 540"
CustomLog "|/usr/local/apache2/bin/rotatelogs RAILS_ROOT/log/access/foo-access%Y%m%d.log 86400 540" "combined" env=!no_log

ProxyPass / balancer://foo.jp/
ProxyPassReverse / balancer://foo.jp/


Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

/usr/local/apache2/bin/apachectl start

mysql バックアップ

# mkdir /var/backup
# mkdir /var/backup/mysql
# touch /var/backup/mysql/bak.sql
# touch /var/backup/mysql/mysql_backup.sh

mysql_backup.sh

bak=`date +%y%m%d`
cp /var/backup/mysql/bak.sql /var/backup/mysql/$bak.sql
mysqldump --user=admin \
--password=****** \
--default-character-set=utf8 \
--socket=/var/lib/mysql/mysql.sock \
--all-databases > /var/backup/mysql/$bak.sql
bak2=`date --date "14 days ago" +%y%m%d`
rm -f /var/backup/mysql/$bak2.sql

リストア

$ mysql --user=admin --password=****** \
--socket=/var/lib/mysql/mysql.sock \
--default-character-set=utf8 < /var/backup/mysql/071001.sql

Ruby onRails セッションをDBで管理

rake db:sessons:create
rake db:migrate

config/environment.rb

config.action_controller.session_store = :active_record_store

定期的にセッションを消す為のrakeタスクをつくる

require 'tempfile'

namespace :my_task do

task :app_environment => :environment do
require "#{RAILS_ROOT}/app/controllers/application.rb"
end


##########################################
# my tasks
##########################################


desc "delete old sessions"
task :delete_old_sessions => :app_environment do
ActiveRecord::Base.connection.execute "DELETE FROM sessions WHERE updated_at < now() - interval 1 day"
end

end

cronにこのレイクタスクを追加して終わり

railsを Apache2.2+mongrel で動かすメモ

1.mongrel導入
http://d.hatena.ne.jp/drawnboy/20060613/1150170093
apt-get install mongrel
gem install mongrel_cluster

2.リバースプロキシ設定
http://mongrel.rubyforge.org/docs/apache.html

3.SSL含めた構成
http://www.asahi-net.or.jp/~aa4t-nngk/apache3.html



mongrel_rails cluster::configure -e production -p 8001 -N 3
mongrel_rails start


以上

はてなダイアリーへようこそ!

このページはあなた専用の日記(ブログ)です。*1

さっそく「日記を書く」をクリックして最初の記事を書いてみましょう。

はてなダイアリーの一番簡単な使い方を知りたい方は、以下の動画をご覧ください。

(再生ボタンをクリックすると、はてなダイアリーの使い方を音声と動画で見ることができます。)

はてなダイアリーのヘルプでは、このような動画を交えた使い方の説明や、文字の色の付け方、本やDVDを紹介する「はてな記法」の使い方を解説しています。

より詳しいはてなダイアリーの使い方を知りたい方は、以下のヘルプをご覧ください。


それでは、日々の出来事やテレビ番組の感想、普段考えていることなど、あなたならではの日記を書いて楽しんでください!

*1:この文章はサンプルです。実際に自分の記事を書くときには削除しても大丈夫です。