nginx 異なるパーマリンクの WordPressを複数動かす

Raspberry Pi Webサーバーの構築
nginx + WordPress
テスト用に複数のサイトを作る
 
nginxで稼働する本番サーバーに、
①.テーマの異なるWordPressを、複数・同時にテスト
②.パーマリンクが異なるWordPressを、複数・同時にテスト
出来る環境を、構築した。
 
Nginxで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
 
 
WordPressサイトの作成場所(ディレクトリ)。
WordPressサイトの作成場所(ディレクトリ)
 
A:ルートディレクトリー。(HTML公開本番サイト)
B:サブディレクトリーのWordPress。(公開本番サイト)
C:サブディレクトリーのWordPress。(公開本番サイト)
DCの中に、さらにサブディレクトリーを作成すると、WordPressファイルの中にフォルダーが混じり管理が複雑になるので、作成しないほうが良い。
E:サブディレクトリーのWordPress。(テスト用のサイト)
F:サブディレクトリーのWordPress。(テスト用のサイト)
 
 
WordPressサイトの URL について。
サブドメイン方式:
 「https://sub.example.com/」
サブディレクトリー方式:
 「https://example.com/sub/」
 
サブドメイン方式にするには、DNSサーバにリソースレコードを追加するドメイン設定が必要で、敢えてサブドメインにすることで得られるメリットもないので、サブディレクトリー方式にした。
 
 
テスト用の WordPress サイトを立上げる手順。
①. 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 bypassword‘;

作成されたデータベースを確認する場合。
MariaDB [mysql]> show databases;

MariaDB [mysql]> flush privileges;
MariaDB [mysql]> exit
 
dbname:WordPressで使用したいデータベース名。
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】が生成される。
 
FTPを使ってWordPressをローカルのPCにダウンロード
この後、FTPを使ってWordPressをローカルのPCにダウンロードして置けば、複数のサイトを作るに当たって使い回しが出来る。
 
 
 
4. サブディレクトリの作成とWordPressのアップロード
 
サブディレクトリの作成。
mkdir /home/yaopi/www/wp70
sudo chmod 777 /home/yaopi/www/wp70
sudo chown -R nginx:yaopi /home/yaopi/www/wp70
 
FTPを使ってWordPressをローカルのPCにダウンロード
作成したサブディレクトリに、FTPを使って【WordPressの中身】だけを
アップロードする。
 
 
 
 
5. Nginxの設定
 
Nginxの設定ファイルについて。
WordPressサイトの作成場所(ディレクトリ)
 
サーバー全体に関する設定ファイル:nginx.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】で外出しにした。
 
サブディレクトリーの、「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 の制御を追記。
③.「カスタム構造 」のパーマリンクが使えるようにする。
 
 
参考: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;
 
参考:locationディレクティブのプレフィックス。
locationディレクティブのプレフィックス
 
参考:プレフィックスの使い分け。
プレフィックスの使い分け
 
 
 
6. WordPressのインストールと初期設定
 
サブディレクトリーのWordPressにアクセスする。
https://arakan60.mydns.jp/wp70/wp-admin/setup-config.php
 
『さあ、始めましょう!』が表示される。
『さあ、始めましょう!』をクリックる
 
この後、
①.WordPressのインストール。
②.WordPressの初期設定。
③.パーマリンクの変更。
④.テーマの変更。
と、続けてテストサイトを稼働させる。
 
 
 
7. WordPressサイトの再作成
 
立ち上げたWordPressのテストサイトは、削除して再作成すれば、簡単にやり直しが出来る。
 
データベースの削除。
drop database dbname;
 
サブディレクトリーの削除。
rm -r サブディレクトリー名
 
 
 
8. テストサイトへのアクセス制限
 
只今、テスト中!
 
 
 
9. その他考慮点
 
WordPressの表示設定で、検索エンジンがサイトをインデックスしないようにする。
WordPressの表示設定で、検索エンジンがサイトをインデックスしないようにする
 
 
本番環境の中に、幾つかのテスト環境を用意して置くと、外部から&スマホでもテスト出来る等、何かと便利である。
 
 
立ち上げる「WordPress」サイトの限界
 
使用中の「Raspberry Pi 4」スペック。
プロセッサ: Broadcom BCM2711 1.5GHz
メモリ: 4GB LPDDR4 SDRAM
 
立ち上げっている「WordPressサイト」の数=
WordPressサイトの作成場所(ディレクトリ)
 
5つ目の「WordPressサイト」を立ち上げたところ、
プラグインをインストールした時点で、
レスポンスが極端に悪化して使い物にならず。
 
 
参考:
 
以上。
(2020.01.29)
 

 

スポンサー リンク

 

             

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください