非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
ディレクトリを丸ごとバックアップ、tar
のJ
オプション(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
のようなディレクトリにある
fullchain.pem
privkey.pem
という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の処理をスキップできる
データベース名・データベースユーザー名・パスワード
データベース名を入力してください
データベース xxx のユーザー名を入力してください
データベースユーザ'yyy'のパスワードを入力してください
などと聞かれるが、DokuWikiではデータベースを使用しない
どうせ使わないので適当な値を入力して構わない
データベース名をnotuse_example
のような値にすることで
- 使用していないDBであること
kusanagi provision –lamp example.com
のコマンド実行に付随して生成されたものであること
などが、後々でも分かるようにしておく
ローカル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の設定前)
ファイルのアップロード
旧サーバーで作成した
- xxx.tar.xz
- fullchain.pem
- privkey.pem
の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