サブディレクトリ設定

バージョン1.5.0より公開側のサイトURLをサブディレクトリとして運用する設定を追加しました。

サブディレクトリ用の設定項目として以下があります。

管理画面にログインし

システム設定 > サイト > サイトを選択 > 編集する

より設定可能です。

サブディレクトリ

サイトのサブディレクトリパスを設定します。
ドメインと合わせたパスが公開側サイトURLとなります。

例)

ドメイン demo.ss-proj.org
サブディレクトリ subdir
公開側URL (トップ) http://demo.ss-proj.org/subdir/
管理画面URL http://demo.ss-proj.org/.mypage

親サイト

サイトを他サイトのサブサイトとしたい場合に、親サイトを設定します。
シラサギの各サイトのドキュメントルートはホスト名から生成されますが、
親サイトを設定することで、ドキュメントルートを共通化することができます。

例)※親サイト設定なし

設定 サイトA サイトB
ホスト名 www demo
サブディレクトリ なし subdir
親サイト なし なし
ドキュメントルート public/sites/w/w/w/_ public/sites/d/e/m/o/_

例)※サイトAをサイトBの親サイトに設定

設定 サイトA サイトB
ホスト名 www demo
サブディレクトリ なし subdir
親サイト なし サイトA
ドキュメントルート public/sites/w/w/w/_ public/sites/w/w/w/_/subdir

サブディレクトリサイトの新設

サブディレクトを含めたURLとして自治体サンプルを公開する際の、初期設定例について記載します。
設定項目は環境に合わせて変更ください。

0.シラサギインストール

シラサギをインストールします。
Nginxのドキュメントルート設定を調整します。(※後項参照)

1.サブサイト用のサイトを追加します。(管理画面より登録してもOK)

# bundle exec rake ss:create_site data='{ name: "サイト名", host: "www", domains: "localhost:3000" }'

※ホスト名は既存サイトと重複しないものを設定

2.管理ユーザーが無い場合 sysユーザーを登録

# bundle exec rake ss:create_user data='{ name: "name", uid: "sys", email: "sys@example.jp", password: "pass" }'

3.管理画面にログインし、以下の項目を設定

4.自治体サンプルを投入

# bundle exec rake db:seed name=demo site=www

※引数 site は1で設定したサイトのホスト名

5.レイアウト等に記載されているURLを調整

以下の rake task にて単純なパス置換を行うことができます。

bundle exec rake cms:set_subdir_url site=www

※引数 site は1で設定したサイトのホスト名

6.公開画面を確認

公開画面がサブディレクトリを含めたURLになっていることを確認します。

すでに展開されているサイトのサブディレクトリ対応

以下の点を手動調整する必要があります。

Nginxのドキュメントルート設定の調整

サイトAをサイトBの親サイトに設定した場合は、サイトAのドキュメントルートの
設定のみで問題ありませんが、親サイトの設定を行わず、サブディレクトリを
個別のサイトとして管理する場合、Nginxのドキュメントルートの調整が必要となります。

上記「例)※親サイト設定なし」の場合の設定例

# vi /etc/nginx/conf.d/server/shirasagi.conf
include conf.d/common/drop.conf;
root /var/www/shirasagi/public/sites/w/w/w/_/;

~ 省略 ~

location ^~ /subdir/ {
    root /var/www/shirasagi/public/sites/d/e/m/o/_/;
    try_files $uri $uri/index.html @app;
}