PC開発アプリのLinuxサーバへの手動デプロイ
一般設定
- simpletodo というアプリをLinuxサーバにコピーする
- /home/XXX/public_html/rails/simpletodo にPCから丸ごとコピー
- /etc/httpd/conf/httpd.conf のVirtualHostの修正
- 後日もっとマシな設定に直す(Aliasかシンボリックリンクで)★
- /etc/httpd/conf/httpd.conf まずは development でやる★
- Apache 停止
- キャッシュクリアでエラー.gem Ver が違うらしい.PCは1.2.1だけど,Linuxには1.2.2を入れたからだ.
- /config/environment.rb を修正して再度キャッシュクリアする
rake tmp:clear rake log:clear
- chmod する
chmod 755 /public/dispatch.* chmod 777 /tmp/sesseions
DB設定/作成
- /config/database.yml 修正(DBとは大文字小文字もちゃんと合わせること)
- とりあえず root, localhost のまま★
development: adapter: mysql database: simpletodo username: root password: host: localhost socket: /var/lib/mysql/mysql.sock encoding: utf8
rake migrate
- エラー発生
# rake migrate (in /home/XXX/public_html/rails/SimpleTodo) /home/XXX/public_html/rails/SimpleTodo/config/boot.rb:29:Warning: require_gem is obsolete. Use gem instead. rake aborted! No such file or directory - /tmp/mysql.sock (See full trace by running task with --trace)
- /var/lib/mysql/mysql.sock が正解らしい.これは,/etc/my.cnf に書いてある.
- 修正は,上記 /config/database.yml でsocket定義する.
- 文字コード(utf8)設定: /config/database.yml と /etc/my.cnf で設定しとく
# mysqladmin -p version Server version 4.1.16 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 58 min 21 sec
[/etc/my.cnf] default-character-set=utf8
- rake migrate が通って,DBにテーブルが作成された.
# rake migrate (in /home/XXX/public_html/rails/SimpleTodo) /home/XXX/public_html/rails/SimpleTodo/config/boot.rb:29:Warning: require_gem is obsolete. Use gem instead. == CreateLists: migrating ===================================================== -- create_table(:lists) -> 0.1964s == CreateLists: migrated (0.1967s) ============================================ == CreateItems: migrating ===================================================== -- create_table(:items) -> 0.1103s == CreateItems: migrated (0.1106s) ============================================ The rake task migrate has been deprecated, please use the replacement version db :migrate
- Apache 起動して,http://XX.XX.XX.XX/task にアクセスするとエラー発生
- log/server.log をみると dispatch.cgi でエラーらしい
[Wed Feb 21 23:16:15 2007] [error] [client ] (2)No such file or dire ctory: exec of '/home/XXX/public_html/rails/SimpleTodo/public/dispatch.cgi' fa iled [Wed Feb 21 23:16:15 2007] [error] [client ] Premature end of script headers: dispatch.cgi
which ruby /usr/bin/ruby
#!/usr/bin/ruby