Raspberry Pi Webサーバーの構築
nginx + WordPress
テスト用に複数のサイトを作る
nginx + WordPress
テスト用に複数のサイトを作る
nginxで稼働する本番サーバーに、
①.テーマの異なるWordPressを、複数・同時にテスト
②.パーマリンクが異なるWordPressを、複数・同時にテスト
①.テーマの異なるWordPressを、複数・同時にテスト
②.パーマリンクが異なるWordPressを、複数・同時にテスト
出来る環境を、構築した。
以下、NginxでWordPressをサブディレクトリに複数設置した記録。
スポンサー リンク
目 次
1. 環境とWordPressサイトの立上げ手順
稼働環境。
Raspbian : Buster with desktop Release date:2019-09-26
Nginx : Stable version 1.16.1
PHP : 7.3.12 – 2019.11.28
MariaDB : 10.3.17
WordPress 5.3.2
Nginx : Stable version 1.16.1
PHP : 7.3.12 – 2019.11.28
MariaDB : 10.3.17
WordPress 5.3.2
A:ルートディレクトリー。(HTML公開本番サイト)
B:サブディレクトリーのWordPress。(公開本番サイト)
C:サブディレクトリーのWordPress。(公開本番サイト)
B:サブディレクトリーのWordPress。(公開本番サイト)
C:サブディレクトリーのWordPress。(公開本番サイト)
D:Cの中に、さらにサブディレクトリーを作成すると、WordPressファイルの中にフォルダーが混じり管理が複雑になるので、作成しないほうが良い。
E:サブディレクトリーのWordPress。(テスト用のサイト)
F:サブディレクトリーのWordPress。(テスト用のサイト)
F:サブディレクトリーのWordPress。(テスト用のサイト)
WordPressサイトの URL について。
サブドメイン方式:
「https://sub.example.com/」
サブディレクトリー方式:
「https://example.com/sub/」
「https://sub.example.com/」
サブディレクトリー方式:
「https://example.com/sub/」
サブドメイン方式にするには、DNSサーバにリソースレコードを追加するドメイン設定が必要で、敢えてサブドメインにすることで得られるメリットもないので、サブディレクトリー方式にした。
テスト用の WordPress サイトを立上げる手順。
①. WordPress用のデータベースを作成する。
②. WordPressのダウンロード。
③. WordPress用のサブディレクトリを作成。
④. WordPressをサブディレクトリにアップロードする。
⑤. Nginxの設定を変更する。
⑥. WordPressのインストールと初期設定。
②. WordPressのダウンロード。
③. WordPress用のサブディレクトリを作成。
④. WordPressをサブディレクトリにアップロードする。
⑤. Nginxの設定を変更する。
⑥. WordPressのインストールと初期設定。
以下、サブディレクトリー「E:wp70」の立ち上げを中心に記述。
2. WordPress用のデータベース作成要領
Raspberry Pi のルート権限で実行。
WordPress用のデータベース作成
sudo su
mysql -u root
MariaDB [(none)]> use mysql
MariaDB [mysql]> create database dbname;
作成したデータベースに、ユーザー名とパスワードを設定。
MariaDB [mysql]> grant all on dbname.* to username@localhost identified by’password‘;
作成されたデータベースを確認する場合。
MariaDB [mysql]> show databases;
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> exit
dbname:WordPressで使用したいデータベース名。
username:データベースのユーザー名。
username:データベースのユーザー名。
password:データベースのパスワード。
これらの項目は、WordPressのインストール時点で入力が求められる。
3. WordPressのダウンロード
最新のWordPress日本語版をダウンロード。
mkdir /home/yaopi/work
sudo chmod 777 /home/yaopi/work
cd /home/yaopi/work/
wget https://ja.wordpress.org/latest-ja.tar.gz
tar -xzvf latest-ja.tar.gz
上記コマンドの説明:
ダウンロード用のディレクトリを作成。
最新のWordPressをダウンロードして展開する。
これで、【work】の中に【wordpress】が生成される。
ダウンロード用のディレクトリを作成。
最新のWordPressをダウンロードして展開する。
これで、【work】の中に【wordpress】が生成される。
4. サブディレクトリの作成とWordPressのアップロード
サブディレクトリの作成。
mkdir /home/yaopi/www/wp70
sudo chmod 777 /home/yaopi/www/wp70
sudo chown -R nginx:yaopi /home/yaopi/www/wp70
5. Nginxの設定
サーバー全体に関する設定ファイル:nginx.conf。
ドメイン毎(A,B,C別に)に、「conf.d」中に【server】ディレクティブ設定の「xxx.conf」を作成。
ドメイン毎(A,B,C別に)に、「conf.d」中に【server】ディレクティブ設定の「xxx.conf」を作成。
テストサイト「E,F」の Nginx設定は、ルートディレクトリーのサイト「A」の【server】ディレクティブ設定「A.conf」の中に【location】ディレクティブを記述した。
ルートディレクトリー「A」の、「nginx server ディレクティブ」の中に記述した【location】ディレクティブの設定。
# WordPress サブディレクトリーの設定
location / {
include conf.d/sub/wp60.conf;
include conf.d/sub/wp70.conf;
try_files $uri $uri/ /index.php?$args;
}
上記設定の説明:
サブディレクトリーの【location】ディレクティブだけを、【include】で外出しにした。
サブディレクトリーの【location】ディレクティブだけを、【include】で外出しにした。
サブディレクトリーの、「nginx location ディレクティブ」の設定。
location ~ ^/wp70/(.+\.php) {
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
set $do_not_cache 0;
### wordpress check to do not cache.
# -- POST or HEAD ?
if ($request_method != "GET") {
set $do_not_cache 1;
}
# -- Login or Comment or Post Editting ?
if ($http_cookie ~ ^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$) {
set $do_not_cache 1;
}
fastcgi_cache wp60;
fastcgi_cache_valid 200 60m;
fastcgi_no_cache $do_not_cache;
fastcgi_cache_bypass $do_not_cache;
add_header X-F-Cache $upstream_cache_status;
}
location ~ ^/wp70/(.*)$ {
index index.php;
try_files /wp70/$1 /wp70/$1/ /wp70/index.php?$1&$args;
}
上記設定の説明:
①.サブディレクトリーで、PHPを有効にする。
②.この中に、fastcgi_cache の制御を追記。
③.「カスタム構造 」のパーマリンクが使えるようにする。
①.サブディレクトリーで、PHPを有効にする。
②.この中に、fastcgi_cache の制御を追記。
③.「カスタム構造 」のパーマリンクが使えるようにする。
参考:WordPressのパーマリンクと、nginxの設定。
「基本」の場合
try_files $uri $uri/ /index.php?$args;
「カスタム構造 」の場合
try_files $uri $uri/ /index.php?q=$uri&$args;
合体させた記述
try_files $uri $uri/ /index.php?$args /index.php?q=$uri&$args;
6. WordPressのインストールと初期設定
サブディレクトリーのWordPressにアクセスする。
https://arakan60.mydns.jp/wp70/wp-admin/setup-config.php
この後、
①.WordPressのインストール。
②.WordPressの初期設定。
③.パーマリンクの変更。
④.テーマの変更。
と、続けてテストサイトを稼働させる。
①.WordPressのインストール。
②.WordPressの初期設定。
③.パーマリンクの変更。
④.テーマの変更。
と、続けてテストサイトを稼働させる。
7. WordPressサイトの再作成
立ち上げたWordPressのテストサイトは、削除して再作成すれば、簡単にやり直しが出来る。
データベースの削除。
drop database dbname;
サブディレクトリーの削除。
rm -r サブディレクトリー名
8. テストサイトへのアクセス制限
只今、テスト中!
9. その他考慮点
本番環境の中に、幾つかのテスト環境を用意して置くと、外部から&スマホでもテスト出来る等、何かと便利である。
立ち上げる「WordPress」サイトの限界
使用中の「Raspberry Pi 4」スペック。
プロセッサ: Broadcom BCM2711 1.5GHz
メモリ: 4GB LPDDR4 SDRAM
メモリ: 4GB LPDDR4 SDRAM
5つ目の「WordPressサイト」を立ち上げたところ、
プラグインをインストールした時点で、
レスポンスが極端に悪化して使い物にならず。
プラグインをインストールした時点で、
レスポンスが極端に悪化して使い物にならず。
参考:
以上。
(2020.01.29)
(2020.01.29)
スポンサー リンク