Nakano
1
【環境情報】
・baserCMSのバージョン:4.7.2
・レンタルサーバー名:(大塚商会 アルファメール2
・使用テーマ:(例)omotenashi
・PHPスキル(自己評価): 全くわからない
ホームページのリニューアルにあたり、BaserCMSにて構築をしたく
サブフォルダにて構築を行い、いざルートフォルダへと移動させ正規ドメインにて公開しようとしたところ、libフォルダをルートに置けないことがわかりました。
アルファメールを使用することが初めてでlibフォルダを使えない仕様と聞き、どう対応すれば良いのか途方に暮れています。
リネームを行うなど、何か方法をご存知の方がいらっしゃいましたら、ご教示お願いできませんでしょうか?
GUSSAN
2
大塚商会「アルファメール/アルファメール2」の仕様がよくわかりませんが、サブフォルダで構築されたのであれば、そのサブフォルダにドメインを付け直すことはできないのでしょうか?
あるいは、htaccessで、サブフォルダにリダイレクトさせてしまうとか。
いずれも、「アルファメール/アルファメール2」サービスの仕様を知らずに、申し上げていますので、直接ホスティングサービス側に問い合わせてみるのが一番かと。
Nakano
3
ご返信ありがとうございます。
ルート直下にindex.phpを配置する必要があるようで
サブフォルダへのドメインのつけ直しはできないと言われました。
htaccessで、サブフォルダにリダイレクトさせてしまう方法も考えたのですが
あまり理解できておらず正式な書き方がわかりません。
サービス側に問い合わせたところ、フォルダ名をlibからリネームして使えないか検討してくださいと言われ、リネームだけでできるのかなと疑問に思いこちらに助けを求めた次第です。
GUSSAN
4
なるほど、やっかいないホスティングサービスですねw
上記が可能かどうか、また、libフォルダのパスをサブフォルダ内に変えることはできる気がしますが、どの程度の変更作業が必要なのか、よくわかりません。いずれにしてもコアメンバーの方のコメントを待つしかないですかね。
しかし、あれこれやった挙句、色々と問題を引きずりそうな気がするので、ホスティングサービスを変更されてはどうでしょうか?w
@Nakano ちょっと動く保証はないですが、
CAKE_CORE_INCLUDE_PATH
を明示的に定義するという方法があります。
index.php の 25行目あたりで、定義します。
// lib フォルダ名を hoge とした場合の例
define('CAKE_CORE_INCLUDE_PATH', '/var/www/html/hoge');
同ファイルの 26行目から、30行目について動的に読み込む処理となっているので、コメントアウトして次の1行を記述
include_once(CAKE_CORE_INCLUDE_PATH . DS . 'Baser' . DS . 'Config' . DS . 'define.php');
これで動くのであればよいですが、、、
Nakano
6
ありがとうございます!
ご返信が遅くなり申し訳ありません。
GUSSANのおっしゃる通り本当は慣れたホスティングへ乗り換えたいのですが
クライアントが、どうしてもアルファメールをというので出来るだけ叶えてあげたいと思っている状況です。
Nakano
7
ありがとうございます!
一度バックアップと取ってチャレンジしてみます。
GUSSAN
8
すいません、ご自身のサイトリニューアルかと勘違いしておりました。
Nakano
9
お教えいただきました通り実行してみましたが500 Internal Server Errorでダメでした。
記述は添付の記載方法であっていますでしょうか?
@Nakano
define
は、if 文の外でよいと思います。
また、/var/www/html
のパスはご自身の環境と合っていますか?
それと、baserCMSのデバッグモードに切り替えた場合に表示の変化はありますでしょうか?
app/Config/install.php の次の行を調整してみてください。
Configure::write('debug', 0);
↓
Configure::write('debug', 1);
Nakano
11
ご返信ありがとうございます。
何度も申し訳ございません。
また、/var/www/html のパスはご自身の環境と合っていますか?
勉強不足で、こちらが理解できずエラーのまま進むことができません。
どのようにパスを確認できるでしょうか?
@Nakano 次のファイルを設置して、ブラウザで実行してみてください。
// test.php
<?php
echo __DIR__;
参考:PHPで現在のディレクトリを取得する方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
Nakano
14
ありがとうございます。
ご教示いただきました通り
、ルートディレクトリを確認反映させたのですが
公開サイトは500internal errorのままです・・・
やはり書き換えだけでは難しいのでしょうか?
@Nakano baserCMSの lib ディレクトリは、現在、なんという名称に変更しているのでしょうか?
CAKE_CORE_INCLUDE_PATH
には、そのディレクトリ名までを含める必要があります。
また、デバッグモードの切り替えは試されましたでしょうか?
その際のスクリーンショットを貼って頂きたいです。
Nakano
16
libフォルダはhogeに変更しております。
デバッグモードを試しましたが、500エラーのまま変わりません。
@Nakano では、define の定義をそれに合わせる必要があります。
define('CAKE_CORE_INCLUDE_PATH', '/www/a-mail/xxxxxxxxxxxxxxxxx/public_html');
↓
define('CAKE_CORE_INCLUDE_PATH', '/www/a-mail/xxxxxxxxxxxxxxxxx/public_html/hoge');
※ xxxxxxxxxxxxxxxxx
の部分は念のため伏せさせて頂きました。
それでもダメな場合もう一つ試してください。
ApacheのRewriteの問題もあるかもしれません。
public_html 直下の .htaccess 次の行の先頭の#を除外してみてください。
#RewriteBase /
@Nakano それでも解決しない場合は、実際の環境を調査しないと難しそうです。
サーバーを別のサーバーに変更するか、baserCMSのパートナーに相談してみてください。
Nakano
19
ご返信ありがとうございます。
お返事が遅くなり申し訳ございません。
ご教示いただいた通り変更しましたが
一切変わりませんでした。
GUSSAN
20
アルファメール会員サイトのよくあるご質問の.htaccessに関する注記に
AuthConfig、FileInfoオプションのみ利用可能です。
とありますので、もしかするとapp/.htaccess
lib/.htaccess
のアクセス制限の記述は使えないのではないでしょうか?
あと、webルートに配置されている.htaccessの
Allow from all
行もコメントアウトしてみてはどうでしょうか?