非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.pemprivkey.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