WordPress+VPSで自分のサイトを立ち上げる手順(実体験ベース)

PR

本記事は広告(アフィリエイト)を含みます。

個人事業主やフリーランスがサイトを持つ場合、レンタルサーバーの共有プランを選ぶ人が多いですが、コストを抑えつつ自由度も欲しいなら「VPS + Docker + WordPress」という構成も選択肢に入ります。この記事では、実際にVPS上にWordPress環境を構築した手順と、つまずいたポイントをそのまま共有します。

全体の流れ

  1. VPSにSSHで接続する
  2. Dockerを導入する
  3. Docker ComposeでWordPress + MySQL + Nginxを構築する
  4. WP-CLIで初期設定・プラグイン導入を行う
  5. (次のステップ)独自ドメインとSSLを設定する

Docker Composeで環境を構築する

WordPress・MySQL・Nginxの3つのコンテナを、docker-compose.ymlひとつでまとめて管理します。最小構成の例は以下の通りです(パスワード類は必ずランダム生成した値に置き換えてください)。

services:
  db:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: (ランダム生成する)
      MYSQL_ROOT_PASSWORD: (ランダム生成する)
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    image: wordpress:php8.3-fpm
    depends_on:
      - db
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: (ランダム生成する)
    volumes:
      - wp_data:/var/www/html

  nginx:
    image: nginx:alpine
    depends_on:
      - wordpress
    ports:
      - \"80:80\"
    volumes:
      - wp_data:/var/www/html
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro

volumes:
  db_data:
  wp_data:

ポイントは、WordPress本体のデータ(wp_data)とデータベースのデータ(db_data)をそれぞれ独立したボリュームにしておくことです。コンテナを作り直しても中身が消えません。

つまずいたポイント:WP-CLIでの権限エラー

初期設定をWP-CLIで一気に済ませようとしたところ、2つのエラーにぶつかりました。

1つ目: wp-config.phpが環境変数からDB接続情報を読む構成になっていたため、一時起動したWP-CLIコンテナに同じ環境変数を渡していないと接続エラーになりました。WordPressコンテナと同じ環境変数を、WP-CLI実行時にも指定することで解決しました。

2つ目: WordPressコンテナ内のファイル所有者が特定のUID(33)で動いているのに対し、WP-CLIコンテナを別のUIDで実行していたため、ファイル書き込み権限のエラーが発生しました。WP-CLIコンテナの実行ユーザーをWordPress側と同じUIDに揃えることで解決しました。

Dockerで複数コンテナを組み合わせる場合、「どのコンテナが」「どのユーザー権限で」「どのボリュームを触るか」を揃えておくのが地味に重要なポイントです。

最低限入れておきたいプラグイン3つ

  • Rank Math SEO — タイトル・メタディスクリプションの管理、サイトマップ生成など、SEOの基本設定をまとめて行える
  • WP Super Cache — ページの表示速度を上げるキャッシュプラグイン。有効化するだけでなく、実際にキャッシュファイルが生成されているかまで確認するのがおすすめ
  • Wordfence Security — 不正アクセスやマルウェアスキャンに対応するセキュリティプラグイン

これらはWP-CLIから一括インストール・有効化できるので、サイトを量産する場合はスクリプト化しておくと毎回の作業が数分で終わります。

次にやること:独自ドメインとSSL化

ここまででサイトはIPアドレスでアクセスできる状態になりますが、実運用にはドメインの取得とSSL(https)化が欠かせません。この部分は別記事で詳しく解説します。

まとめ

VPS + Docker + WordPressの構成は、レンタルサーバーに比べて自由度が高い反面、権限まわりでつまずきやすいという特徴があります。逆に言えば、一度型を作ってしまえば、2つ目・3つ目のサイトは驚くほど早く立ち上げられます。

本記事はアフィリエイト広告を含みます。紹介する商品・サービスへの申込み等により、当サイトが提携する事業者から成果報酬を受け取る場合があります。
上部へスクロール