レンタルサーバ移管作業

80code.com がサービス終了するのに伴いレンタルサーバ移管を余儀なくされたわけですが、色々とレンタルサーバを検討した結果、リトルサーバーというコストパフォマンスが売りのレンタルサーバを選びました。

80code.com がとにかく自由度の高いレンタルサーバだったので、それに比べてリトルサーバーは結構な制限があるので移管作業をしているときに戸惑いましたが、設定してしまえば少し使いづらいコントロールパネルもそんなに使うこともないだろうし、このコストパフォーマンスを実現するための制限なんだと思えば仕方がないと許容しました。
そもそもこのリトルサーバーはウリ文句とは裏腹に上級者向けです。しかもまだ歴史が浅いので FAQ も少ないですし……。

特に引っかかったのが、.htaccess の制限とコントロールパネルのドメイン管理画面のわかりにくさなんですが、これは改善されることもないだろうから使うこちらが慣れるしかありません。

しかし、サポートがメールのみというこの手のレンタルサーバにはありがちな体制なので、事前のリサーチとしてサービスに関する質問をお問い合わせしたのですが、平日ということもあるのかもしれませんが、1時間少々で返信が来たのでスピード感には満足しました。

移管に伴う修正作業で一番時間がかかったのはこのサイトの前身である 81:Boys です。

なんせ更新が2010年で止まっているサイトなので当然使われている PHP もバージョンが古く、PHP4.4 とかを前提にして組まれているものを組み込んでいるので、リトルサーバーの PHP バージョンが最低でも PHP5.6 という比較的新しくなおかつ PHP4.4 の頃に使えていた関数が非推奨になっていたり、関数のデフォルト設定が変わっているものがあったりしてプログラムの書き直しを余儀なくされました。しかし PHP すげぇな……関数の非推奨化や廃止はわかるんだけど、関数の引数デフォルト設定を変えるとかなしでしょ。それなら新しい関数にしろよ……。こういうところが PHP の批判される理由なのかもしれません。

特に htmlspecialchars という HTML表示する PHPには頻出する関数のエンコーディング指定が PHP5.4 から指定なしの場合「UTF-8」になるという変更があり、これが全面に渡って影響を及ぼしました。

また非推奨の関数がほぼすべてのページに使われていたので結果的にすべてのページのソースを見直しという……。もちろん非推奨なので「使える」んですが、非推奨はいつか使えなくなるということで、もういっそのことバージョン問題でエラーが出るページは一切削除とかしてしまいたかったのですが、PukiWiki で動いているページはログとして残しておきたいので問題箇所を洗い出しすべて書き直しました。そもそもこの PukiWiki は現在書き込み等はできない設定にしているのでセキュリティ的な問題はないはずなんですが……。

しかし修正した PukiWiki は PHP5.6 で動くようにはなったものの PHP7系では動かないので、結局 PHP 7.2 で動くように wiki エンジン自体のバージョンアップをしました。幸い PukiWiki は現在も開発が続いている wikiエンジンなので……。
でも PukiWiki 自体がもう必要がないので時間をかけてすべての PukiWiki ページを固定 HTML に変換するという手もあるかもしれません。面倒だから当分の間やらないとは思いますが。

それに比べて JavaScript は10年前のソースでも何の修正もなく動いてしまう……のはまぁクライアントである Webブラウザが更新され続けているからなんですが、そういう意味でも今の Web技術がクライアント側処理になってるのも頷けるというか息が長いんですね。サーバ側に依存すると「使えない」ソースを量産することになりますから。

逆にこのサイトは Freo という CMSエンジンで動作しており、PHP7.2 に対応していると明言はされていないものの、PHP5 ベースで開発されているので私が使っている範囲では何の問題もなく動作しました。本当に何もせず前のサーバからデータを移しただけで動作しました。ありがたいものです。PHP の警告は出るので php.ini は変更しましたが。

稼働しているすべてのサイトを移行できることを確認後、本契約し、メールアカウントも設定したあと DNS設定を変更する予定なので、このエントリーが一般に見える頃にはサーバ移管作業は完了しているものと思われます。

やはりサーバ移管作業はめんどくさいのでやりたくないですね……。このレンタルサーバのサービスが長らく続きますように。

でも今回の修正作業で最新の環境用のプログラムにアップデートされたので、どのサーバに移動しても動作するとは思いますが。

動作がおかしいところなどを発見しましたら、コメントなどで教えていただけるとありがたいです。

関連エントリー
コメント投稿
投稿フォーム