0
Help us understand the problem. What are the problem?

posted at

updated at

baserCMS インストール周りで陥りやすいトラブルとその背景の考察

ホスティングサービス(LOLIPOP!、CPI、Hetemlなど)に契約してbaserCMSをインストールする場合、通常、二通りの選択肢があるのかと思います。(cakeコマンドでのインストールは、初心者向きではないのでとりあえず指を折っていません。)

  • 各ホスティングサービスが用意した「簡単インストール」という、事前にホスティングサービス内に用意されたbaserCMSのインストールパッケージと各ホスティングサービス独自のインストールサービスを利用して行う方法。
  • 取得したサーバー領域にbaserCMSのwebサイトからダウンロードしたインストールパッケージをFTPなどを利用してアップロードし、baserCMSのインストーラーページを使用して行う方法。

ちなみに「簡単インストール」サービスは、当然、すべてのホスティングサービスに用意されているわけでは無く、baserCMSのホスティングパートナーと称する主要なホスティングサービスに、ほぼ限定されるサービスかと思います。(baserCMSサイトに掲載。HOSTING PARTNER

一概にどちらがいいともなかなか言えないのですが、初心者にとってはやはり前者の「簡単インストール」サービスを利用した方が、こと「インストール」という点に限定すれば、ハードルは確かに低いのかもしれません。ただインストールパッケージのバージョンが古い場合などもあり、その後にあらためてアップデートの対応が必要なケースもあり一長一短です。
若干でも腕に覚えのあるとお考えの方は後者を選択し、インストールパッケージを自らFTPなどでアップロードして、インストールしてみよう!ときっとお考えになるのでしょうが、うっかりハマるとこれがなかなか初心者には一筋縄ではいかない、という落とし穴が。。。というのが今回のお話。

というのも、トラブルに見舞われる事情としてまず挙げられるのが、

リファレンスの問題です。

baserCMSのライフサイクルは、メジャーバージョンのリリースから2年を目処にセキュリティメンテナンスを終了するということらしく、現行バージョンの4系リリースが2016年10月ですので、3系は既に2018年にメンテナンスが終了していることになります。
メンテナンスが既に終了している3系バージョン(すいません、2系はいくらなんでももう新規インストールする人は流石にいませんよね?!)を新規にインストールするというケースはレアで、既存のサイトのリカバリー目的で利用されることがほとんどのケースと考えます。
にもかかわらず、現時点でbaserCMS公式サイトにリンクされている「baserCMS公式ガイド」に記載されている内容は、一部バージョンの記載のあるトピックがあるもののメジャーバージョンのセグメントを分けたような記載はほとんどなく、また、残念なことに相当な部分で3系の内容が記載されたままになっていて、このことがユーザーの混乱を招いています。
一方で、現行の4系は、リリースから既に足掛け5年半になろうとしており、次期5系のリリースはアナウンス通りであれば2022年夏という状況からして、今後新たなリファレンスが追記されることは、ほぼ無いと考えれば、次期5系リリースに際し追記される公式ガイドほかのリファレンスの類は、是非とも対応バージョン(メジャーバージョンの記載だけでも)、リファレンス自体の作成日(あるいは更新日)の記載を望むところです。作成日の記載があれば、おおよそいつ頃のリリースバージョンに対応した記述なのか当たりをつけることもできるのですが、現状はそれすらできないので。。。

次に、

バージョンの違いによる「インストールパッケージ内の構成」(デプロイパターン)の違いです。

Qiita用.jpg
細かな構成の違いはもっとあるかもしれませんが、比較的大きな違いのあるケースでまとめました。
baserCMS公式ガイド」に「webroot」という表現で記載されているリファレンスは、3系(3.0.11.1まで)のケースを前提とした内容とほぼ言えると思います。3系(3.0.11.1まで)では、cakePHPの流儀に倣ってwebルート(パブリック(外部)から参照されるドキュメントルート)が/app/webroot フォルダに設定されていて、index.phpをはじめとするテーマファイル、HTML、CSS、Javascript、画像ファイルなどが/app/webroot フォルダに格納されていました。
しかし、3系(3.0.12以降)および4系のインストールパッケージからは、webルートがapp、libフォルダと同階層になり、明示的なwebrootという名称のフォルダは無くなりました。
この辺りのインストールパッケージ内のフォルダ構成の違いが、きちんとアナウンスされないまま、先述のリビジョンやバージョンが明確でないリファレンスが一人歩きすることで、想定していないインストール時のトラブルになってしまっています。
いっそのこと、リビジョンやバージョンを明確にできないのであれば、メジャーバージョンアップに伴って前バージョンのメンテナンスが終了したタイミングで、リファレンスを全て新しいものにリバイスされるのであればまだわかりやすいのですが。。。
ちなみに、公式サイト「ダウンロード」ページのページ下部にある「過去バージョン」リスト内の「リリースノート」項には、Github上の各バージョンリリースタグへリンクがあります。ここからダウンロードできるSource code(zip/tar.gz)は、すべてのバージョンで、cakePHPの流儀に倣って/app/webroot フォルダ構造になっており、そもそもの「Source code(zip/tar.gz)」と「インストールパッケージ」のフォルダ構造(3.0.12以降のデプロイパターン)に違いがあること自体を意識(自覚)しないまま、本来は「インストールパッケージ」を前提とすべきところをSource codeのフォルダ構造を前提にしたリファレンス内容(やユーザーズフォーラムの回答など)になっていたりするのではないかとも思います。

次に、

インストールパッケージをアップロードする時のトラブルです。

インストールに関しては、baserCMS公式ガイド「インストールガイド」ページに以下のような記載があります。
スクリーンショット 2022-03-01 12.18.01.png
ここでいう「baserCMSのダウンロード」の対象は、言わずもがなですがbaserCMSのインストールパッケージを指しており、zip形式の圧縮ファイルでダウンロードすることになります。
次に「サーバーへのアップロード」項の「ファイル一式をすべてWEBサーバーの任意のフォルダにアップロード」と記載されている対象は、これまた言わずもがな?で、ダウンロードしたzipファイルを解凍し生成された「basercms」フォルダ内のすべてのファイルおよびフォルダということになります。

つまり、アップロード対象のファイル一式とは、先のパラグラフ(バージョンの違いによるインストールパッケージ内の構成の違いについて)で示した図の「basercms」フォルダ内のすべてのファイルおよびフォルダということになるのですが、
ローカルで使用しているPC環境、OSの違い、使用するFTPソフトやその設定の違いなどによって、.htaccessファイル(「baserCMSバージョンによるインストールパッケージのファイル/フォルダ構成の違い」図中の①)がアップロードするファイルとして表示されず、アップロード漏れするという事態が起こることがまれにあります。
というのも.htaccessファイルは、隠しファイル扱いで、ファイルエクスプローラやファインダー上で通常は表示されず、使用するFTPソフト等で隠しファイルを表示する設定となっていなければ、存在を確認できません。
そのため、baserCMSのインストールパッケージの.htaccessファイル(①)がアップロード漏れとなってしまうケースがあり、.htaccessファイルがアップロードされなければ、インストールステップ2以降が表示されず、404エラーになってしまいます。初心者のトラブルとしては大いにあることです。注意喚起も一つの解決方法かと考えます。

また、その後のスマートURLに関する記述も、現行バージョンのデフォルト設定では、install.phpは、すでにデフォルトONとなっていて、baserCMS公式ガイド「インストールガイド」というある意味でベーシックなリファレンスページにいきなりスマートURLをON/OFFするための記述を詳細に記載すること自体が、逆に混乱を招いているように感じます。そもそも管理画面上のスマートURLのON/OFFのインターフェースは、すでに随分前に削除されています。

最後に、

バージョンの違いによる動作環境(システム要件)の違いです。

PHPに関しては、公式サイト「ダウンロード」ページのリストに4.2.5以降ユニットテストの表記があり、目安にはなっているものの、データベースなど、正直、手探りです。
テスト、各バージョンの開発環境の違いなど、一概にアナウンスしにくいものではあると思いますが、目安となる推奨環境の変遷などは、ある程度のバージョン毎に、体系化された記載が欲しいところです。

以下、公式サイトグローバルメニューからはなかなか辿れない、公開中の仕様絡みのリファレンスです。(内容は精査できていませんが、最新の情報ではないと思います。)

総じて、
公式サイトでアナウンスされるさまざまな情報、リファレンスの類は、対応バージョンおよび作成日(更新日)等の記載を徹底するなど体系的な取り組みが必要ではないかと。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?