タグ : FastCGI

[Server] [Ruby on Rails] さくらインターネットからCORESERVERへRailsアプリを移動する (3)

実際にRailsアプリを移植する  ようやく Ruby on Rails アプリの移行が完了しましたので、備忘録を残していきます。 さくらインターネットとCORESERVERの違い MySQL 4.0.27 ⇒ 5.1.2.2rc MySQLがUTF8対応 MySQLデータベースを複数持てる FastCGI対応  これが意外とエラーを起こしました。  まず、当然として"environment.rb"の"GEM_HOME"を前回設定した"GEM_HOME"に直します。 $LOAD_PATH.push("/home/xxx/lib/ruby/site_ruby/1.8") $LOAD_PATH.push("/home/xxx/lib/ruby") ENV['GEM_HOME'] ||= '/home/xxx/lib/ruby/gem' ↓ $LOAD_PATH.push("/virtual/xxx/lib/ruby/site_ruby/1.8") $LOAD_PATH.push("/virtual/xxx/lib/ruby") ENV['GEM_HOME'] ||= '/virtual/xxx/lib/ruby/gem'  続いてデータベースをUNICODEで作成する。 UTF8で統一(XREA + MySQL + Ruby) | Diaspar Journal  更に"database.yml"の設定を作成したデータベースにあわせる。その際に"encoding: utf8"を指定しておく。  そしてそのままソースをUP。"rake db:migrate"でDBを作成し、実行してみるが、「Script Not Found」というエラーが。。。更になにもいじらずに更新してみると、「Application Error」に。。。 一から作り直す  挙動が明らかにおかしいので、一から作り直してみることに。railsコマンドでプロジェクトを作成し、"environment.rb"、"database.yml"と、appフォルダ、dbフォルダ、publicフォルダ下の3つフォルダを上書き。  実行してみると。。。動いた!!  FastCGIのおかげか、挙動が物凄く早い!! まったくロード感がないし、Amazon A2S(ECS)を実行してみても、まったく待ち時間がない!! Ajax系の入力補助(マスタを用いたオートコンプリート機能を実装してます)も早くて快適でした!!  結論、Ruby on Railsを実行するには、さくらインターネットよりCORESERVERの方がいいです。早々にMTごとCORESERVERに移りたいと思います。 ※ ちなみに MySQL 5.1 になると結構予約語が増えていて、私は二個ほどフィールド名とかぶってエラーになりました。CORESERVER上のMySQLの予約語はこちらからご確認ください。 MySQL :: MySQL 5.1 リファレンスマニュアル :: 8.3 MySQLでの予約語の扱い - [ 続きを読む ]

[Server] [Ruby on Rails] さくらインターネットからCORESERVERへRailsアプリを移動する (1)

CORESERVER移管計画 さくらインターネットの問題点 : MySQLのUTF-8対応  さくらインターネットのMySQLはバージョン"4.0.27"というかなり古いバージョンで、UTF-8に対応していません。"Ruby on Rails"を扱う場合は文字コードはUTF-8が基本となっていますが、MySQL内でデータが文字化け状態になることさえ許容できれば、まったく問題なく運用できます。  しかし、今回、私は不満を持ってしまいました。理由はバックアップ・レストアができない点です。現在、さくらインターネットでRailsを用いたwebアプリを開発していますが、開発の過程でDB設計の見直し等が発生した場合、マスタデータの出し入れなどが必要となってきました。その際、文字化けして保存してあるデータをMySQLのエクスポート機能で出力しようとすると、エラーが発生しました。せめてインポートさえできるのでしたら、取込データを用意しておくのですが、UTF-8での取込は不可能なので、どうやってもEUC等で保存され、Railsで呼び出すとエラーになってしまいます。 2008年11月13日追記  MySQL 4.0.* ではSQLのサブクエリができないことが発覚。決定的に断念 MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.4.2 サブクエリ構文 事実、初期の SQL が “構造化問い合わせ言語” と呼ばれるようになったきっかけは、 サブクエリにある。  そもそも、FastCGIが利用できないさくらインターネットではデータの1件保存だけでも数秒かかります。さくらインターネットでRailsアプリを動かすことに限界を感じていたことですし、そろそろ違うサーバーを検討してみることにしました。 CORESERVER  新しいサーバーを探していると、10年以上前に一時期お世話になったことがある「XREA.COM」の新サービス「CORESERVER.JP」を発見しました。  FastCGIも使えて容量も申し分なく、値段は月額1,000円と非常にお買い得でした。とりあえず15日の試用を試してみることに。 ドメイン  「CORESERVER」の登録には「VALUE DOMAIN」への登録が必要なようです。「VALUE DOMAIN」はドメインを購入できるサイトです。  「WebEyes」から「さくらインターネット」へ、更に「CORESERVER」へと、最近、よくサーバーを移転するのでドメインがあれば便利だな~と考え、ついでに購入を検討してみることに。  料金的には、gTLDドメインは主に年額990円と安いので、購入を決定。ドメイン名称の案としては、短く「deme.xxx」がいいと思いましたが、かつての個人名ドメイン「.name」しか空いていなかったので、「demenaoto.xxx」にすることに。  「demenaoto.xxx」はどこも空いていましたので、どれを購入するか検討。最近は企業専用という色合いも薄れてきたメジャーな「.com」と、ネットワークという微妙な分類でわりと個人に親しまれている「.net」で迷い、「demenaoto.net」を購入。「.name」や「.com」をあまりよろしくないと思ってしまう辺り、どうやら私は昔の感覚が抜け切らない、古い考え方を持っているみたいですね。 2008/11/13追記  VALUE DOMAIN のドメインをさくらインターネットで使用する方法。移行が完了し次第、CORESERVERに設定し直すつもりなので、二度と参照しないかとは思いますが、念の為、備忘録。 ValueDomainのドメインをさくらのレンタルサーバで使う :アドサイト・プロについて CORESERVER SSH接続  CORESERVERの契約はあっさり終わりました。調査しているときからわかっていたことですが、「CORESERVER」への遠隔地からのアクセスは「Telnet」ではなく「SSH接続」でした。開始方法はこちらを参考に。 CORESERVERにSSHでアクセスする | stick stack  ちなみに私は仕事場ではWin2k、自宅ではWinXPとVistaなので、当然SSHなんてものは入っていません。WindowsでSSH接続をする方法を調査すると、このようなサイトが見つかりました。 WindowsでのSSH利用方法  「UTF-8対応 TeraTerm Pro」などというソフトは聞いたことはありませんでしたが、Vectorで見てみるとランキング一位になっていました。とりあえず問題なさそうだと考え、インストール。「CORESERVER」での使い方についてはこちら。 XREA/CORESERVERとのSSH接続  無事、登録できました。  次回はこちらを参考に「Ruby on Rails」環境を構築する予定。 CORESERVERにRuby on Railsをインストールする | stick stack - [ 続きを読む ]