レ点腫瘍学ノート

日記/2020年/05月07日/タイムスタンプを維持したpukiwikiの引越し手順 の履歴差分(No.1)


#author("2020-05-07T08:25:16+09:00;1970-01-01T18:00:00+09:00","default:tgoto","tgoto")
バリューサーバーからエックスサーバー、あるいはその逆の引っ越し

[[pukiwikiカスタマイズ箇所]]の一環として、pukiwikiの「バリューサーバーからエックスサーバー」あるいは「エックスサーバーからバリューサーバー」の引越しについての備忘録をメモしておきます。バリューサーバー、エックスサーバー以外のサーバーについても大まかな手順は変わらないと思いますが、SSHログインの仕方については各サーバーの設定をご確認ください。

**pukiwikiの引っ越しはタイムスタンプの維持が重要

pukiwikiはファイルの更新日時などをテキストファイルのタイムスタンプで管理しているため、pukiwikiの引越しの場合はファイルのコピーペーストでタイムスタンプが変更されてしまわないように気をつけなければなりません。不用意にFTPソフトで全コピーアップロードするとタイムスタンプがアップロードされた時間になってしまいます。

SFTPでタイムスタンプを維持したままコピーする方法やrsyncを使う方法などいくつかあるようですが、ここではSSHを使った簡単な方法をメモしておきます。

*SSHログインの準備

**バリューサーバーの場合

ここではバリューサーバーの例を記載していますが、コアサーバーやxreaなどGMOの旧digirock系レンタルサーバーではほぼ手続は同様でないかと思われます(コアサーバーは使ったことがありませんが)。

サーバーの管理者コントロールパネルにログインし、お役立ちツール→SSH接続を開いて、自分の現在のIPをログイン許可IPに設定します(ここで許可したIP以外からの接続は遮断される)。同時に登録可能なIPアドレスは1つだけです。

**エックスサーバーの場合

エックスサーバーのコントロールパネルでSSHログインのための暗号鍵を生成しておきます。公開鍵を入力すると暗号鍵のテキストファイルをダウンロードできます。公開鍵と暗号鍵はペアで使用しますが、両方が漏出すると不正アクセスにつながってしまうので管理に注意します。

 $ cd /Users/[ユーザー名]/Downloads

 $ mkdir ~/.ssh
 $ mv hoge.key ~/.ssh/id_rsa

暗号鍵のファイルをダウンロードしたら、macの~/.ssh/のフォルダに暗号鍵をid_rsaという名前をつけて配置します。

 $ chmod 700 ~/.ssh
 $ chmod 600 ~/.ssh/id_rsa

こちらのサイトに詳しい解説があります。
https://decoy284.net/xserver-ssh/

エックスサーバーにSSHログインする場合は通常の22番ポートではなく10022番ポートで接続する必要があることに注意します。

 SSH -p 10022 [email protected]

*同じサーバーの別ディレクトリの場合

SSHでログインしたのちにcdで目的のディレクトリに移動します。ディレクトリ内にあるファイルやフォルダの名前がわからない時はlsで一覧を表示します。同じサーバー内で別のサブドメインに移動する場合などは、cp -aコマンドで移動します(cp -aは対応していないサーバーもあるので、うまくいかない時はcp -pを試す)。下記の例はdir1をdir2にコピーする場合です。

 $ cp -a dir1 dir2

*別サーバーの場合

いろいろな方法がありますが、タイムスタンプを維持するためにはサーバー内でzipに凍結してから移動させて、その後に移動先でzipを解凍するという方法が簡単です。

まず転居元サーバーにSSH接続し、cdコマンドで転居対象とするフォルダに移動します。タイムスタンプを維持するために転居元サーバー内でフォルダをzip凍結します。

 $ zip -r frozen.zip *

このzipファイルをFTPで一旦ローカルに保存し(バックアップ)、転居先のhoge.com/public_htmlにFTPでアップロードします。

転居先のサーバーにSSHで接続して目的のディレクトリに移動し、先ほどアップロードしたzipを解凍します。
$ unzip hoge.zip