Open6

【作業日誌】AWS で稼働しているWordpressを自宅のオンプレサーバーに移行する(CloudflareTunnel利用)

akikenakiken

個人で公開しているブログサイトの費用を削減するため、
AWSから自宅サーバーに移行したい。

AWS Lightsail のWordpressイメージで起動した環境から、
自宅のProxmoxサーバー上の仮想マシンで手動構築したサーバーに移行する。

akikenakiken

自宅サーバーの公開方法は、
Cloudflare Tunnelを用いる。

Cloudflare Tunnel を用いることで下記の二つを実現する。
・SSL終端をCloudflare に任せる
・自宅のプライベートネットワーク内のサーバーを
 ポート開放せずに外部公開する

Cloudflare Tunnel の選定理由は、
・無料であること
・移行するWordpressのドメインが
 Cloudflareで取得したドメインであること
・上記2点を実現できるサービスであること
・単純に使ってみたかった

akikenakiken

うまく行かなった手順

①下記のサイトを参考に、apach php mysql wordpress をインストールする
https://www.ingenious.jp/articles/howto/linux/almalinux-wordpress-setup/#toc5

②下記のサイトを参考に、ファイルとDBの移行を実施する
https://cloud5.jp/bitnami-wordpress-migration/#--3

③Cloudflare にログインし、
 Zero Trust ⇒ Networks ⇒Tunnels の画面に入り、
 画面の案内にしたがって、Cloudflare Tunnel を設定する

④接続確認
 豪快にサイトが崩壊。
 ブラウザの開発者ツールから確認すると、localhost を参照しようとしているリソースが多数。
 元のサーバーに入っているNginxが新サーバーには入っていないことに気づく。

⑤切り戻し
 DNSの設定を戻し、いったん切り戻し
 Nginxの設定を行いローカルでまず正常にうごくことを確認する手順で再チャレンジする

akikenakiken

Nginx は全く関係なかった、Apacheの設定に問題あり。

ゼロから作り直しを実施。

akikenakiken

下記の設定で、正常にCloudFlareを経由した通信ができるようになった。

apach php mysql wordpress をインストールする

https://www.ingenious.jp/articles/howto/linux/almalinux-wordpress-setup/#toc5

※SELinuxの設定、もしくは停止が必須
 Wordpressが プラグインの検索など、cURL Error(7) などが発生し、正常に通信ができない。

CloudFlareとの通信のため、すべての通信をhttps化させる

オレオレ証明書で良いので、apache に設定を追加する

sudo yum install mod_ssl
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

vi /etc/httpd/conf.d/ssl.conf
Listen 443 https
<VirtualHost *:443>
    ServerName your_domain_or_IP
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
    DocumentRoot "/var/www/html"
    <Directory "/var/www/html">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Wordpress環境の移行は、All-in-One WP Migration を利用。

旧環境でエクスポートして、新環境でインポートする。

Cloudflare tunnel をインストール

Cloudflare にログインし、
 Zero Trust ⇒ Networks ⇒Tunnels の画面に入り、
 画面の案内にしたがって、Cloudflare Tunnel を設定する

★ポイント
先ほど作成したオレオレ証明書のhttps にアクセスできるように設定する
  ①Service のtype は https を選択
  ②Additional application settings>TLS>No TLS Verify を "Enbaled" にする