ConoHaVPS上でのWordPressの構築

 そういえば、VPS上にWordpressを導入するまでの作業を記事にしていなかったので備忘メモとして書いていこう。主な手順は3つ。

  1. Dockerのインストール
  2. WordPress+MariaDBのインストール
  3. ホスト側Nginxでのリバースプロキシ設定

Dockerのインストール

 何はともあれ、Ubuntuには何も入っていないのでDocker本体をインストール。コマンドはChatGPTに聞くと教えてくれます。

WordPress+MariaDBのインストール

 過去の記事でも書いたようにこのドメインはメインサイトの「ytk-web.net」とブログサイト「blog.ytk-web.net」に分けているので、Ubuntuのフォルダの構成を「~/apps/django」と「~/apps/wordpress」に分けてます。

 Dockerではコンテナを作成するときにYAMLファイルに必要な設定情報を書いていきます。YAMLファイルに記載する内容もChatGPTが教えてくれます。詳しくは書きませんが、1つのコンテナにWordPress、MariaDB、Nginxを書きつつ、データを永続化するためのバインドマウントの記載を入れています。

 その他、コンテナ内のNginxが参照するConfigファイルを作成。中身はコンテナ内で待ち受けるポートやWordPressの実体ファイルが置かれているディレクトリ、PHPファイルの実行時のルールが記載されている。

 その後、docker compose up -dとコマンドを叩くとセットアップ完了。

ホスト側Nginxでのリバースプロキシ設定

 ChatGPTにお聞きすると、VPS上で複数のWebアプリ(WordPressやDjangoなど)をDockerコンテナで動かす場合、外部からのアクセスを直接コンテナに向けるのではなく、ホスト(Ubuntu)側のNginxが“交通整理役”として中継する構成にするのが一般的とのこと。これを「リバースプロキシ」と呼びます。

 リバースプロキシの役割はシンプルで、クライアント(ブラウザ)からのリクエストを受け取り、内部のコンテナへ転送(proxy_pass)することです。たとえば、ブログ用のWordPressコンテナが「127.0.0.1:8080」で動いているなら、ホストNginxは https://blog.ytk-web.net/ へのアクセスを受け取り、内部で http://127.0.0.1:8080/ に転送します。同様に、メインサイトのDjangoが「127.0.0.1:8081」で待ち受けていれば、https://ytk-web.net/ のアクセスをDjangoコンテナへ橋渡しします。

 実際の運用では、ホストNginxの設定ファイルを
  ~/sites-available/ytk-web.net(Django用)
  ~/sites-available/blog.ytk-web.net(WordPress用)
のように分けて管理し、それぞれで内部コンテナのポートに転送先を指定します。
 このようにして、1台のVPSの中で複数のWebサービスを安全かつ整理された形で運用できるようになります。

 実際の作業ではいろいろ詰まったので都度ChatGPTに聞いてなんとかWordPressが立ち上げられて、無事このようなブログ記事が書けるようになったのでした。