複数サーバー安定化に忘れてはいけない
一番の不安定原因は,cache pluginのコンフリクトが考えられる.その他,portal serverの設定がある.
redisと一般的なwordpressのcache pluginはキャッシャ層が異なる.レスポンス速度を高めるために一般的なキャッシュ(表示系)とredisを導入しているので,以下の事項について注意して進める必要があった.
一般的なキャッシュプラグイン
サイト構築の設定過程では,個々のwordpressのcache pluginの挙動を意識して進める必要がある.また,作業中はcache pluginは無効にしておくか,そうでない場合は適時キャッシュをflushする.
設定が完了してから無効化していたcache pluginを有効化する.
redis関連 pluginの設定
以下に解説しているweb stationでPortal Serverを同時にenableにする場合には注意が必要である.
先ず問題だった点は、
今回の場合,Redis Serverを複数のwordpressを導入した1つの同じNAS内にcontainer managerでコンテナ構築(host)し,更に、個々のwordpressでは、それぞれredis object server pluginをインストールしていた.このpluginでの設定ではdefaultのredis 用のDBの番号は「0」となっていたため、複数のportal(web url)をenableにした途端にredisのキャッシャでコンフリクトを起こした.
対処:
redis serverに関わる以下のコードをwp-config.phpに追記する.
define( 'WP_HOME', 'https://harikiri.diskstation.me' );
define( 'WP_SITEURL', 'https://harikiri.diskstation.me' );
define( 'WP_CACHE', true );
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_DATABASE', <0,1,2・・・> );
define( 'WP_CACHE_KEY_SALT', '<site name>_' );
note :
1. <0,1,2・・・15>には,複数サイトと重複しない一意である1つの数.
2. <site name>には,接頭語として分かるワードであれば良い(harikiri).
3. この時点で残っている設定は、DB関連(wp_config.php, data baseの複製または新規作成)
4. WordPressでinstallしているRedis Serverには、「Redis Object +Cache」などがある。
更に必要な作業
default serverの設定
Web Protalで複数のweb serverを安定的に稼働させるために,default serverの設定をいじる必要がある.なぜなら,Multi Domain Web Serverを構築する前の状態はSingle Web Server (既存)が稼働するのみであり,それはdefault serverが担っていたため.
今回の作業過程では,既存のweb serverを新しくportal server (以降で説明)として設定 (既存のurl:harikirii.diskstation.me)したため,既存のurlであったdefault server (url: 同じ)が起動すると,この同じurlに対して異なるservice (script languageを含む)が割り当てられることになるため,コンフリクトを生じる可能性が考えられた.
そこで,以下の手順により,default serverに対して適切な設定が可能になるようservice設定をいじった.この設定を完了させてから,複数(現在3つ)あるportal(web server)がレスポンスを失う自体にはなっていない(2025/06/20).
設定 :
- 先ず,Web Portal 設定の画面では,default serverをdisable/enableは,できな仕様となっている(図5).
- そこで,Service設定画面から設定を以下の手順でいじる(図6).
- 図6に示すように,user portalが使用しているHTTP back-end serverはapacheである.念のため,default serverにはそれとは異なる「Nginx」を選択する.
- Serverが起動しないようにすめにたに(結果的そうだった*),PHPには「Not configured」を選択する.おそらくこの設定が重要.
- * NASをrebootさせてlogを確認してみると,この設定前ではharikiri.diskstation.meの起動が2回記録されていた.設定してからは,1回の起動のみが記録されるようになった.
- Save
- 以上

図5. Default serverのdisable/enableはできない(仕様)

図6. Service設定画面
Portal Serverに関する設定
今回の作業では,既存のwebサイト(harikiri.diskstation.me)は,Default serverで管理されていた(そのはずな)ので,専用のportalはリスト(登録)されていなかった.
そこで,harikiri.diskstation.me用に上記の作業でWeb Portalを作成した.その際,/web/<site A用のfolfer>のフォルダ構造と,harikiri.diskstation.me/<site A>というurl構造が不整合となりブラウザでの表示が出来なくなった(エラー500, 404).
修正作業は,以降に述べているように「wp-config.php」の修正,DBの複製と修正,及び「.htaccess」の修正が必要.
- File Stationから,既存のwordpressディレクトリを複製して2つめwordpressディレクトリとし,wp-config.php,.htaccess,必要があればrobots.txtを修正する.
以下詳細を示す.
File Stationでの作業
(1) DSM->File Stationで既存のwordpressフォルダーの複製
- /web/<site A>にwordpressがインストールされている前提とする(既存).
- /web/<site B>をcreate folderで作成する.
- <site A> foldeにあるfolder/fileの全てを<site B>に複製する.
注意) 既存を消したりしないように!
(2) .htaccessの修正
以下のコードでにおいて “/” が,”/<site A/Bのfolder name>”になっているとブラウザ表示できないので,以下のコードに置き換える.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
(3) wp-config.phpの修正
MariaDB10のデータベース(DB)は,2つ目のuser2で別DBを作成し,exportしたuser1のDBをuser2のDBにimportされていることを前提にしている.
define( 'DB_NAME', 'DB2' );
define( 'DB_USER', 'user2' );
define( 'DB_PASSWORD', '********' );
define( 'DB_HOST', 'localhost:/run/mysqld/mysqld10.sock' ); // MariaDBパッケージならlocalhostでOK(未確認)
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
/volume1/web/<site A filder name>/wp-config.php に以下の2行を require_once より前 (強制)に追加:
これらの環境変数は,DBのwp_optionsのsiteurlとhomeより優先する(by 4o).DBで設定しているなら必要ない.
define( 'WP_HOME', 'https://harikiri.diskstation.me' );
define( 'WP_SITEURL', 'https://harikiri.diskstation.me' );
(4) robots.txtの修正
robots.txt (小文字)についてもサイトに合わせて修正してください.
Control Panelでの作業
Login Portal -> Advanced -> Access Control Profileでprofile作成画面を開き当該profilelを作成する.

access control profileは,web stationの設定で使用する.Web Stationの設定が完了後,後から当該profileを作成・設定も可能.
機能:
- サイトの内容を編集している間やその他のIP Addressを拒否/許可することが可能.ネットからのアクセスを拒否する設定のprofileを作り,web station->web portal->”で,作成したportalのAccess control profile”に指定するとprofileに従ってアクセス制限される.
- サイトの投稿が整いサイトを公開したい場合,公開用のprofileを前述と同様のところに指定するか,何も指定しなければフルアクセスとなる.
access control profileを作る
- Login Portal->Advancedを開き,Access Control Profileを開く
- Createボタンを押し,2つ目のサイト用にprofileを作成する