自宅サーバー備忘録

2016年9月20日パソコンやハードのこと自宅サーバー

昨日に引き続いてblogネタを。
移転は既に3日前に完了してたわけですが、移転した際に兼ねてから旧blog
(ようは過去ログ「myway」ディレクトリと「old」ディレクトリのエントリー)
のblogシステムであるMovable Typeのシステムがあまりに古過ぎてたのが気になってたので
移転と同時にblog記事が新たに投稿されることはないけれどもシステムアップグレードをしておこうと。
理由はセキュリティの事よりも、MTの管理画面に入ると
毎回IEを互換表示にしないと正常に管理画面が使えないのが不便なだけである。
ここで互換表示にしちゃうと同じドメインである
Wordpressを使った方の現行blogでは逆にブラウザが古い!って怒られるので互換表示切り替えが面倒なのだ。
さて、過去ログのMTのバージョンは4.27。現行最新のMTは6.06。古すぎである。
しかししかし、流石にこれだけアップグレードすると何か問題があるのではと思って調べてみると
MT5.13以前よりアップグレードする際はテンプレートを初期化する必要があるとの事。
それは困る。ウチのテンプレートはVicuna CMSというテーマを独自にいじり倒して
この デザインになっているのである。
初期化されてしまうと流石に今では戻し方を覚えていないので困ってしまう。

過去ログはwordpressに移行し、wordpress版vicuna CMS使う際にテンプレは崩壊した。

そんな訳でそれより前のバージョンにアップグレードすればいいと思って
現在ダウンロードできる6以前のMT5.17を導入することに。
アップグレード自体はダウンロードしたzipを解凍してサーバーに上書きすればおk。
あとはmt.cgiにアクセスすれば勝手にMT側がアップグレードしてくれます。
と、ここで問題発生。既存のデータベースをアップグレードする必要があります。とか抜かして
勝手にテンプレートまで初期化しやがった
MT6では問題あるからアップグレード後にテンプレートを初期化して下さいっていう"任意"だったにも関わらず
こっちは無条件で勝手に初期化しやがった。
お陰でアップグレード後はMTのデフォルトテンプレートで素っ気ないデザインに変えられてしまった…。
これじゃ話にならんので、一度旧MTの4.27を用意してそっちのテンプレートを流用しながら新MTに適応しようと思って
MT2っていうディレクトリに4.27を入れてアクセスするも
データベース自体が既に新テンプレに置き換わっておりMT4.27から見てもテンプレートは初期化された状態。
はい、お手上げ状態。

データベースを重複するわけにはいかないけれど、旧環境からテンプレート引用が出来ないかと思って
思いついたのが、別のマシンに同じくサーバーと同様の環境を用意してそっちに旧環境を持って来れば
初期化前のテンプレートが参照できるはずと思い、用意することに。
とは言え自宅サーバーは一つしか無いのでもう一台用意するわけにもいかないし
PCが別だと利便性が悪いので、仮想マシンにサーバー環境のクローンを作ることにした。
OSも同じくXPの環境が既にあったのでこいつにサーバーと同じバージョンのapache2、php、MySQL、Perlをインストール。
後はサーバーのファイルを上書きすればほとんど同じになると思って引用。
早速MT4.27にログインするもめっちゃくちゃエラーが出てくる。
そいやMT導入時に足りないものをチェックしてくれるmt-check.cgiってのがあったなと思い出して見てみると
MySQLを使いたいのに、必要なモジュールがないと。
他の必要なモジュールはサーバーからコピーした時点で入ったことになってるのにこいつだけ使えない。
仕方が無いので入れ直してみるとやっぱり無いと言われる。
perlのバージョンを3種類変えてみたけど結果は同じどころか、perlのバージョンが5.14以上だとDBD-Mysqlが無く
5.14以前だとあってもライセンスは既に切れており、ビジネス用なのでUSドル払わないと使えないよーってな感じになって使えない。
こりゃ困ったと思ったけど時間切れなので次の日に持ち越し。
翌日、ダメ元で5.14で入れたけど無反応だったDBD-Mysql、入れ直してから更にサーバーのモジュールを
また上書きしてみたら何故か動いた。何で解決したのかはよく分からん。
モジュールを入れたという結果はあってもファイルパスが認識されてなかったのかもしれない。
さてこれでMTのエラーは無くなったけど次はデータベースがないと。
そりゃそうだ、環境は用意したけどこの仮想マシン側のMySQLのデータベースは空っぽである。
(MySQLはMySQLシステム内に作るデータベースファイルなのでWindowsファイル単一としては使えないから移植不可)
サーバーから持ってきた作成済みのhtmlファイルはあるから記事自体は読めてもMTシステム側からは記事がないと同様である。
なのでMT側に認識させるためにデータベースをインポートしなくてはいけない。
さてここでもまたインポート方法を調べなければならずGoogle先生に。
コマンドラインからインポートできるとわかったので
まずはコマンドプロンプトを起動。
次にインポートする前に先にデータベースを作って置かなければならないので
コマンドプロンプトからmysqlを立ち上げ
C:/mysql -u root
としてmysqlクライアントを起動。仮想マシンなのでrootのパスワードは空っぽです。
(自宅サーバー側はもちろん設定済み)
クライアントが起動したらデータベースを作成。
$mysql>create database 任意のデータベース名;
次にそのデータベースを操作するユーザーを作ります。
$mysql>grant all on 上記の任意のデータベース名.* to ユーザー名@localhost identified by '←のユーザーのパスワード’;
これが終わったら一度mysqlクライアントを終了し(quitコマンド)
コマンドプロンプトに戻ってくるので、ここでインポート作業をします。
C:\mysql -u root 上記の任意のデータベース名 < バックアップしてあるファイル名
これでインポート作業が完了します。エラーが出たらエラーの番号を先生に聞けばわかるかも。
因みに上記のデータベース名とユーザー名、パスワードは自分が用意してあるMTのシステムのデータベースと一致させなきゃいけません。
mtディレクトリにあるmt-config.cgiの中身と同じにするって事ですな。
インポート作業が終わったらやっとMTの管理画面に行って、記事が戻っていれば完了です。
が、ウチでは何故か全ての日本語が「????????????????????????????」とか、全部「?」になってしまいました…('A`)
文字化けといえば大抵は文字コードのせいなので、バックアップ側とシステム側とMySQL全て確認するも
どれもこれも全てUTF-8で統一されており、何で日本語だけ化けるのかが全く分からず。
ここでこの日も時間切れとなりまた翌日に問題先送り。時間切れと言っても大体3時~4時くらいまで粘ってた。
お陰でここ数日3時間未満しか寝てない。
そのまた翌日、つまり12月17日、昨日ですな。
Google先生で調べまくると、MTには文字コードの違いを設定合わせてくれるという機能があると分かって
mt-config.cgiにSQLSetNamesというパラメータをつけて1にするといいとあったので
mt-config.cgiを開くと既にその項目があり、コメントアウトしてあったのでコメントアウトを外して再度実行。
???????????????????
こっちが???だわ。
もうお手上げなので、リファレンス通りにやり直すかと思ってデータベース作りからやり直し
今度は明示的にutf8で作成させるようにsqlコマンドを
$mysql>create database 任意のデータベース名 character set utf8;
と、utf8を指定して作成。
何でさっきは指定しなかったというとMySQL自体の設定ファイルのデフォルトにutf8を指定してあると
省略してもutf8で作成すると書いてあったから。
そして作成しなおしてまたユーザーも設定しなおして再度インポート…。
mt427ja_20141218
きたぁぁぁぁぁぁァァァァァァ!!
やっと旧環境の構築が完了。
ここからMT5.17側のテンプレートを仮想マシン側の旧環境テンプレートに
1つずつテンプレート追加しながら置き換えて再構築して完了。
サーバーのクローンを用意するのに2日間以上かかっておきながら
テンプレートの置き換えには2時間もかからず終わってしまった。
コピペするだけだからそりゃ楽だけども、ここまでの道のりがなんて長かった事か…。
そんなこんなで現行blogはwordpressなので今回のMTアップデートしても全く関係なく変わりませんが
過去ログのである新MTの方は見た目は全く同じながらも
blog一番下のMTバージョンが4.27から5.17に変わり、vicunaCMSも「」がついております。
本来ならvicunaCMSはMT5対応していないので…。

過去ログはwordpressに移行したので現在はMTは使われてません…。

次回辺りは再びノートPCであるL520のカスタマイズ記事書く予定。

2016年9月20日パソコンやハードのこと自宅サーバー

Posted by メイの人