目次

非KUSANAGI環境からKUSANAGI環境へDokuWikiを移転する方法

この作業は中止

kusanagi provision --lampだと、MySQL上に無駄にデータベースが作成される

また、nginxの.confの設定が複雑になり、画像が表示されなかったりした
旧サーバーの.confに手動で行っていたカスタマイズを
kusanagiが生成した.confファイルに手動でマージしていったらベースは動いているけどロゴが表示されなかったりで
完全移行に失敗

旧サーバーで行う作業

DokuWikiをバックアップ

DokuWikiのプロジェクトルートが/home/user1/DokuWiki/xxxの場合

cd /home/user1/DokuWiki
tar cJf xxx.tar.xz xxx

xxxディレクトリを丸ごとバックアップ、tarJオプション(xz方式)で圧縮し、xxx.tar.xzというファイルを作成

作成したxxx.tar.xzはffftpなどでローカルに保存しておき、あとで新サーバーにアップロードする

fullchain.pemとprivkey.pemをダウンロード

cd /etc/letsencrypt/live/example.com
cp fullchain.pem /home/user1/
cp privkey.pem /home/user1/

cd /home/user1/
chmod 777 fullchain.pem
chmod 777 privkey.pem

/etc/letsencrypt/live/example.comのようなディレクトリにある

という2つのファイルをダウンロードする

FTPなどを使ってダウンロードする場合には
直接ダウンロードしようとするとおそらくパーミッションの関係でエラーになるので
ホームディレクトリにコピーを作成して権限を777にしてやる

新サーバーで行う作業1(DNS設定前)

kusanagiのプロビジョニング

--lampオプションをつけてkusanagi provisionコマンドを実行する

kusanagi provision --lamp example.com

kusanagi provisionの対話処理

ターゲットディレクトリは /home/kusanagi/example.com です。

Webサイトで使用するホスト名(FQDN)を入力してください。 例) kusanagi.tokyo
example.com
Webサイトで使用するホスト名(FQDN)をもう一度入力してください。
example.com

Let's Encryptを使用される場合、Let's Encrypt の使用規約に同意される必要があります。
使用規約に同意される場合、あなたのメールアドレスを入力してください。同意されない場合、Enterキーを二回押してください。
使用規約は次のURLより確認できます: https://letsencrypt.org/repository/

メールアドレスを再入力してください。


データベース名を入力してください。
notuse_example
データベース名を再度入力してください。
notuse_example

データベース notuse_example のユーザー名を入力してください。
notuse_example
データベース notuse_example のユーザー名を再度入力してください。
notuse_example

データベースユーザ'notuse_example'のパスワードを入力してください。[a-zA-Z0-9.!#%+_-]の文字列が使用できます。最小は8文字以上です。
再度 'notuse_example' のパスワードを入力してください。
example.com のプロビジョニングは完了しました。example.com にアクセスし、lampをインストールしてください!
完了しました。
FQDN

FQDNを聞かれるので
サイトのドメイン名を入力

ここで書いたFQDNの値がkusanagiの関連ファイルに書き込まれるので
example.comのような仮の値ではなく
旧環境で使用している実際のドメイン名を入力する

Let's Encryptの処理をスキップ

Let's Encryptの規約に同意する場合は
あなたのメールアドレスを入力してください。同意されない場合、Enterキーを二回押してください。
と聞かれるので
Enterを2回押す

新サーバーへ向けたDNSの設定がまだなので、ここでメールアドレスを入力してもLet's Encryptの処理には失敗してしまう

Enterを2回で(規約に同意しないことで)、Let's Encryptの処理をスキップできる

データベース名・データベースユーザー名・パスワード

などと聞かれるが、DokuWikiではデータベースを使用しない

どうせ使わないので適当な値を入力して構わない

データベース名をnotuse_exampleのような値にすることで

などが、後々でも分かるようにしておく

ローカルPCでの作業

hostsの設定

C:\Windows\System32\drivers\etcというフォルダにある
hostsファイルを開く

xx.xx.xx.xx   example.com

hostsに上記のような設定を追加する

xx.xx.xx.xxは新サーバーのグローバルIPアドレス
example.comには実際のFQDNを設定

新サーバーで行う作業2(DNSの設定前)

ファイルのアップロード

旧サーバーで作成した

の3つのファイルを新サーバーにアップロードし
/home/kusanagi/example.comのようなディレクトリに配置する

example.comの部分は
kusanagi provisionコマンドで指定したプロファイル名

DokuWikiをリストア

旧サーバーで事前にバックアップしておいたDokuWikiのファイルxxx.tar.xz
/home/kusanagi/example.comのようなディレクトリに設置してある

cd /home/kusanagi/example.com
tar xJf xxx.tar.xz
mv xxx/* DocumentRoot/

tar xJf xxx.tar.xzコマンドで
xxx.tar.xzが解凍されてxxxというディレクトリが作成される

mv xxx/* DocumentRoot/コマンドで
xxxの中身をDocumentRootに移動している

DokuWikiファイルの所有者をhttpd:wwwに変更

cd /home/kusanagi/example.com/DocumentRoot
chown -R httpd:www .
systemctl restart nginx

DocumentRoot以下のすべてのファイルの所有者をhttpd:www(nginxの実行ユーザー)に変更する

所有者の変更を反映させるには
systemctl restart nginxコマンドでnginxのサービスを再起動する

旧環境で設定していたDokuWiki用のnginx設定を.confファイルに手動で書き込み

vi /etc/nginx/conf.d/example.com_http.conf