この記事を書いた背景
さくらのVPSでWordPressブログを1つ運営していたが、同じサーバーでもう1つ別のWordPressブログを立ち上げたいと思ったため。
今後、さらに追加でブログを立ち上げる際のメモ書きとして、この記事を残しておきます。
環境
さくらVPSの初期設定から、1つ目のWordPressインストールまでの流れは、下記の記事を参考に設定。
[ネコでもわかる!さくらのVPS講座 〜第一回:VPSてなんだろう?〜][ネコでも]
[ネコでも]:https://knowledge.sakura.ad.jp/7938/
サーバー | さくらのVPS |
---|---|
独自ドメイン1 | example.com |
独自ドメイン2 | example.net |
Webサーバー | Apache2.4.6 |
OS | CentOS7 |
データベース | MySQL |
SSL | Let's Encrypt |
1つ目のWordPressブログを、example.com
という独自ドメインで運営している状態で、2つ目のWordPressブログを独自ドメインexample.net
で追加する場合の手順になります。
独自ドメインは、お名前ドットコムを使っています。
さくらVPS契約からWordPressをインストールするまでの流れ
さくらのVPSを契約してから、サーバーの初期設定、WordPressインストールまでの流れは下記のとおりです。
今回は、すでにWordPressを1つインストールしている状態なので、手順8以降を設定していきます。
1.さくらのVPS契約
2.標準OSのインストール(CentOS7)
3.Apache(もしくはnginx)をインストール
4.PHPインストール
5.MySQL(もしくはMariaDB)をインストール
6.phpMyAdminをインストール(※必須ではない)
7.ファイアウォールの設定(※自動で有効になる)
//ここから追加設定
8.独自ドメインの取得(example.net)
9.ネームサーバーの設定
10.Apacheのバーチャルホスト設定
11.Let’s Encryptの設定
12.WordPress用DBの作成
13WordPress(2個目)のインストール
14.ユーザーの作成と権限の付与
15.Wp-configの設定
9.ネームサーバーの設定
ドメイン側のネームサーバーの設定と、VPS側のネームサーバー設定を行います。
お名前ドットコムのネームサーバーを利用する方法と、さくらのネームサーバーを利用する方法の2つがあります。
手順は違いますが、どちらでも同じなので好きな方で設定してください。
手順は下記が参考になります。
お名前.comで取得したドメインをさくらVPSで使う
※ネームサーバーの設定は、反映に時間がかかる(最大72時間)ので、設定が上手く行かないなと思ったら、時間を空けて再度確認してください。
10.Apacheのバーチャルホスト設定
つづいて、Apacheのバーチャルホストを設定していきます。
バーチャルホストというのは、1つの仮想専用サーバー(VPS)上で複数のドメインを運用することができるシステムです。
root権限で作業してください。
まず、バーチャルホスト用のディレクトリを作成します。
追加したドメイン(example.net)のコンテンツを置くディレクトリです。
# mkdir /var/www/html/example.net
# chown vpsuser /var/www/html/example.net (ディレクトリのオーナーをvpsuserに変更)
ディレクトリを作成したら、/etc/httpd/conf.d
にvhost.conf
というファイルを作成し、バーチャルホストの設定を書き込んでいきます。
# vi /etc/httpd/conf.d/vhost.conf
//1個目のドメインexample.comの設定
<VirtualHost *:80>
ServerName example.com
DirectoryIndex index.html
AddDefaultCharset UTF-8
DocumentRoot /var/www/html //1個目のWordPressが入っているディレクトリを記入してください
<Directory "/var/www/html"> //1個目のWordPressが入っているディレクトリを記入してください
Require all granted
</Directory>
</VirtualHost>
//2個目のドメインexample.comの設定
<VirtualHost *:80>
ServerName example.net
DirectoryIndex index.html
AddDefaultCharset UTF-8
DocumentRoot /var/www/html/example.net //作成したディレクトリを記入してください
<Directory "/var/www/html/example.net"> //作成したディレクトリを記入してください
Require all granted
</Directory>
</VirtualHost>
作成したら、Apacheを再起動して設定を反映させます。
# systemctl reload httpd
ちなみに、restart
は全てのプロセス(WEBサービス)を一旦停止させてから、起動しなおすので、一瞬だけサイトが落ちます。
サイトを落とさず、安全に設定を読み込みなおすには、reloadコマンド、またはgracefulコマンドを使います。
参考:Apacheの設定ファイル(httpd.conf)を安全に読み込む方法
また、service httpd reload
はCentOS6以前の書き方なので、CentOS7ではsystemctl reload httpd
を使います。
参考:apacheの起動,停止,再起動に関するまとめ
設定が反映されると、http://example.com
とhttp://example.net
を入力すると、それぞれ異なるページが表示されるようになります。
11.Let’s Encryptの設定
つづいて、サイトのページを暗号化通信で安全に公開するために、常時SSLの設定をしていきます。
簡単に言うと、URLのhttp
をhttps
にする設定です。
無料のSSL証明書発行サービスであるLet’s Encryptというサービスを利用します。
まず、さきほど作成した/etc/httpd/conf.d
にvhost.conf
にSSLの設定を追記します。
# vi /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerName example.com
DirectoryIndex index.html
AddDefaultCharset UTF-8
DocumentRoot /var/www/html
//httpでアクセスがあった場合に、リダイレクトさせる指示
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
<Directory "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
//SSLの設定を追記
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/exapmle.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/exapmle.com/fullchain.pem
</VirtualHost>
<VirtualHost *:80>
ServerName example.net
DirectoryIndex index.html
AddDefaultCharset UTF-8
DocumentRoot /var/www/html/example.net
//httpでアクセスがあった場合に、リダイレクトさせる指示
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
<Directory "/var/www/html/example.net">
Require all granted
</Directory>
</VirtualHost>
//SSLの設定を追記
<VirtualHost *:443>
ServerName example.net
DocumentRoot /var/www/html/example.net
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/fullchain.pem
</VirtualHost>
編集したら、Apacheを再起動して設定を反映させます。
# systemctl reload httpd
その後、certbotコマンドを実行して、SSL証明書をインストールします。
--webroot -w
でディレクトリを指定し、-d
でドメインを指定します。
certbotコマンドは、バージョンによって使えないことがあるので、適宜変更してください。(コマンドはググれば出てきます)
# certbot certonly --webroot -w /var/www/html -d example.com -w /var/www/html/example.net -d example.net
1個目のWordPressインストール時、すでにSSL証明書を発行している場合は、「expand?(拡張しますか?)」と聞かれるのでYesを入力してください。
完了すると
http://example.com
とhttps://example.com
http://example.net
とhttps://example.net
がそれぞれ同じページにアクセスできるようになります。
12.WordPress用DBの作成
MySQLで、追加するWordPress用のデータベースを作成します。
MySQLをインストールしていない場合は、下記のページを参考に設定してください。
MySQLの設定(CentOS 7)
MySQLにrootでログインして、データベースの作成と権限の付与を行います。
# mysql -u root -p
Enter password:
mysql> create database example_net_db;
mysql> grant all privileges on examplen_net_db.* to 'example_net_user'@'localhost';
mysql> flush privileges;
mysql> exit
//ここでは、examplen_net_dbがデータベース名、example_net_userがユーザーネームです
MySQLからログアウトした後、ユーザーネームexample_net_user
でログインし、データベースが作成されていることを確認します。
# mysql -u example_net_user -p
Enter password:
mysql> show databases;
+-----------------------+
| Database |
+-----------------------+
| examplen_net_db |
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpressdb |
+-----------------------+
6 rows in set (0.02 sec)
mysql> exit
13WordPress(2個目)のインストール
ここまできたら、いよいよ2個目のWordPressをインストールしていきます。
まず、WordPressの公式サイト(https://ja.wordpress.org/download/)で、最新のWordPressファイル(.tar.gz形式)をダウンロードします。
ローカルを経由せず、直接サーバーにダウンロードする場合は、wgetコマンド
を使います。
# wget https://ja.wordpress.org/latest-ja.tar.gz
# tar -xzvf latest-ja.tar.gz
http://xxx.xxx.xxx.xxx/wordpress
ではなく、http://xxx.xxx.xxx.xxx/
でWordPressにアクセスできるようにしたいので、wordpressディレクトリの下にあるすべてのファイルを、ドメインexample.net
のドキュメントルート/var/www/html/example.net
にmvコマンドで移動させます。
# mv wordpress/* /var/www/html/example.net
# rmdir wordpress
14.ユーザーの作成と権限の付与
つづいて、さきほどインストールしたWordPressファイルが、apacheユーザー、vpsuserユーザーのいずれでも更新できるようにするため、すべてのファイルの所有者をapacheにして、グループをvpsuserにします。
そしてグループに書き込み権限をつけておきます。
# chown -R apache:vpsuser *
# chmod -R g+w *
15.Wp-configの設定
さいごに、WordPressの基本設定を行うwp-config.php
の編集を行います。
wp-config-sample.php
というファイルがあるので、そのファイルをコピーしてwp-config.php
を作成、編集していきます。
# cd /var/www/html/example.net
# cp wp-config-sample.php wp-config.php
# vi wp-config.php
データベース名、ユーザー名、パスワードの欄をそれぞれ設定した値に変更します。
define('DB_NAME', 'examplen_net_db');
/** MySQL database username */
define('DB_USER', 'examplen_net_user');
/** MySQL database password */
define('DB_PASSWORD', 'password for examplen_net_user');
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', '*');
define('SECURE_AUTH_KEY', '*');
define('LOGGED_IN_KEY', '*');
define('NONCE_KEY', '*');
define('AUTH_SALT', '*');
define('SECURE_AUTH_SALT', '*');
define('LOGGED_IN_SALT', '*');
define('NONCE_SALT', '*');
下から8行のAUTH_KEYなどは、Authentication Unique Keys(認証キー)で、https://api.wordpress.org/secret-key/1.1/salt/が出力する64桁のランダムな文字列を入力します。
インストールスクリプトの実行
以上でWordPressをインストールするまでの設定は終了です。
https://example.net/wp-admin/install.phpにアクセスして、WordPressのインストール画面が表示されたら、サイト名などを入力し、WordPressをインストールします。
参考にしたサイト
- 複数のウェブサイトを1つのVPS上に作るための環境作り(Apache + MySQL + PHP + WordPress / Ubuntu / Linode)
- [ネコでもわかる!さくらのVPS講座 〜第一回:VPSてなんだろう?〜][ネコでも]
- お名前.comで取得したドメインをさくらVPSで使う
- Apacheの設定ファイル(httpd.conf)を安全に読み込む方法
- apacheの起動,停止,再起動に関するまとめ