コンテナ WordPress + Cloudflared による hyt adversaria のリニューアル(2025)について

Environment
Photo by hyt.

コンテナ WordPress + Cloudflared による hyt adversaria のリニューアル(2025)についてです.

いちばんやさしい WordPress 入門教室 バージョン6.x対応 | 佐々木恵 |本 | 通販 | Amazon
Amazonで佐々木恵のいちばんやさしい WordPress 入門教室 バージョン6.x対応。アマゾンならポイント還元本が多数。佐々木恵作品ほか、お急ぎ便対象商品は当日お届けも可能。またいちばんやさしい WordPress 入門教室 バージ...

リニューアルの理由

本 blog,2011年3月から Conoha VPS 上に構築した WordPress + Mariadb + Eginx で運営してきたのですが,さすがに最も安価な

  • CPU: 1コア
  • メモリ: 512GB
  • SSD: 30GB

のプランだとかなり動作が重たく,記事がなかなか表示されないことも多くなってきました.また,Conoha の VPS のコントロールパネルが ver.2 から ver. 3 に変わったのですが,これは自動的には移行とならず,サーバーを作り直さないとダメ……しかし一から環境を構築し直すのも面倒でした.

ServersMan から ConoHa に VPS を乗り換えた備忘録
ServersMan から ConoHa に VPS を乗り換えた備忘録です.本 blog のサーバーを DTI の ServersMan VPS から ConoHa VPS に乗り換えたので,その備忘録と雑感です.乗り換え理由乗り換えた理...
hyt adversaria のリニューアルについて
hyt adversaria のリニューアルについてです.リニューアルの理由本 blog hyt adversaria は 2016年3月から開始してちょうど7年経過しました.しかし,ここ数ヶ月本業がとても忙しかったことと,本 blog を...

なによりとうとうディスク容量もバックアップまで含めて考えると 30GB では足りなくなり,この3連休を利用した完全な引越しを決意しました.

いちばんやさしいWordPressの教本 第7版 6.x対応 人気講師が教える本格Webサイトの作り方 (いちばんやさしい教本シリーズ) | 石川栄和, 大串 肇, 星野邦敏 |本 | 通販 | Amazon
Amazonで石川栄和, 大串 肇, 星野邦敏のいちばんやさしいWordPressの教本 第7版 6.x対応 人気講師が教える本格Webサイトの作り方 (いちばんやさしい教本シリーズ)。アマゾンならポイント還元本が多数。石川栄和, 大串 肇...

乗り換え先

乗り換え先は,

コンテナ WordPress + Cloudflared

です.乗り換えはかなり手間がかかりましたので,備忘録をかねて少し詳しく紹介したいと思います.

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方 | 中島 能和 |本 | 通販 | Amazon
Amazonで中島 能和のゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方。アマゾンならポイント還元本が多数。中島 能和作品ほか、お急ぎ便対象商品は当日お届けも可能。またゼロからはじめるLi...

乗り換え手順

旧環境データバックアップ

実は今回,この旧環境データのバックアップと新環境への書き戻しにかなり苦労しました.原因は,

  • VPS のディスクの空きがまとめてバックアップに耐えられるほどなかったこと
  • phpMyAdmin の現在の安定版が PHP8.1 以降には対応していないこと(旧環境の PHP は ver 8.2.29 が導入されていた)
  • WordPress をコンテナで導入したことで blog の URL 他に変更が生じたこと

の3つです.

通常ならば,Wordpress の有名プラグイン All-in-One WP Migration and Backup 辺りを使って,まとめて(もしくはデータベースとその他プラグインに分けて)バックアップを取り,以降先にも同じプラグインを入れて書き戻すのが楽だと思います.しかし,ディスクの空き容量が少なすぎたことと,Wordpress をコンテナで導入したことでこの手が使えませんでした.結果,移行元の WordPress + Mariadb + Egninx 環境の WordPress データのバックアップは以下の通り行うことになりました.

  1. /var/www/wordpress/wp-content 以下にある plugin, themes, uploads を tar.gz 形式で圧縮して scp で新サーバーに転送
  2. phpMyAdmin の開発版である ver.6 を /var/www/phpmyadmin 以下にインストールしアクセスできるよう Nginx の設定を変更
  3. phpMyAdmin で MariaDB の wordpress データをエクスポート

なお,phpMyAdmin の開発版は,

Downloads

からダウンロード可能でした.また,データベースにアクセスするためのユーザ名とパスワードは /var/www/wordpress/wp-config.php に記されていました.

実践マスター PHP+MySQL PHP5対応
本書は、Webアプリケーション作成では広く普及し、もはやWeb開発の定番ともいえるPHPとMySQLの解説書です。  WebサーバのApache、スクリプト言語のPHP、データベースのMySQL、そしてMySQLを直感的に操作できるソフトウ...

コンテナ WordPress(セルフホスト)環境の構築

まず,Wordpress は,古い Mac mini 2014 に Ubuntu 24.04 server を入れ,podman でコンテナとして動作させることにしました.データベースの MySQL などと合わせて,podman-compose 用の設定ファイルを

$ vi docker-compose.yaml
services:

  wordpress:
    image: wordpress
    container_name: wordpress_for_hytadv
    build:
      context: .
      dockerfile: DockerFile
    restart: always
    networks:
      hytadv:
        ipv4_address: 10.**.**.2
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: xxxxxxxxxxxxxxxxxxxxx
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - /var/lib/containers/volumes/hytadv/html:/var/www/html

  db:
    image: mysql:9.1
    container_name: mysql_for_hytadv
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: xxxxxxxxxxxxxxxxxxxxx
      MYSQL_RANDOM_ROOT_PASSWORD: MYSQL_RANDOM_ROOT_PASSWORD
    volumes:
      - /var/lib/containers/volumes/hytadv/db:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    container_name: phpmyadmin_for_hytadv
    restart: always
    networks:
      hytadv:
        ipv4_address: 10.**.**.3
    depends_on:
      - db
    environment:
      - MEMORY_LIMIT=1024M
      - UPLOAD_LIMIT=1024M
    ports:
      - 8888:80

networks:
  hytadv:
    name: hytadv
    ipam:
      driver: default
      config:
        - subnet: 10.**.**.0/24
          gateway: 10.**.**.1

のように,あと,Wordpress でパスキー認証 (WebAuthn) が使えるよう, Dockerfile を

$ vi Dockerfile
FROM wordpress:latest

RUN apt-get update
RUN apt-get install -y gcc
RUN apt-get install -y curl
RUN apt-get install -y libgmp-dev
RUN docker-php-ext-install gmp
RUN docker-php-ext-enable gmp

の内容で作り,

$ sudo podman-compose up -d

として立ち上げました.これらは昔以下の記事で紹介した内容とほぼ同じです.

Docker 版 Wordpress に GMP extension を追加する備忘録
Docker 版 Wordpress に GMP extension を追加する備忘録です.いつもの通り結論から記すと,Wordpress on Docker 公式が用意している library / extension 追加機能を使うと比較...
Wordpress でパスキー備忘録
Wordpress でパスキー備忘録です.結論から書くと,プラグインで簡単にパスキー対応にできますが,プラグインを探すときは「パスキー」ではなく「WebAuthn」で探す!とすぐに見つかります.WP-WebAuthn を使う上に書いた通り,...

しかし,このままだとグローバルどころかローカルからも WordPress にアクセスできませんし,SSL にも対応できません.これを可能にするのが Cloudflared です.

手を動かしながら学ぶDocker入門: たった1冊でDockerを完全マスター!
Dockerを学習するためには、以下のような順番でDockerを学んでいきます。 本書は、以下の環境で動作確認しています。⚫︎ OS・Windows:10以上・Mac:Sonoma 14.5以上⚫︎ Docker:27.5.1⚫︎ Dock...

Cloudflared の導入と WordPress の公開

Cloudflared はローカルサーバーやネットワークを CDN 運営大手の Cloudflare のネットワークを介して安全に外部に公開できるクライアントサイドプログラムです.ファイヤーウォールやルーターでポートを公開する必要なく,手軽にサーバーをインターネットに公開できます.同様のサービスとして Tailscale が有名どころでしょうか.

他のサイトの記事だと,Cloudflared もコンテナに含めて構築することが一般的みたいですが,私の場合は,Ubuntu 24.04 Server に直接導入しました.というのも,この blog 以外に,

ピヨ日記
ピヨピヨな毎日!

という(長いこと更新してないですが)blog も同じサーバーにあり,別々に Cloudflare へのトンネルを作る必要はないと思ったからです.前節の docker-compose.yaml 内で,コンテナの IP アドレスを明示的に指定しているのはこれが理由です.

この Cloudflared の設定と WordPress の公開ですが,細かく書くと記事が長くなりすぎるので,大まかな流れだけ以下示します.なお,以下は Cloudflare でドメインを管理している場合です(したがって,すでに Cloudflare にアカウントは作成されているという前提です).

  1. Coudflare にログインして,左のメニューから,Zero Trust を選択する
  2. 左のメニューから「ネットワーク」=>「コネクタ」の順に選択する
  3. 右のペインから「+ トンネルを作成する」を選択して「Cloudflared」を選ぶ
  4. 適当なトンネル名を付けて「トンネルを保存」
  5. 指示にしたがい,コネクター(Cloudflared のこと)をサーバーにインストール
  6. パブリックホスト名とサービスを設定し保存する

パブリックホスト名は,本 blog の場合だと,

  • サブドメイン: www
  • ドメイン: labohyt.net

です.この設定を行うとドメインの DNS の内容が書き変わります(CNAME に www.labohyt.net に対応する部分が追加される).サービスは,

  • HTTP
  • 10.**.**.2:80(docker-compose.yaml で指定した WordPress の IP アドレス)

です.それからこれは多分なくても大丈夫ですが,私の場合は,さらに「その他のアプリケーション設定」=>「HTTP 設定」の HTTP ホスト ヘッダーに「www.labohyt.net 」を設定しました.Wordpress の公開は SSL 対応を含めてこれで終了です.

Astro × GitHub × Cloudflareで学ぶモダンWeb開発
モダンなWeb フレームワークとして認知されている「Astro」を用いたWeb 開発の基礎がわかる1冊。単なるサイト制作だけでなく、GitHubリポジトリによるソースコードの管理や、サイトの公開に欠かせないCloudflareを利用したデプ...

新環境へのデータ移行

新環境へのデータ移行手順の概略は以下の通りです.

  1. /var/lib/containers/volumes/hytadv/html/wp-content 以下に バックアップした plugin, themes, uploads の内容を書き込み
  2. phpMyAdmin でバックアップした MariaDB のデータをインポート
  3. phpMyAdmin でデータベース項目 wp_options 以下にある siteurl と home の値を https://www.labohyt.net/blog から https://www.labohyt.net に書き換え

注意として,新環境のコンテナとして立ち上げた phpMyAdmin ですが,標準のまま起動すると,データベースに一度にインポートできる容量がわずか2Mと,移行に全く足りません.これを緩和するのが,前々節の docker-compose.yaml の

environment:
  - MEMORY_LIMIT=1024M
  - UPLOAD_LIMIT=1024M

の記述です.

また,phpMyAdmin は,同じ docker-compose.yaml 内で,

ports:
  - 8888:80

としていますので,http://[Ubuntu server IP Adress]:8080 でアクセスできます.また,データベースにアクセスするためのユーザー名とパスワードも同じ docker-compose.yaml 内に記されている通りです.

実践マスター PHP+MySQL PHP5対応
本書は、Webアプリケーション作成では広く普及し、もはやWeb開発の定番ともいえるPHPとMySQLの解説書です。  WebサーバのApache、スクリプト言語のPHP、データベースのMySQL、そしてMySQLを直感的に操作できるソフトウ...

移行雑感

ということで,当初予想よりかなり難航したのですが,なんとか半日くらいで完全に移行を終えることができました.

使える資源が大きく違うせいでしょうね.blog のレスポンスが大きく向上し,記事がとても書きやすくなりましたし,Wordpress の設定もとても変更しやすくなりました.せっかくなので,見た目についても特にフォント周りを見直し,より記事を読みやすいようにしたつもりです.

引越しの関係でしばらく blog の記事自体を更新できていなかっただけでなく,blog 環境自体もあまりメインテナンスできておらず少し気がかりでしたが,ようやくこれが完全に解消できました.これから少しでも記事の更新頻度を高くできたらなと思っています.

以上

ブログ歴17年のプロが教える売れる文章術 ブログライティングの教科書
【本書の構成】 第1章 お金を稼げる収益ブログを作る 第2章 10の手順でできるブログ記事の書き方 第3章 プロが実践するライティングテクニック 第4章 いま知っておきたいSEO対策 第5章 読者をひきこむ文章力を鍛える方法 第6章 プロが...
EnvironmentServer
スポンサーリンク
Following hyt!
タイトルとURLをコピーしました