この記事では、Google Cloud (旧称:GCP) で OpenLiteSpeed (通称:LiteSpeed) で単一サーバーで複数ドメインの WordPress を構築します。
OpenLiteSpeed with WordPress で環境を構築後、ワンクリックスクリプトで追加の仮想ホスト WordPress を追加します。
Google Cloud での OpenLiteSpeed with WordPress サーバー構築
Google Cloud では、「OpenLiteSpeed」のソフトウェア パッケージが複数あります。
ここでは、WordPress がパッケージになっている「OpenLiteSpeed with WordPress」を使って 1 クリックで WordPress 環境を構築します。
![[Google Cloud] Marketplace で「LiteSpeed」を検索する](https://storage.4watcher365.dev/1e100/8d42fd3f-gcp_marketplace_search.png)
Marketplace ページを開き「OpenLiteSpeed with WordPress」で検索し、クリックします。
パッケージに含まれるソフトウェアとバージョンを確認し、「運用開始」クリックします。
このパッケージでは、Google Compute Engine で VMインスタンスで構築されます。
![[Google Cloud] OpenLiteSpeed with WordPress の詳細情報](https://storage.4watcher365.dev/1e100/2ae337a9-googlecloud_marketplace_litespeed-wordpress.jpg)
初めて行う場合は、「利用規約への同意」「各 API の有効化」を行います。
構築する VM インスタンスの設定を行い、「デプロイ」ボタンをクリックします。
また、初めて行う場合は、OpenLiteSpeed with WordPress 用のサービスアカウントを作成することになります。
ここでは「リージョン:東京」「マシンタイプ:e2-medium」「ディスク容量:30 GB」に変更しており、それ以外はデフォルト設定のままにしています。
デフォルト設定のため、IP アドレスはエフェメラルになります。VM を再起動する度に IP アドレスが変更されるため、後ほど静的 IP アドレスに変更します。
![[Google Cloud] 作成する VM インスタンスを設定する](https://storage.4watcher365.dev/1e100/d49536db-googlecloud_gce_setup.jpg)
すべてのプロダクトのステータスが「作成済み」になっていることを確認します。
先ほど設定した「VM インスタンス名」をクリックし、インスタンスの詳細情報ページに移動します。
![[Google Cloud] 作成されたデプロイメントの詳細情報](https://storage.4watcher365.dev/1e100/15662a6f-googlecloud_solution-deployed.jpg)
上部バーにある「編集」ボタンをクリックし、「IP アドレスを静的」を設定します。
![[Google Cloud] VM インスタンスの詳細情報](https://storage.4watcher365.dev/1e100/f3d4943d-googlecloud_gce_information.jpg)
ネットワーク インターフェース 欄の設定済み「default」を展開し、外部 IPv4 アドレスをタップし「外部的 IP アドレスを予約」を選択します。
そのIP アドレスの名称を入力し、下部バーの「保存」ボタンをクリックして、編集を終了します。
HTTP (ポート80) と HTTPS (ポート443) の解放は先程のデプロイメントで含まれており、ファイヤーウォールの設定済みのためチェックを入れません。

DNS の設定
契約しているドメインコントローラーで静的 IP アドレスを登録します。
今回は単一サーバーで複数ドメインでの WordPress 運用を行うため、A コードを使用します。

ターミナルでの操作
作成した VM インスタンスのページから「SSH」ボタンをクリックし、ターミナルを表示させます。
![[Google Cloud] VM インスタンスの詳細情報](https://storage.4watcher365.dev/1e100/f3d4943d-googlecloud_gce_information.jpg)
初めてターミナルを表示させると LiteSpeed で使用するドメインが求められます。

ドメインの登録が終わると Let’s encrypt での SSL 証明書の手続きに移行します。
登録したドメインで SSL 証明書を収録するため「Y」を入力します。、
問題なければ、「Requesting a certificate for {登録したドメイン}」が表示され、先程のドメインでSSL 証明書が取得できます。
続けて、HTTPS へのリダイレクト設定について質問されます。
「y」を入力すると自動的に .htaccess への書き換えが適用されます。
その後、Web サーバーのアップデート実行について質問されます。
「y」を入力すると最新の LiteSpeed へアップデートされますが PHP や MariaDB 等はアップデートされます

WordPress のインストール
この時点で Web サーバの構築は完了しています。
ドメインまたは IP アドレスでアクセスすると WordPress のインストール画面が表示されます。
使用する言語の選択 ~ 管理者アカウントの登録を行い、インストールを完了します。
![[WordPress] インストールする言語を選択する](https://storage.4watcher365.dev/1e100/141dd71b-wordpress_install.jpg)
仮想ホストを自動追加する
LiteSpeed にはListener 、仮想ホスト (VirtualHost) の自動作成、SSL 証明書の取得、WordPress のインストールを行うvhsetup.sh スクリプトがあります。
この vhsetup.sh スクリプトをダウンロードし、権限を与えてスクリプトを実行するコマンドを行います。
wget https://raw.githubusercontent.com/litespeedtech/ls-cloud-image/master/Setup/vhsetup.sh
chmod +x vhsetup.sh
sudo bash vhsetup.sh
vhsetup.sh スクリプトが実行されると、最初に追加する 仮想ホスト のドメインについて質問されるため、追加する仮想ホストで使用するドメインを入力します。
仮想ホストの登録が完了するとそのドメインでの SSL 証明書の取得手続きに移行します。
問題なければ、「Successfully received certificate.」が表示され、SSL 証明書の取得に完了になります。
最後に、HTTPS へのリダイレクト設定について質問されます。

追加した仮想ホストの WordPress をインストールする
LiteSpeed 管理コンソールに自動的に追加されているため、ドメインでアクセスすると WordPress のインストール画面を表示することができます。
使用する言語の選択 ~ 管理者アカウントの登録を行い、インストールを完了します。
![[WordPress] インストールする言語を選択する](https://storage.4watcher365.dev/1e100/141dd71b-wordpress_install.jpg)
LiteSpeed 管理コンソールにアクセスする
LiteSpeed 管理コンソールは、「http://{外部 IP アドレス}:7080/」でアクセスすることができますがポート 7080 は閉じているため、7080 へのアクセスを許可する必要があります。
すべての IP から7080 へのアクセスを許可するコマンドを行います。
sudo ufw allow 7080
設定が完了後は、7080 へのアクセスを不許可にして LiteSpeed 管理コンソールにアクセスできないようにしてください。
すべての IP から7080 へのアクセスを禁止するコマンドを行います。
ufw delete allow 7080
LiteSpeed 管理コンソールのユーザー名とパスワードを取得するために、次のコマンドを実行します。
cat /home/ubuntu/.litespeed_password
PHP をアップデートして lsphp を切り替える
このときには PHP 8.3.20 を使用していたため、lsphp83 でした。
最新版の PHP 84 にして lsphp84 に切り替えます。
必要な PHP 8.4 と基本的な拡張機能をまとめてインストールするコマンドを行います。
環境によって必要なパッケージが異なります。
sudo apt install lsphp84 lsphp84-common lsphp84-mysql lsphp84-opcache lsphp84-curl lsphp84-gd lsphp84-imagick php8.4-mbstring php8.4-xml php8.4-zip php8.4-imap php8.4-json php8.4-fpm -y
使用している PHP のバージョンを確認します。
php -v
LiteSpeed 管理コンソールにアクセスします。
左サイドバーから「Server Configuration」をタップし、「External App」をタップします。
WebAdmin コンソール > サーバー構成 > 外部アプリ を表示し、 lsphp の「編集」ボタンをタップします。

Command 項目の値を次に変更します。
lsphp83/bin/lsphp → lsphp84/bin/lsphp
sudo vim /usr/local/lsws/lsphp84/etc/php/8.4/litespeed/php.ini
sudo vim /usr/local/lsws/lsphp81/etc/php/8.1/litespeed/php.ini
WordPress のアップロード上限を変更する
WordPress のアップロード上限を動画や データインポートなどの大容量ファイルを扱えるようにアップロード上限を変更します。
SSH でターミナルを表示します。
vim で php.ini ファイルを編集するコマンドを実行します。
sudo vim /usr/local/lsws/lsphp84/etc/php/8.4/litespeed/php.ini
それぞれの値を、必要なアップロード上限に合わせて変更します。
upload_max_filesize = 1G
post_max_size = 1G
php.ini ファイルを保存して閉じます。
(:wp を入力して Enter )
PHP を再起動して先程の変更を適用します
sudo pkill lsphp
phpMyAdmin をアップデートする
最新版 phpMyAdmin をダウンロードし、展開されたディレクトリ名を phpmyadmin に変更して、phpmyadmin ディレクトリの所有者をウェブサーバーのユーザー (www-data) に変更するコマンドを実行します。
sudo rm -rf /var/www/phpmyadmin && \
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip -O /tmp/phpMyAdmin-latest.zip && \
sudo unzip -o /tmp/phpMyAdmin-latest.zip -d /var/www/ && \
sudo mv /var/www/phpMyAdmin-* /var/www/phpmyadmin && \
sudo chown -R www-data:www-data /var/www/phpmyadmin && \
rm -f /tmp/phpMyAdmin-latest.zip
MariaDB をアップデートする
MariaDB サーバーとクライアントをアップグレードします。
sudo apt update && sudo apt upgrade mariadb-server mariadb-client -y
MariaDB サーバーを再起動します。
sudo systemctl restart mariadb
使用している MariaDB サーバーのバージョンを確認します。
mysql -V
Certbot で Cloudflare DNS-01 認証を使用する手順
Certbot Cloudflare プラグインをインストールします。
sudo apt update
sudo apt install python3-certbot-dns-cloudflare -y
Cloudflare API 認証情報ファイルを作成します。
sudo vim /etc/letsencrypt/cloudflare.ini
ファイルに以下の内容を記述します。
# Cloudflare API credentials used by Certbot
dns_cloudflare_api_token = {YOUR_CLOUDFLARE_API_TOKEN}
ファイルの権限を制限して、セキュリティを強化します。
sudo chmod 600 /etc/letsencrypt/cloudflare.ini
Certbot を実行して DNS-01 認証で証明書を取得します。
sudo certbot certonly --dns-cloudflare -d {YOUR_DOMAIN} -m {YOUR_EMAILADDRESS} --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini --agree-tos
DNS-01 認証で SSL 証明書を取得した場合。LiteSpeed の Virtual Hosts には自動で設定されません。
そのため、LiteSpeed 管理画面にアクセスして「Virtual Hosts > SSL タブ}」で証明書と秘密鍵のパスを設定します。
設定後、LiteSpeed を再起動します。

SSL 証明書の自動更新の設定
Let’s Encrypt の SSL 証明書の有効期間は通常 3ヶ月 (90日間) です。
有効期限が切れると、ウェブサイトの HTTPS アクセスに問題が発生するため、定期的な再更新が必要です
ワンクリックインストールスクリプトや、Certbot を使用して手動で取得した場合、多くの場合、自動更新の設定も同時に行われています。
自動更新の設定の確認: 以下のコマンドを実行して、自動更新の設定がされているか確認します。
sudo systemctl list-timers | grep certbot
sudo crontab -l | grep certbot
これらのコマンドの出力に certbot.timer や certbot renew のような記述があれば、自動更新の設定がされている可能性があります。
自動更新のテスト:
以下のコマンドを実行して、自動更新をシミュレートしてみます。
実際には証明書は更新されませんが、設定が正しく動作するかどうかを確認できます。
エラーなく完了すれば、自動更新の設定は機能しています。
sudo certbot renew --dry-run
Leave a Reply
View Comments