DockerでWordPress1号機を作る【量産前提の最適構成】

Wordpress

これからWordPressを5サイト以上運営する予定です。

そのため、直インストールではなく
Dockerで独立構成を作ることにしました。

今回はその「1号機」を作ります。

将来的に横展開できる設計です。


1. 今回の完成イメージ

Cloudflare Tunnel

Nginx

Docker
├─ wordpress1(PHP + WordPress)
└─ db1(MariaDB)

WordPressとDBはセットで独立。

これをコピペするだけで
2号機、3号機が作れる設計にします。


2. 作業ディレクトリ作成

まず専用ディレクトリを作ります。

mkdir -p ~/docker/wordpress1
cd ~/docker/wordpress1

3. docker-compose.yml を作成

nano docker-compose.yml

内容:

version: '3.8'services:
db:
image: mariadb:10.6
container_name: wp1_db
restart: always
environment:
MYSQL_DATABASE: wordpress1
MYSQL_USER: wpuser
MYSQL_PASSWORD: strongpassword
MYSQL_ROOT_PASSWORD: rootpassword
volumes:
- db_data:/var/lib/mysql wordpress:
image: wordpress:latest
container_name: wp1_app
restart: always
ports:
- "8081:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: strongpassword
WORDPRESS_DB_NAME: wordpress1
volumes:
- wp_data:/var/www/html
depends_on:
- dbvolumes:
db_data:
wp_data:

※ パスワードは必ず変更してください。

保存:

Ctrl + O → Enter
終了:

Ctrl + X


4. コンテナ起動

docker-compose up -d

確認:

docker ps

wp1_dbwp1_app が表示されれば成功。


5. 動作確認

ブラウザで:

http://サーバーIP:8081

WordPress初期画面が出ればOK。


6. Nginxと接続

Nginx側で設定追加:

sudo nano /etc/nginx/sites-available/wp1

内容:

server {
listen 80;
server_name tech.gotohsys.com; location / {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

有効化:

sudo ln -s /etc/nginx/sites-available/wp1 /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

7. Cloudflare Tunnel側

Cloudflare側で:

tech.gotohsys.com → http://localhost:80

に設定。

これで

Cloudflare → Nginx → Docker → WordPress

が完成。


8. この構成のメリット

  • サイトごとに完全独立
  • PHPバージョン衝突なし
  • DBも分離
  • バックアップ簡単
  • 2号機はコピペで作れる

9. 量産方法(超簡単)

wordpress1 フォルダをコピー:

cp -r wordpress1 wordpress2

ポート番号だけ変更。

8082, 8083…

これだけ。


10. 実際にやってみて

直インストールよりも、

「管理している感」があります。

壊れてもコンテナ単位で止められる。

これは大きな安心感です。


まとめ

複数WordPressを運営するなら、

Docker構成は最適解に近いです。

今回作った1号機は、

今後のテンプレートになります。

コメント

タイトルとURLをコピーしました