1つのUbuntu マシンで、2つの WordPress 5.1.1 システムを動かす(Apache2 の VirtualHost 機能を利用)
ユースケース:WordPress を使いたい。そして、異なる2つの WordPress システムを運用したい。このとき、マシンは1台で済ませたい。
方針:1つの Ubuntu マシン(IPアドレスは1つ)に、異なる2つのマシン名(www.example.com と www.hoge-client.com)を割り当てる。そのためのドメイン名取得と DNS サーバ設定は、前もって済ませておく。 そして、Webサーバ(Apache2)の側では、リスエスト URL に一方のマシン名(例えばwww.example.com)があれば、ある所定のディレクトリを、 別のマシン名(例えばwww.hoge-client.com)があれば、別の所定のディレクトリを使うというように設定する。 マシン名によって、ディレクトリを変えるために Apache2 の VirtualHost 機能を使う。 あとは、これら2つのディレクトリに、別の WordPress システムをインストールする。
このページでは、すでに WordPress が動いている Ubuntu マシンで、そのWordPressの設定などには手を加えずに、新しくWordPressシステムを動かす手順を説明する.ここでの設定は次の通りです.
- MariaDB データベース名: added_database
- MariaDB データベースのキャラクタセット: utf8mb4_general_ci;
- MariaDB ユーザ名: added_dbuser
- DocumentRoot: /var/www/html/added
- Apache2 設定ファイル: /etc/apache2/sites-available/added-wordpress.conf
- Apache2 ServerName: hoge-client.com
- Apache2 ServerAlias: www.hoge-client.com
目次:
【関連する外部ページ】
前準備
DNS サーバ
DNS サーバに、次の2つについて登録しておくこと。ドメイン名は前もって取得しておくこと(なので、下にあるマシン名は、そのまま使ってはいけないのは当然です)。
- Apache2 ServerName: hoge-client.com
- Apache2 ServerAlias: www.hoge-client.com
システム、パッケージの更新
端末を開き,次のように操作(端末を開くには,右クリックメニューが便利)
sudo apt -y update sudo apt -yV upgrade
Apache2, MariaDB, WordPress のインストール
Ubuntu での Apache2, MariaDB, WordPress のインストール手順は、 別ページで説明
WordPress用データベースの新規作成
- 端末を開く
- MariaDB にログイン
sudo mysql -u root -p (Ubuntu のパスワードを入れる)
- データベース作成コマンド
データベース名: added_database
データベースのキャラクタセット: utf8mb4_general_ci;
ユーザ名: added_dbuser
「<パスワード>」のところは適切にパスワードを設定すること
create database added_database character set utf8mb4 collate utf8mb4_general_ci; create user 'added_dbuser'@'localhost' identified by '<パスワード>'; grant all on added_database.* TO 'added_dbuser'@'localhost' identified by '<パスワード>' with grant option; flush privileges; exit;
WordPress用データベースのダウンロードと設定
- WordPress の Web ページを開く
- 「Download WordPress」をクリック
- 最新版のダウンロード
- zip ファイルのダウンロードが始まる。ファイル名とディレクトリ名を確認
- WordPress の zip ファイルを展開(解凍)
「wordpress-5.1.1.zip」のところは、先ほど確認したファイル名に読み替える
unzip wordpress-5.1.1.zip sudo mv wordpress /var/www/html/added sudo chown -R www-data:www-data /var/www/html/added sudo chmod -R 755 /var/www/html/added
- /etc/apache2/sites-available/added-wordpress.conf の新規作成
「hoge-client.com」と 「www.hoge-client.com」のところは、サイト名に合わせて設定すること。
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/added ServerName hoge-client.com ServerAlias www.hoge-client.com <Directory /var/www/html/added> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/added-error.log CustomLog ${APACHE_LOG_DIR}/added-access.log combined </VirtualHost>
- /etc/apache2/sites-available/added-wordpress.conf の有効化と、rewrite モジュールの有効化
sudo a2ensite added-wordpress.conf sudo a2enmod rewrite sudo systemctl restart apache2.service
- Apache2 の動作確認
Web ブラウザで http://localhost/added を開く。
次のような画面が開けば OK
確認したら Web ブラウザを閉じる
- Apache2 の動作確認
今度は、Web ブラウザで、ServerAlias に指定した http://www.hoge-client.com を開く。
確認したら Web ブラウザを閉じる
- wp-config.php の設定
- サンプルファイルのコピー
sudo cp /var/www/html/wp/wp-config.php /var/www/html/added/wp-config.php
- /var/www/html/added/wp-config.php を次のように書き換える
「<パスワード>」のところは先ほど設定したパスワードをそのまま書く
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'added_database'); /** MySQL database username */ define('DB_USER', 'added_dbuser'); /** MySQL database password */ define('DB_PASSWORD', '<パスワード>'); /** MySQL hostname */ define('DB_HOST', 'localhost'); /** Database charset to use in creating database tables. */ define('DB_charset', 'utf8mb4'); /** The Database Collate type. Don't change this if in doubt. */ define('DB_COLLATE', 'utf8mb4_general_ci');
- サンプルファイルのコピー
WordPress のインストール
- Web ブラウザで http://localhost/added を開く。
- 「日本語」を選ぶ。「続ける」をクリック
- サイトのタイトル、WordPress のユーザ名、パスワード、電子メールアドレスを設定。WordPress をインストールする。
- 「成功しました!」と表示されるので確認。ログインしてみるために「ログイン」をクリック
- いま設定したユーザ名、パスワードでログイン
- ダッシュボードが表示される
Let's Enctypt に関する設定(書きかけ)
- 端末を開く
- Apache2, MariaDB, PHP のインストール
sudo apt -y update sudo apt -y install python-certbot-apache
- SSL/TLS 証明書の取得
「hoge-client.com」と 「www.hoge-client.com」のところは、サイト名に合わせて設定すること。
「2: Redirect」に設定する
sudo certbot --apache -m admin@hoge-client.com -d hoge-client.com -d www.hoge-client.com
- added-wordpress.conf に次を追加する
「hoge-client.com」と 「www.hoge-client.com」のところは、サイト名に合わせて設定すること。
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/added ServerName hoge-client.com ServerAlias www.hoge-client.com <Directory /var/www/html/added> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/added-error.log CustomLog ${APACHE_LOG_DIR}/added-access.log combined </VirtualHost> RewriteEngine on RewriteCond %{SERVER_NAME} =hoge-client.com [OR] RewriteCond %{SERVER_NAME} =www.hoge-client.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
- /etc/apache2/sites-available/hoge-client.com-le-ssl.conf の設定
「hoge-client.com」と 「www.hoge-client.com」のところは、サイト名に合わせて設定すること。
<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/added ServerName hoge-client.com ServerAlias www.hoge-client.com <Directory /var/www/html/added> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/added-error.log CustomLog ${APACHE_LOG_DIR}/added-access.log combined SSLCertificateFile /etc/letsencrypt/live/hoge-client.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/hoge-client.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule>
- 証明書の更新
次のコマンドを実行.
sudo certbot renew --dry-run
- 月に1回の自動更新
「sudo crontab -e」を実行し、次のように設定
0 1 * * * /usr/bin/certbot renew & > /dev/null