サブディレクトへのインストールに関して

maruと申します。

過去に WordPress を利用していましたが、国産 CMS として baseCMS を利用したいと思っています。

インストール環境としてドキュメントルートに直接インストールするには抵抗が有り「cms」と言うサブディレクトを作成してインストールしました。

サブディレクトリ「cms」へのインストール後は問題なくサイトは運用出来ています。

https://example.jp/cms/

上記 URLで動作確認していました。
サイトを公開しようとドキュメントルートに変更したく

https://example.jp/

上記 URL で公開したいと思い検索した所下記のドキュメントを参考にしました。

サブディレクトリに設置したい
http://wiki.basercms.net/サブディレクトリに設置したい

上記ページを確認しましたが「/app/webroot/」フォルダがありません。
「webroot」フォルダが無い件は、バージョンアップ伴い仕様変更されたことは理解しました。

上記ページでは baserCMSの設置フォルダ内の「.htaccess」ファイルに

RewriteEngine on
RewriteBase /sub_directory
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]

上記内容を追記とありますが「webroot」ディレクトリがありません。
具体的にはどのようにしたら、サブディレクトにインストールしたbaseCMSをドキュメントルートで公開することが出来るでしょうか。

初歩的な質問で申し訳ありません。アドバイスを頂きたいと思います。

【環境情報】
・baserCMSのバージョン:4.3.6
・レンタルサーバー名:さくらインターネット スタンダード
・使用テーマ:(例)bc_sample
・PHPスキル(自己評価): E

https://example.jp/cms/ で運用できている」というお話なので、そもそもさくらサーバー上でルートディレクトリをドメイン指定されているのではないのでしょうか?
改めて、example.jpドメインについて、さくらサーバーの管理画面のドメイン設定画面にて、「cms」フォルダを指定すれば、ご指摘の様な運用になるのではないでしょうか?

GUSSAN 様

アドバイスを有り難うございます。

さくらインターネットではドメイン名毎にディレクトリを指定します。
今回は、example と言うディレクトリを作成し example.jp ドメイン名を割り当てたとご理解下さい。

現状はディレクトリ example/cms で運用は問題ありません。
希望は、basercms 本体は cms ディレクトリ内に格納した状態でサイト公開を考えています。

https://example.jp/cms/

では問題無く、

https://example.jp/

にして公開を希望します。
ちなみに、example ディレクトリ内に、テストファイルとして、basercms と関連無い簡単な内容の index.php を設置すれば

https://example.jp/
にて問題無く閲覧出来ます。

example ディレクトリ内に「.htaccess」ファイルを作成するのでしょか。

basercms の設置に関して、ルートディレクトリ直下に basercms ファイル1式を公開したくない為、サブディレクトリを作成して basercms はサブディレクトリに設置での運用を考えています。

さくらインターネットのホスティングサービスをそもそも使ったことがないくせにコメントしてしまいました。いまいち事情が飲み込めていません、すいません。。。

なんとなくですが、おっしゃってる感じだと、ご指摘の「example.jp」というのは、さくらが提供しているサブドメインのことではないのでしょうか?
ネットでインフォメーションされているさくらサイトのサブドメインの設定項目欄の以下の部分に「/example/cms」とは、書けないのでしょうか?
もしかければ、たぶん、ご希望の運用になる様な気がするのですが。。。

ちなみに、おそらく.htaccessをうまく書けば、たしかにご希望の運用にすることは、できるとは思いますが、BaserCMS自体が.htaccessを使用してCMSとしての仕様を実現しているようにおもうので、それとの折り合いをつけながら書かないといけないと思いますので、ちょっとめんどくさいかな?と。

ご要望を読み返していて思い当たったのですが、もしかして、ドメイン(サブドメイン?マルチドメイン?この際あんまり関係ありませんねw)のルートをあくまで/exampleのまま、index.phpのみを/exampleにおいて、BaserCMS本体を/example/cmsにといった運用をしたいというようなイメージでしょうか?

もしその様なことであれば、単なる.htaccessファイルの書き換えといった事情では済まないと思いますので、コアのメンバーの方のアドバイスを待ちましょう。

ところで、今回のご意向は、おそらくセキュリティ的な見地での要件なんですよね?
私見ですが、そこまで神経質になる必要はないのではないかなぁ?と思いますが、いかがでしょうか?

GUSSAN 様

アドバイスに感謝いたします。

もしかして、ドメイン(サブドメイン?マルチドメイン?この際あんまり関係ありませんねw)

はい、関係ありません。

ルートをあくまで/exampleのまま、index.phpのみを/exampleにおいて、BaserCMS本体を/example/cmsにといった運用をしたいというようなイメージでしょうか?

はい、その通りです。

ところで、今回のご意向は、おそらくセキュリティ的な見地での要件なんですよね?

はい、その通りです。
また個人的には、ドキュメントルートに直接プログラム1式を設置するこに抵抗があります。WordPress を設置する際も、プログラム1式はサブディレクトリに入れてます。

basercms の流儀でドキュメントルート直下にプログラム1式設置するのであれば、従いたいとは思いますが・・・。

確かにWordpressでは、管理画面上に「Wordpressアドレス」と「サイトアドレス」の棲み分けがありますもんね。
本件について、BaserCMSの流儀?!をどの様に考えておられるのか、また、ご意向のスタイルを実現する方法に関しては、コアメンバーの方のコメントを期待することにしましょう。
是非、私もうかがってみたいところです!

そういう運用をしたことありますが基本的にはCakePHPなので、index.php内のappがあるROOTの位置とlibの位置を自分が指定したいパスに変えてあげれば動いたかと思います。
appとlibをドキュメントルートより上階層に置いた感じですね。
ただthemeとかのパスは一か所の記述じゃなく、書き込みとかの問題で変えられなかった記憶があります。
wordpressってrootにファイルがいっぱいあるのでフォルダまとめる恩恵あると思うんですが、BaserCMSだとappとlibを移動できるくらいなので、データベース情報を見えないとこにおけるくらいですかね。他はコピー系マルチサイトのlibを共通化したいとかの理由が無いかぎりあまりメリットは無いかもです。

1 Likes

BigFly 様

アドバイスを有り難うございます。
CakePHP 自体を理解出来ていない為、少し的外れ的な質問をしていたのかも知れません。

自分が行うとしている事自体が余り、メリットがないと言うことであれば素直にドキュメントルートに公開する事にします。

その際、今サブディレクトリ内もあるプログラム1式をそのままで、ドキュメントルートに移動させて問題は無いでしょうか。

1 Likes