以前作って廃止した仕事用サイト、もしかしたら再就職活動の足し(例: 経歴に書く時の元ネタ、Webやアプリのサンプル)に使えるかと思ってちょっと見たくなったのだが、なかなか問屋が卸してくれなかった。WordPressでは画像などの添付ファイル以外のコンテンツはDBに入っているので、HTMLのようにブラウザで簡単には開けないのだ。そこで、一式を手元のデスクトップPCに移して、最小限でもいいから表示できるようにしようとした。
実は、サイトが生きていた時には定期的にPDFで保存していたのだが、(良くあるパターンで、)欲しいところを取ってなかったのでw、この作業をする羽目になった。
要は、WordPressのサーバ移行にからむ作業である。最初から面倒なことは分かっていたが、やる気(時間)はあった。
いろいろな作業が要るが、一番面倒なのは、文中の自サイト(自サーバ)へのリンクや画像のURLを書き換えることである。それらは大抵絶対パスのように格納されていて(例: "https://blog.piulento.net/archives/94939")、例えば新しいサーバのドメイン名やポート番号が違っていたら、問答無用で無効になってしまう。そして、WordPressは何も対処してくれない(何が正しいか分からないので、不可能だ)。
おそらく、自サイトへのリンクを付ける時に、ドメイン名などを外して相対パスのように(例: "/archives/94939")すればいいのだが、そういうサポートがないので、すぐに忘れてしまう。更に、画像のリンクは自動で付くので無理だ。
対処にはいくつかの方法があるが、コンテンツ(DB)を書き換える方法と、表示時に書き換える方法があるだろう。前者はまあ簡単だろう(置換するプラグインがあるだろうし、インポート機能でできるのかも知れない)が、移転のたびに手間が掛かるうえに、そのうちおかしくなってしまう(しかも、気付かない)可能性がある。そこで、僕は後者の、コンテンツやDBはそのままにして、表示時に変換する方式(オンザフライ)で対処したいと思った。
今気付いたが、コンテンツ中のローカルURLを相対パスのように置換すれば、オンザフライでの変換も不要になっていいかも知れない。ただ、上にも書いたように、WordPressにはそういうサポートがないので、投稿が増えるたびにそういう処理が要るだろう。
このサーバでは、(別な「小手先対処」のために)URLの書き換えをRewriteというプラグインでしているので、今回もそれが使えると思ったのだが、URL中のパスの部分だけしか変換できないようで(サーバからWordPressに来る時にそうなってしまうのか)、ポート番号は変更できかった。それで他を探したら、Real-Time Find and Replaceでできた。
なお、Rewriteは古過ぎるせいか、最新のWordPressではエラーになったので、修正が必要だった(今まで知らずに使えていたので、設定だけの問題かも知れない)。ご入用の方はお知らせ下さい。
今回は、ドメイン名は変えずに(ドメインは廃止するので、ホストテーブル(/etc/hosts)に書いて誤魔化すことにした)、スキーム("https"を"http"に)とポート番号(下例では80を9999に)を変えたので、以下のようなルールで変換するようにした。
元: @(http)(s)?:(//AAAA\.BBB)(/blog)(/.*)?@
置換後: $1:$3:9999$4$5
見ても「は??」であろうが、正規表現というもので、ワイルドカードの千倍以上便利だw 上で、"AAAA\.BBB"は元のドメイン名("AAAA.BBB")、"9999"は新しいポート番号である。例えば、元々のURL: "https://AAAA.BBB/blog/94939"(httpsはhttpでも可)は"http://AAAA.BBB:9999/blog/94939"に変換される。
なお、公開サイトで使うなどの場合のように「ちゃんと」(完全に)変換するにはいろいろな例外条件への配慮が要るが、今回は自分で見るだけなので、手を抜いた。
(7/31 21:40 一部の誤りを取り消し, 8/1 15:31 補足・修正)
naoki: 2019-07-31 18:39
ポートフォリオというやつですね。
(↑最近覚えました)
ブログ移転するという意味ではないんですが、
こういう事ができるようになりたいです。憧れます。
でも、上記の半分(それ以上)
僕には意味が分からなかったんですが
それは自分でググったり、
お会いするときに伺うとして(←冗談です)、
興味あることだったので
読んでいてワクワクしました。
れんと: 2019-07-31 19:06
●あ、自分のサンプルとか作例でしたら、ポートフォリオだったかも知れません。なんかもう一個あった気がするのですが、それがポートフォリオだったかも知れません。なぜか今は出て来ませんw
サーバ移転は、(僕も含めて)いつかするかも知れませんので、あらかじめ試しておくといいと思いました。やっぱり面倒でしたがw そういえば、なおきさんがここに来られた時、上記のように書き換えされたんでしょうかね。結構面倒なのに、されたんだっけと思いました。自動ではないはずなので・・・
そう、この投稿はすごく端折ってますから(前提条件とか省いてますし、作業全体の半分くらいしか書いてないです)、分からないことは多いと思います。もし会ったら、かつ、僕が調子良ければw、いくらでもお教えしますよ。
naoki: 2019-07-31 19:40
ありがとうございます。
その節は大変お世話になりました〜。(なってます)
平身低頭です。 m(_ _)m
URLは、れんとさんが書き換えして下さった記憶があります。
イメージとしては
「勉強になるので」と、書き換えや設置、
テスト(?)は全て、れんとさんが行って下さり、
「作業できました。あとはパスワード変更して下さい」で
僕はほぼ手ぶらで入居した感じでした。
今は僕もスタミナ切れが甚だしいです。
きっといつか回復してやろうと思います。
れんと: 2019-07-31 19:47
●あれ、僕がやりましたかw すっかり記憶喪失です(爆) 仕事とかでも結構そういうことがあるので、なかなか自分も馬鹿にできません(危ないって!!)w
スタミナはなかなかだと思いますが、気長に溜め・貯めて下さい。