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.pemprivkey.pemをバックアップ

詳細は、サーバー移転時にcertbot(Let's Encrypt)のSSL証明書を移行する方法 を参照

/etc/nginx/conf.dディレクトリにある
example.com.confのようなファイルをバックアップ

事前にバックアップしておいたxxx.tar.xzを新サーバーにアップロード

mkdir /home/user1/Dokuwiki
mv xxx.tar.xz /home/user1/Dokuwiki
cd /home/user1/Dokuwiki
tar xJf xxx.tar.xz

Dokuwikiディレクトリを作成
Dokuwikiディレクトリにxxx.tar.xzを移動
xxx.tar.xzを解凍

/home/user1/Dokuwikixxxディレクトリが生成される
/home/user1/Dokuwiki/xxxwikiのドキュメントルート

cd /home/user1/Dokuwiki/xxx
chown -R nginx:nginx .
find . -type d -exec chmod 700 {} +
find . -type f -exec chmod 600 {} +

ファイルの所有者をnginxの実行ユーザーに設定

ディレクトリのパーミッションを700
ファイルのパーミッションを600に設定

nginxの実行ユーザーは
nginx:nginxだったり
httpd:wwwだったりする

nginxの実行ユーザーが分からない人は下記を参照
dokuwikiディレクトリの所有者をnginxの実行ユーザーに変更

旧サーバーでバックアップしたfullchain.pemprivkey.pem
新サーバーへアップロード

cd /home/user1
mkdir -p tmp/xxx
mv fullchain.pem tmp/xxx
mv privkey.pem tmp/xxx

/home/user1/tmp/xxxのようなディレクトリを作成して
fullchain.pemprivkey.pemを配置する

詳細は、サーバー移転時にssl証明書を移行する方法を参照

.confを配置

旧サーバーから持ってきたexample.confのようなファイルを
/etc/nginx/conf.d/ディレクトリに配置

mv example.conf /etc/nginx/conf.d/

.confを編集

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

example.com.conf抜粋
    ssl_certificate      /home/user1/tmp/xxx/fullchain.pem;
    ssl_certificate_key  /home/user1/tmp/xxx/privkey.pem;
    
    (中略)
    
    fastcgi_pass   127.0.0.1:9000;
    #fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;

ssl_certificatessl_certificate_keyのパスを旧サーバーからコピーしたものに修正

詳細は、サーバー移転時にssl証明書を移行する方法を参照

必要に応じてfastcgi_passの値を修正
(旧サーバーではphp-fpm.sockを使っていたけど
新サーバーでは127.0.0.1:9000を使う場合など)

systemctl restart nginx

nginx.confを書き換えた後、設定を反映させるにはnginxサービスの再起動が必要

C:\Windows\System32\drivers\etcフォルダにある
hostsファイルに以下のようなものを追記

hosts
xx.xx.xx.xx   example.com

xx.xx.xx.xxの部分は新サーバーのIPアドレス
(VirtualBoxの仮想環境でNATを使って動作試験をしている場合は127.0.0.1)

https://example.comの部分は
Dokuwikiがもともと稼働していた本番用のURL

hostsを使って自分だけルーティングをすることで
本番環境に影響を与えずに動作試験ができる

certbot certonlyコマンドで証明書を新規発行

詳細は、サーバー移転時にssl証明書を移行する方法を参照

example.com.conf
  ssl_certificate      /etc/letsencrypt/live/example.com/fullchain.pem;
  ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;

ssl_certificatessl_certificate_keyを、certbot certonlyコマンドで発行したものに変更

詳細は、サーバー移転時にssl証明書を移行する方法を参照

  • 最終更新: 2023/05/25 19:47