さくらから「5.1メンテあるで。ちなみに5.1は古すぎるからいつ止まるかわからんで。使ってないなら消す、使ってるならその辺わかっときや(要約)」ってメールが来たので、とりあえず細かい確認はすっとばしてMySQL5.7(現行で利用できるバージョン)に移行。
やったことといえば、さくらレンタルサーバの管理画面からDBコンソール(phpMyAdmin)開いて、エクスポートして、CREATE DATABASE文をコメントアウトして(SQLからDBは作れないのでエラーになる)吸い込ませ、mt-config.cgiを書き換えただけ。
collateがutf8_general_ciからutf8mb4_general_ciになったので、その辺の動作チェックとか全然してないけど、無事ログインできてるし、この記事が公開されたら投稿もうまくいってるということに。
これでいつ5.1が止まっても大丈夫。というか使ってないんだからバックアップして消しておいた方がいいかも。
(さくらレンタルサーバ外からは接続できないらしいけど)
あとはMySQL5.5のDBが何故かあって(強引にRailsアプリを動かす実験をした残骸)、こっちも不要なので5.1のを削除するときについでに消そう。
sdbnaomifenDSBL1912
メモなので粗め。
RDBMSの主キー
- 適当に(レコードと無関係に)付与する
- 体系に沿った(レコードと関係のある)ものを付ける
1=id(識別子)、2=code(符号)って勝手に呼んでた
代理キーとナチュラルキー | TechRacho
なるほど、冒頭の1(id)は代理キー、2(code)はナチュラルキー。
- Railsの設計はデフォルトで代理キーになってる
- BI系とかだとナチュラルキーの場合も多い気がする
- でもどっちでもない外部参照(?)とかあったりする...
とりあえず、どっちでもない外部参照はbelongs_toのスコープで強引になんとか。
Out of Rails' way!
順番に入れていく。まだローカルでテストしてる段階なので、VPSに入れる時にはオプションとか変更するかも。
以下、特に断りがないかぎりバージョンは本記事公開時点の最新を選択。
CVMUプロジェクト自体、安定性より最新を重視してるので、さすがにdevelopment・canary・nightlyやβ版、RC版は使わないけど、正式リリースであれば出たばっかりのバージョンでもどんどん使っていくつもり。
※コマンドの先頭が「#」になってるものはroot権限が必要という意味で、実際はsudoでやってる場合もある。
実は当然のようにVPSでもレンタルサーバみたいな障害対応用の自動バックアップ(ユーザ理由での書き戻し不可)とSLAがあるものだと思ってたけど、どうもそうじゃないみたい。
各VPSのSLAについて調べてみた | phpとmysql が使えるレンタルサーバー・ドメイン選びのポイント
私が検討してるさくらでも、クラウドのほうはSLAがある。
さくらのクラウド品質保証(SLA)概要 | さくらのクラウド
また、レンタルサーバはSLA(品質保証≒稼働保証)じゃないけど、99.99%の稼働実績+RAID+自動バックアップ。
データ保管(バックアップ体制+RAID構成) - レンタルサーバーはさくらインターネット
データのバックアップは取っていますか?|さくらインターネット公式サポートサイト
もちろん、ミスしてDBやデータを消した等の利用者の過失によるエラーには無力だから、そのために別途バックアップは必要だけど、少なくとも障害対応用バックアップは気にしなくてもいい(というか、そもそも権限がなくてOSやシステム領域は取れない)。
一応、CVMUプロジェクト(※1)をゆっくり進めていこうということで、まずはサーバの仕様決め。
現時点で決まってる仕様は
- サーバ:さくらのVPS(プランはとりあえず白紙へ)
- OS:カスタム(CentOS 7 x64)
- Webサーバ:nginx
- Rails環境:Unicorn+rbenv+Ruby 2.2
今回はサーバのシェル(UI)をどうするか。
いろいろあって、当初の予定よりVPSのグレードを下げたい(512Mあたりで始めて、足りなかったら1Gに移行)ので、リソース的にはCUIにしたい。
でも、GUI管理コンソールなサーバも捨てがたいし、とりあえずGUIで入れて重かったらCUIに変更する方向で検討。
一時的にCUIを使うには、VirtualBox等だとCtrl+Alt+F2~F6。VPSで発行できるのかは不明。
恒久的にCUIを使うには、たしかランレベルを変更すればいいはず...ということで関係するコマンドやファイルを検索。
起動設定・ランレベルの設定
現在のレベルは/sbin/runlevel
で表示、変更は/etc/inittab
を編集。
ということで早速VirtualBox上で変更テスト。
懸念だったデザイン・レイアウトもほぼ固まってきたし、旧ブログ(約定期blog GS)からの記事インポートも完了。
デザインは結局RainierをベースにレスポンシブWebについて調べて弄りまくってたら原型がなくなってきたので、もうほぼ完全にオリジナルテーマ。
この記事を投稿する時点ではまだRainier由来の部分が残ってるけど、完全に移行するときには撤去する予定。
そもそも、現状でもすでにRainierのテーマCSSを使わずテンプレート内で合成して単一のstyle.cssを生成するようにしてるし、テンプレートもdiv#wrapperとか追加して記事幅可変に対応させたし、ナビゲーションメニューはモバイルでもドロップダウンにしないようにしたし、StyleCatcherも使えないようにしたので、中途半端に残ってても意味がないどころか害悪になるかもしれない。
もちろん、Rainierも十分いいテーマだと思うし、少ない労力で見栄えの良いサイトを作ったり、同じ基礎デザインを元にパッチ方式でテーマを作ったりする分にはいいんだけど、細かいところまで詰めようとするとやっぱり不十分。
もっとも、そこまでやりこむならそもそもMovable TypeじゃなくてRails+自作CMSとかすればいいんだけど、現MCRNのあるさくらレンタルサーバ(スタンダード)ではPassenger等が使えないから無理。その辺はCVMUプロジェクト(VPS借りて先進技術で固めたWebサイトを作る)がうまくいったらまた考えようと思ってる。
問題が発覚したため、仕様変更。
VPS:さくらのVPS 2G(SSD)石狩リージョン
DB:MariaDB 10
Webサーバ:nginx
アプリケーションサーバ(Rails):Unicorn+rbenv+Ruby 2.2
アプリケーションサーバ(Perl):Perl 5.18+PSGI(Starman) → なし(保留)
CMS:Movable Type 6.2 → なし
問題というのは、現在「MCRN(mcrn.jp、さくらのレンタルサーバ スタンダード)」で進めている「さくらのブログ→Movable Type移行計画」(目的は、HSTS preload導入のためブログもHTTPS下に置くことと、アーカイブパス名等のより細かな制御)にMovable Typeを個人無償ライセンスで使っていて、「CVMU」は別サーバになるため別途正規ライセンスが必要になるけど、それが9万円もしてちょっと割に合わないこと。
さらに、「CVMU」の方針変更(人工知能・疑似人格関連の記事をCMSで発信→Web周りの技術を中心に実験)によりCMSを使わずフルスクラッチでRailsアプリとしてサイトを構築しようと思い直したので、MT6は入れないことに。
それに伴い、MT6実行環境として想定していたPerl+Starmanもキャンセル。将来的に必要になって入れるかもしれないけど、最初はできるだけ最小限の構成でスタートさせたい。
VPS、PSGI、WebSocket、Nginx、Unicorn、MariaDBとかそのあたりをいろいろと勉強しつつ、コンテンツとしては人工知能とか機械学習、IoT、モバイルウェブ・ウェブアプリあたりを広く発信していこうかな~なんて適当な考えで、新プロジェクト「CVMU」をスタート。
現状、まだドメイン取得(実は2年以上前に取ってた)とSSL証明書取得&HSTS preload申請、あとはひとまず「MCRN(mcrn.jp)」と同じレンタルサーバにホスティングまでしかやってない。
勢いでやって失敗しやすいので、まずは紙のノートに構想をラフ書きしつつ、ローカルの仮想環境(VirtualBox)でテスト構築していくつもり(いきなりVPS借りてgdgdやってると、無料期間すぎて無駄なお金もかかるし)。
一応、今のところ決まってる仕様(予定)のメモ。
VPS:さくらのVPS 2G(SSD)石狩リージョン
DB:MariaDB 10
Webサーバ:nginx
アプリケーションサーバ(Rails):Unicorn+rbenv+Ruby 2.2
アプリケーションサーバ(Perl):Perl 5.18+PSGI(Starman)
※MT6動作確認済み環境(http://www.movabletype.jp/documentation/mt6/installation/system.html)
CMS:Movable Type 6.2
Six Apartから「MT5サポート終了するよ!」ってメールが来てたので、旧blog(約定期blog)のアーカイブに使ってたMTOS 5(Movable Type Open Source 5.2.13)をMT6(個人無償版)にアップグレード。
【Movable Type 5】EOL(製品ライフサイクルの終了)のお知らせ | Movable Type ニュース
Movable Type 6 へのアップグレード : Movable Type 6 ドキュメント
結構面倒かも…と思ってたけど、アップグレード自体は全然そんなことなくあっさり終了。
上記の公式手順に従って、バックアップ→設定ファイル等コピー→mt.cgiにアクセスして「アップグレード」するだけ。
まあ、旧サイトのアーカイブということで、テンプレートとか一切弄ってなかったというのもあるけど。
久しぶりのIT記事、しかもRails。
でも、仕事でやってるのとは全然関係なし。というか、こんなのビジネスにならないよ。
前提。
・さくらのレンタルサーバ スタンダード
・root権限なし、Apache設定変更不可
・WEBrickのdevelopmentモードでWebDAVポートをすり抜けるとかしないで、Apache・productionモード・ポート80というごく一般的なRails アプリ構成