1つのAWSインスタンスで2つのドメイン、2つのWordPress環境を作成する方法

AWS

下記前提で、1つのAWSインスタンスに2つのドメインと2つのWordPressコンテンツ(フォルダ)を作成する方法を記事にする。

  • AWSインスタンス はLightSailとする
  • urlはドメインだけで(ディレクトリ指定無しで)、/var/www/html/<そのドメイン用wpコンテンツ>と紐付く形とする
  • SSL設定を行う

AWS、お名前ドットコムのユーザ登録や請求先設定(VISA等の登録)、Teratermの設定、等は説明を割愛する。

サーバセットアップ

ドメイン取得

お名前ドットコム(https://navi.onamae.com/domain/search)で、

domain1-sapporo と、 domain2-okinawa を検索

今回は、.jpと.netにあえて、バラしてみる。

目的は、ブログ・ホームページ を選択し、次へ、申し込む。

LightSailインスタンスの作成

LightSailページへアクセス(https://lightsail.aws.amazon.com)、

インスタンスの作成 を選択し、

オペレーティングシステムのみ、今回は5$のものを選択する。

IPアドレス割付け

作成したインスタンスを選択

静的IPをアタッチする → 作成およびアタッチ

静的IPアドレスが割り当てられた事を確認

Teratermでアクセス

作成したインスタンスを選択し、
接続タブから デフォルトキーのダウンロード
重要なファイルなので厳重管理する。 

静的IPや格納したデフォルトキーの場所を記載したTeratermマクロを作成

;—————————————————
; ホスト/ユーザ名/パスワード/鍵ファイル格納場所
;—————————————————
username = ‘ec2-user’
passwd = ”
hostname = ‘54.248.224.19’
rsapath = ‘E:/work/Private/Pass/LightsailDefaultKey-ap-northeast-1.pem’

;—————————————————
; コマンド文字列作成
;—————————————————
cmdstr = hostname
strconcat cmdstr ‘:22 /ssh /auth=publickey /user=’
strconcat cmdstr username
strconcat cmdstr ‘ /passwd=’
strconcat cmdstr passwd
strconcat cmdstr ‘ /keyfile=’
strconcat cmdstr rsapath

;—————————————————
; コマンド実行
;—————————————————
connect cmdstr
wait ‘ec2-user’

;—————————————————
; Rootへ変更、作業フォルダへ移動
;—————————————————
dispstr #$1b”[8;50;200t”
sendln ‘sudo su -‘
sendln ‘cd /var/’
sendln ‘ls * -ltrh’

実行して、アクセスできている事を確認。 一回目はこのような確認画面が表示されるが問題ない。

DNSゾーンの作成

左のタブのドメインとDNS → DNSゾーンの作成


domain1-sapporo.jp を入力して、DNSゾーンの作成。


ネームサーバーレコードをメモしておく事。


割り当てタブから、リソースを選択し、さきほど作成した静的IPを指定し、割り当てる。


同じ事(DNSゾーンの作成、割り当て)を、domain2-okinawa.net に対して実行

Apacheのインストール

dnf update -y
dnf install -y httpd

Apacheを起動し、必要に応じて自動起動設定を有効にする

systemctl start httpd
systemctl enable httpd

ブラウザから、さきほど設定した静的IPアドレスへアクセス。
http://54.248.224.19
It works! の表示がされる。

MariaDBのインストール

vi /etc/yum.repos.d/MariaDB.repo

下記内容を保存

MariaDB 11.4 LTS repository list

[mariadb]
name = MariaDB
baseurl = https://rpm.mariadb.org/11.4/rhel/9/x86_64
gpgkey=https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1

キャッシュ更新

dnf clean all
dnf makecache

インストール

dnf install MariaDB-server MariaDB-client

自動起動設定と、1回目の起動

systemctl enable mariadb
systemctl start mariadb

インストールしたバージョン確認

mariadb –version

初期設定

mariadb-secure-installation

パスワードは覚えておく。 

Disallow root login remotely?
Remove test database and access to it?

だけY、それ以外はnを選択

アクセス確認

mysql -u root -p

パスワード入力が必要となる。 MariaDB のコマンド入力画面に遷移する事を確認。 

show databases;

で、データベース一覧が表示される事の確認

exit;

でMariaDBコマンドモードから戻れる。

pythonのインストール

dnf install python3.12

echo ‘alias python3=/usr/bin/python3.12’ >> /root/.bashrc
source /root/.bashrc

python -V

でインストールしたバージョン確認

PHPのインストール

dnf list –available php*

8.4がある事を確認

dnf install php8.4
dnf install php-fpm php-mysqli php-json php php-devel

php -v

でversion確認

タイムゾーンの変更

cp /etc/localtime /etc/localtime.20251122
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
cp /etc/sysconfig/clock /etc/sysconfig/clock.20251122

vi /etc/sysconfig/clock

で内容を下記へ変更

ZONE=”Asia/Tokyo”
UTC=false

ネームサーバーレコードを設定

お名前ドットコムの、左メニューのネームサーバー/DNS → ネームサーバー設定 を選択

domain1-sapporo.jp にチェックを入れてその他サービスタブを選択し、ネームサーバー情報4つを入力。 最初3つした入力欄が無いが、+ボタンで4つ目を追加。 

同じ事を、domain2-okinawa.net に対して実行。

30分ほど待って
http://domain1-sapporo.jp/
http://domain2-okinawa.net/
へアクセス。

SSL化

LightSailコンソールから、作成したインスタンス → ネットワーキングタブ → ルールの追加 →  → HTTPS → 作成

mod_sslインストール

dnf install mod_ssl

certbotインストール

dnf install -y python3 augeas-libs pip
python3 -m venv /opt/certbot/
/opt/certbot/bin/pip install –upgrade pip
/opt/certbot/bin/pip install certbot
ln -s /opt/certbot/bin/certbot /usr/bin/certbot

証明書取得

systemctl stop httpd
certbot certonly –standalone -d domain1-sapporo.jp
certbot certonly –standalone -d domain2-okinawa.net

vi /etc/httpd/conf.d/ssl.conf

の最後へ下記を追加

<VirtualHost *:443>
ServerName domain1-sapporo.jp
#DocumentRoot /var/www/html/index.html
ErrorLog logs/ssl_error_log_sapporo
TransferLog logs/ssl_access_log_sapporo

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domain1-sapporo.jp/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain1-sapporo.jp/privkey.pem
</VirtualHost>


<VirtualHost *:443>
ServerName domain2-okinawa.net
#DocumentRoot /var/www/html/index.html
ErrorLog logs/ssl_error_log_sapporo
TransferLog logs/ssl_access_log_sapporo

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domain2-okinawa.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain2-okinawa.net/privkey.pem
</VirtualHost>

https://domain1-sapporo.jp
https://domain2-okinawa.net
へアクセス

WordPressインストール

DB作成

mysql -u root -p ※パスワード入力が必要
CREATE DATABASE db_wp_sapporo;
CREATE USER ‘user_wp_sapporo’@’localhost’;
SET PASSWORD FOR user_wp_sapporo@localhost = PASSWORD(‘pass_user_wp_sapporo’);
GRANT ALL ON db_wp_sapporo.* TO user_wp_sapporo@localhost;
exit;

WordPressインストール

フォルダ作成

cd /var/www/html/
mkdir wp_sapporo

作成したフォルダへ移動し、DLして、解凍

cd wp_sapporo
wget http://ja.wordpress.org/latest-ja.zip
unzip latest-ja.zip

wordpressフォルダが生成されるので、そこへ移動し、1つ上のフォルダへ全ファイル移動、1つ上のフォルダへし、workpressフォルダとzipファイルは削除

cd wordpress/
mv * ../
cd ..
rm -r wordpress
rm latest-ja.zip

wp_sapporo 配下を全てapache所有へ変更

chown -R apache:apache /var/www/html/wp_sapporo

wp-config.phpを編集(コピーをとってから)

cp wp-config-sample.php wp-config.php
vi wp-config.php

DB_NAME、DB_USER、DB_PASSWORD、を上記で設定したDB、ユーザ、パスワードへ変更
ユニークキー(AUTH_KEY ~ NONCE_SALT)は、
https://api.wordpress.org/secret-key/1.1/salt/
のユニークキー生成サイトで生成したものを、そのままコピー

SSLアクセス時のコンテンツ指定

/etc/httpd/conf.d/ssl.conf

の、SSL Virtual Host Context 以下、”<VirtualHost>”から、”</VirtualHost>”までのすべてを削除して、
NameVirtualHost *:443

を追記。

/etc/httpd/conf.d

の下に、ドメインごとに新規ファイルで、VirtualHostディレクティブのファイルを作成します。

vi domain1-sapporo.conf

<Virtualhost *:443>
	DocumentRoot   "/var/www/html/wp_sapporo"
	ServerName     domain1-sapporo.jp:443
	 
	SSLEngine   on
	SSLProtocol   all -SSLv2 -SSLv3 -TLSv1
	SSLCertificateFile           /etc/letsencrypt/live/domain1-sapporo.jp/cert.pem
	SSLCertificateKeyFile     /etc/letsencrypt/live/domain1-sapporo.jp/privkey.pem
	SSLCertificateChainFile  /etc/letsencrypt/live/domain1-sapporo.jp/fullchain.pem
	ErrorLog       logs/error_log_sapporo
	CustomLog   logs/access_log_sapporo common

	<Directory "/var/www/html/wp_sapporo/">
	</Directory>
</Virtualhost>

systemctl restart httpd

※参考にしたサイト

 https://dotiga.software/linux/apache/2022-to-open-multiple-ssl-web-sites-with-name-based-virtualhost

初期アクセス

https://domain1-sapporo.jp にアクセスし、

	サイトのタイトル	札幌情報
	ユーザー名			editor_sapporo
	パスワード			Wp_Sapporo9821!
	メールアドレス		codecreare@gmail.com

を入力し、インストールボタン。

DB作成 からここまでの工程を、
https://domain1-sapporo.jp 関連の部分(domain, db名、ユーザ名、etc…)を
https://domain2-okinawa.net 関連に読み替えて、実施

コメント

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