rails の install†
rvm (CentOS5-32bit系)†
cp /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-bundle.crt.bak
wget http://curl.haxx.se/ca/cacert.pem -O /etc/pki/tls/certs/ca-bundle.crt
\curl -L https://get.rvm.io | bash -s stable --ruby
source /usr/local/rvm/scripts/rvm
yum install git
gem install rails -v 4.0.0 --no-rdoc --no-ri
gem install sqlite3 -v '1.3.8'
cp /usr/bin/python /usr/bin/python.bak
rm /usr/bin/python
ln -s /usr/bin/python26 /usr/bin/python
CC=gcc44 CXX=g++44 gem install libv8 -v '3.16.14.3'
cp /usr/bin/python.bak /usr/bin/python
version 確認†
ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
gem --version
2.0.7
rails --version
Rails 4.0.0
rails プロジェクトの作成(毎回必要な作業)†
mkdir /tmp/railstest
cd /tmp/railstest
rails new ./
default 構築で必要になる gem†
gem install minitest -v '4.7.5'
gem install json -v '1.8.1'
Gemfile
gem 'therubyracer', platforms: :ruby をオンに
bundle install
rails server
postgresql を db に使う場合†
CentOS5-32bit系
wget http://yum.postgresql.org/9.1/redhat/rhel-5-i386/pgdg-centos91-9.1-4.noarch.rpm
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
yum install postgresql91-server postgresql91-devel
chkconfig postgresql-9.1 on
/etc/init.d/postgresql-9.1 initdb
/etc/init.d/postgresql-9.1 start
CentOS5-64bit系
wget http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-centos91-9.1-4.noarch.rpm
rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
yum install postgresql91-server.x86_64
CentOS6-64bit系
wget http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
rpm -ivh pgdg-centos*.noarch.rpm
yum -y install postgresql93 postgresql93-server postgresql93-devel
/etc/init.d/postgresql-9.3 initdb
/var/lib/pgsql/9.3/data/pg_hba.conf
ident -> trust
chkconfig postgresql[-9.3] on
/etc/init.d/postgresql[-9.3] start
psql --username=postgres
create user railstest;
create database railstest owner railstest;
ctrl+d
CentOS5-64bit/32bit
export PATH=/usr/pgsql-9.1/bin/:$PATH
gem install pg -v '0.16.0'
CentOS6-64bit
export PATH=/usr/share/pgsql:$PATH
gem install pg -v '0.16.0'
passenger†
passenger(WebRick を使わない apacheの連携モジュール) の install
yum -y install curl-devel httpd-devel apr-devel apr-util-devel
gem install passenger
passenger-install-apache2-module
httpd.conf
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.19
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p247/ruby
ServerTokens ProductOnly
ServerSignature Off
SELinux 設定
setenforce 0
/etc/init.d/httpd restart
grep httpd /var/log/audit/audit.log | audit2allow -M passenger
semodule -i passenger.pp
setenforce 1
/etc/init.d/httpd restart
その他†
必要であればPostGISのインストール
rails プロジェクトの作成(毎回必要な作業)†
mkdir /tmp/railspg
cd /tmp/railspg
rails new ./ -d postgresql
/tmp/railspg/Gemfile
gem 'therubyracer', platforms: :ruby をオンに
gem 'activerecord-postgis-adapter'
gem 'will_pagenate'
gem 'ransack'
bundle install
/tmp/railspg/config/database.yml
データベース名、ユーザ、パスワードを適切に設定
rails server
rails_admin を入れる†
Gemfile
gem 'devise'
gem 'rails_admin'
database.yml
adapter: postgis
postgis_extension: true
config/environments/development.rb
config.action_mailer.default_url_options =
{ :host => '192.168.0.100:3000' }
wizard のようなものが開く
インストールしたいディレクトリと、テーブル名を入れる
rails g devise:install
rails g rails_admin:install
rails server
rake db:migrate
rails server
memo
model の作成†
rails generate model quake
migrate ファイルの編集
db/migrate/xxxx_create_quakes.rb
t.column :name ,:string
t.column :location ,:geometry ,:srid => 4326
t.column :magnitude,:float
t.timestamps
rake db:migrate
insert into quakes (location,magnitude) values ('東京',ST_GeomFromText('POINT(ST_GeomFromText('POINT(139.76608399999998 35.681382)',4326),3.0);
route の指定†
config/routes.rb
get ':controller(/:action(/:id(.:format)))'
controller の作成†
controllers/hoge_controller.rb
# coding: utf-8
class HogeController < ApplicationController
def index
@quakes = Quake.all
end
end
view の作成†
views/hoge/index.html.erb
<table border="1">
<tr>
<th> name </th>
<th> latitude </th>
<th> longitude </th>
<th> magnitude </th>
</tr>
<% @quakes.each do |quake|%>
<tr style="background-color: <%= cycle('#FFffFF','#C0ffC0') %>" >
<td></td>
<td><%= quake.lonlat.y %></td>
<td><%= quake.lonlat.x %></td>
<td><%= quake.magnitude %></td>
</tr>
<% end %>
</table>
.rb のコメントアウト
SINGLE LINE
# puts "hello"
MULTI LINE
class Hoge
=begin
def test
puts "hello"
end
=end
end
.erb のコメントアウト
SINGLE LINE
<%#= @hogehoge #%>
MULTI LINE
<%- if false -%>
<%= @hogehoge %>
<%- end -%>
deploy†
プロジェクトのディレクトリごとコピー
bundle install
psql
createuser -U postgres 【project名】
createdb -U postgres -O 【project名】 -E UTF-8 -T template_postgis 【project名】
rake db:migrate
その他、fixture で初期投入すべきデータをいれておく
毎回やる作業
chown -R apache.apache 【projectdir】
service httpd restart