お引越し
定年間近。定年後は大学の奥村研究室のサーバを継続利用できるかどうか微妙だ。そこで,定年後の引越し先の整備を兼ねて,以前から借りていたさくらのレンタルサーバライトから,さくらのVPS(1G)に引っ越した。ドメインは以前から持っていたokumuralab.orgをそのまま使う。
さくらのVPSにはCentOS 7をインストールした。レンタルサーバライトからVPSへのokumuralab.orgドメイン移行が最初よくわからず,さくらの質問フォームで問い合わせたが,回答がいまいち。ふと気づいて,まずレンタルサーバライト側でokumuralab.orgを削除したら,VPS側で設定することができた。
あとは大学の研究室のサーバからの引越しである。これは急ぐ必要がないので,少しずつやればよい。
安いVPSのプランゆえ,リソースが限られているので,MySQLを使ったコンテンツはなるべく避けたい。特に,古いブログはDrupal 6で作ってあり,凍結してスタティックなページに移行したい。
サイトのコンテンツをそのままコピーするにはいつもwgetを使っている。
wget --mirror --no-parent --no-clobber --adjust-extension --convert-links --page-requisites http://...
のような感じでやればよい。ただ,Drupalの個別URLには拡張子が付かない。--adjust-extension(wget 1.12から --html-extension が改名)を付けるとURLに .html が付き,今までのURLと変わってしまう。そこで,このオプションを外してアーカイブする。.html が付かなくてもtext/htmlで送り出される。問題が起こるのは node?page=1 のようなファイルで,これをGETしようとすると ? 以下が無視されて node ディレクトリのリスティングが送られてくる。これを避けるには node?page=1 へのリンクを node%3Fpage=1 へのリンクに書き換えればよい(ファイル名は ? を含むままでよい)。
リンクやURLの書き換えは,次のようなRubyスクリプトで一度にできる:
ARGV.each do |file|
buf = File.open(file, "r") do |f|
f.read
end
buf.gsub!(/href="http:\/\/oku\.edu\.mie-u\.ac\.jp\//, 'href="/')
buf.gsub!(/src="http:\/\/oku\.edu\.mie-u\.ac\.jp\//, 'src="/')
buf.gsub!(/action="http:\/\/oku\.edu\.mie-u\.ac\.jp\//, 'action="/')
buf.gsub!(/href="node\?/, 'href="node%3F')
buf.gsub!(/href="index\.html"/, 'href="./"')
buf.gsub!(/href="..\/index\.html"/, 'href="../"')
File.open(file, "w") do |f|
f.write(buf)
end
end
これ以外に .css や .js だけをコピーするにはrsyncが使える:
rsync -avm --include='*.css' -f 'hide,! */' src/ dest rsync -avm --include='*.js' -f 'hide,! */' src/ dest
あとは試行錯誤でやっているうちに,引越しができたようである。