さくらインターネット→シン・クラウドへのサーバー引っ越し

Web/ミディリン

20年使っていた、さくらインターネットから、新しいレンタルサーバー、シン・クラウドへ
ページをお引越しすることになりました。

2004年から2024年まで契約して、使っていたので、随分長いこと、さくらインターネットにはお世話になりました。

シン・クラウドは運営元がXサーバーで、
1年ちょっと有料版のXサーバーを契約していて、
パフォーマンス的にもXサーバーのほうが早いのですが、お値段がさくらインターネットより高かったので、
(さくらが年間5000円くらいで、Xサーバーは年間15000円くらいだった気が。独自ドメインも取得していたので)
契約は途中でやめてしまったのですが、
一時期、期間限定で、シン・クラウドという、広告無しで、無料で使える
レンタルサーバーを募集していた時期がありました。

3月中旬あたりから、シンクラウドが、他社からの乗り換えで、募集再開していたので、
シン・クラウドへ乗り換えすることにしました。

さくらとの比較だと、
現在のさくらのスタンダートプランが300G(初期契約時は数Gだったのに、徐々に拡張された)
シン・クラウドは10G、
さくらインターネットはサポートが充実されているのに対し
シン・クラウドは、基本、サポートなし、上級者向けのレンタルサーバーとなっています。

また、シンクラウドは3ヶ月に一回更新手続きしないと、サーバーが継続して使えない
というところが、大きなデメリットになります。

ただ、それ以外は、CGI、PHP、MySQLなど一通りの機能が使えて
パフォーマンスもかなりよいので、
広告無しで、無料で使えるところは、日本だけでもシンクラウドだけです。

ということで、サーバーのお引越しをしました。
これが思った以上に大変でした。

●PHPが動かない(PHP5→PHP8用へのプログラム改修)

さくらインターネットではPHPの古いバージョンが動かせるので
10年以上前のプログラムを動かしていたため、PHPは5のままずっと使用していたのですが、
移動したところ、トップページをはじめ、ほぼ全滅。

1つ1つデバッグしていき、主に以下のところが原因でした。

・PHP8では、変数宣言が厳格化されたため、初期化していないとエラーになる
・MySQLのDBの接続方法が変わっていた。関数が軒並み変更になっていた

mysql_num_rows → mysqli_num_rows
mysql_close → mysqli_close
mysql_fetch_array → mysqli_fetch_assoc

●CGIも軒並み動かなかった

PHPはエラー箇所が何行目か出るので、
エラー行をデバッグして、1つ1つ潰していけばよいですが、
CGI(Perl)は500エラーで、エラーの内容が何もわからず、
デバッグで、Perl上でHTMLを表示するものを先頭行に埋め込み、500エラーが出るかどうかを確認
HTML表示できたら、埋め込み行を変えて、500エラーが出るところまで繰り返す、
これがしんどかったです。

主な原因としては
・jcode.pl’が使えなくなっていた
・パスの読み込みの相対パスをしっかり書かないと動かなくなっていた

jcode.plの読み込みで失敗していることを突き止めたあと、
確認をすると2018年くらいに、jcode.plからjacode.plに変わった、という内容を発見し、
jacode.plをダウンロードしたところ、jcodeのエラーが回避できました。

また、ファイル名の読み込みパスが
require ‘xxxxx.pl’;
のような形で書かれているものが多くあったのですが
require ‘./xxxxx.pl’;
のように書いてあげることで、8割型、CGIは動くようになりました。

●sendmail系が届かない

今年2024年2月にGmailのポリシーが厳しくなったため
なにかフォームなどから投稿があったときに、Gmailにメールが届かなくなっていました。

メール送信システムなど実装する企業なら
SPFやDKIM、DMARKの実装などなりすましメール対策で
Gmailへ送信するときに現在義務付けられているため
このあたりが影響しているのではないかと。

ただ、DNS周りの操作できないし、Perlなどで動くsendmailでそれらの実装は難しいと判断して
いったん、icloudのメールへ送信→Gmailへ転送することで、回避しました
(icloudはまだスパム系がゆるいので、そこを中継で挟むと送信元がしっかりとしているのでGmailへ送れる)

●ppblog→Wordpressの移行
PHP5系を使い続けていた理由の1つとして、
データベースが不要なblogのppblogを複数サイト展開していたというところがありました。

PHP4時代から使っていたのですが、これがPHP7や8では動かないことは以前から確認済みだったので
古いPHPを使っていたのですが、引越し先でのPHP8ではまったく動かないです。

ppblogをPHP8用に変えるのはさすがに厳しいので、
MT形式でエクスポートし、WordPressへインポートして移行することにしました。

移行したのは以下3つのみ

ドラクエグッズ・コレクション
http://midilin.cloudfree.jp/dqgoods/

花粉症Blog
http://midilin.cloudfree.jp/kahun/

このブログ
https://midilin.cloudfree.jp/midilin/diary/

行ったのは以下作業
・ppblogの月ごとのMT形式のエクスポート
・フリーソフトを使って、エクスポートのログを結合
・ppblogのエクスポートの日付にバグがあり、月と日が逆転して出力されていたので
 (2024.2.10に投稿したものが、10/02/2024となっていた)
 さくらエディタの正規表現で、エクスポートログの一括置換
 (\d{2})\/(\d{2})\/(\d{4})
 ↓
 $2/$1/$3
・wordpressのサブディレクトリの設置
(レンタルサーバーの機能でインストールすると、ルートに1つしかインストール出来ないので)
 MySQLで事前にデータベース作成したあと、
 Wordpressの公式配布ページにいって、サブディレクトリにアップロードして
 設定することで、何個でもWordpressを設定することができる
・1つ1つクイック編集で下書き→公開に変更
(一括更新で、ステータスを公開にすると、最終更新日が更新されて、何故か当日の日付で記事が公開されてしまったたため)

これで、モバイルでも確認できるようになりました。

丸4日かけて、だいたい移行完了です。
8割くらいは動いているはずです。
(一部、音楽の検索とか、動いていない)
細かいところ、動作確認していませんが、また時間できたら、そのうち直そうと思います。

コメント

タイトルとURLをコピーしました