エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


baserCMSで開発環境と公開環境でドメイン、フォルダが変わる場合の不具合

      2014/06/26

baserCMSを本番公開する際の手続き

 

アクセスの URLが変わるとエラーになる

 
Webサイトを構築する際、本番環境をそのまま使って開発、設置を行っていく場合は非常に少ないと思います。
開発環境で開発を行い、それを本番環境に移動させるのか、もしくは、開発環境にドメインを当ててそこを本番環境に切り替えるのか。
 
そのような対応を行う場合、baserCMSの管理画面からの対応だけではエラーになってしまいます。
「500 – Internal Server Error」が表示されて動かなくなります。
 
私もこの不具合の理由が分からず、丸 1日費やしてしまいました。
 
 
私が陥った状況は、下記のような環境でした。
開発中のフォルダはドメインが当たっておらず、レンタルサーバの共有ドメイン(ここでは「kyouyuu.com」とします)を利用してアクセスしていました。
 
 共有ドメインでのドキュメントルート
 /        ←http://kyouyuu.com/ でアクセス
 
 現在公開中のフォルダ
 /honban_com/  ←http://honban.com でアクセス
 
 開発中のフォルダ
 /test_com/   ←http://kyouyuu.com/test_com/ でアクセス
 
そして、開発中の環境で構築が完了したので、まず、baserCMSの管理画面の「システム設定」-「サイト基本設定」の「WebサイトURL」を「http://honban.com」に変更しました。
そして、サーバの管理画面から「http://honban.com」でアクセスした際に「/test_com/」のフォルダをドキュメントルートとして読みに行くように設定を変更しました。
すると、「500 – Internal Server Error」が表示されて動かなくなったのです。
 
 

URLが変わる際の対応方法

 
サーバのファイルをバックアップし、ゼロからインストールし直してみて、ファイルの差分を確認してみたり、DBを差し替えてみたりしましたが、なかなかうまくいきませんでした。
逆に、表示が崩れていったり、データが歯抜けになったりして、全くうまくいきませんでした。
 
ですが、そんな試行錯誤をしている中で、「.htaccess」で処理を制御していたことを思い出したのです。
 
そして、「RewriteBase」の項目をそれぞれ下記の通り変更すると無事に動き出したのです。
 
————/.htaccess
RewriteEngine on
RewriteBase /
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
————
 
 
————/app/webroot/.htaccess
RewriteEngine on
RewriteBase /app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
————
 
この「.htaccess」は、インストールのタイミングで作成されるのですが、その後は、管理画面から設定を変更してもそれが反映されない、ということなのでしょう。
 
この設定が反映されない、という不具合は、もしかしたらサーバに由来するものかもしれません。
もしかしたら、運営しているサーバはロリポップサーバなのですが、先日の WordPressを発端とする大規模ハッキングの影響で何かしら設定が変更されているのかもしれません。
 
ただ、他のサーバでもサーバの設定によって「.htaccess」が更新されない場合があるのであれば、今回の私のハマった不具合は参考になるのではないかと思っています。
 
 
ロリポップで baserCMSを利用する際の Basic認証の設置には注意しましょう
 
baserCMSをほかのサーバ、環境にコピーする場合

 - baserCMS

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

baserCMSでオリジナルのデータベースから情報を取得する場合

オリジナルで作ったテーブルから情報を取得し利用する場合はプラグインとして機能を拡張することで対応出来ます。その方法について説明しています。

baserCMS お問い合わせフォームのボタンを画像に変えたい場合(ボタンのテキストを変えたい!っていう場合も)

お問い合わせフォームのボタンを画像に変えたい場合、ボタンのテキストを変えたい場合、それにまつわる関連の解説をしています。

baserCMS ブログカテゴリーの表示を柔軟な形で取得する方法

baserCMSのgetCategoryListではなくもっと柔軟に利用できる方法でブログカテゴリを取得する方法をサンプルコードを用いて説明をしています。

baserCMS サイト管理者権限でファイルアップロードを行う・権限設定の詳細について

Admin権限以外の権限でファイルをアップロード、ページの更新をする際の権限設定の仕方と、権限設定全般についての設定のコツについて解説しています。

baserCMS getCategoryListの使い方について

baserCMS getCategoryListの使い方についての詳細説明です。公式サイトの説明では分かりにくい部分を補足説明しています。

baserCMSをほかのサーバ、環境にコピーする場合

baserCMSを他のサーバ、環境にコピーする場合の設定方法について説明します。

baserCMSでサイトの構築をしてみることにしました

baserCMSでサイトの構築をしてみることにしました。baserCMSを選んだ理由とそれを XAMPP環境に設置する方法などを説明しています。

ロリポップで baserCMSを利用する際の Basic認証の設置には注意しましょう

ロリポップではBasic認証を設置する際に.htaccessを書き換えますがbaserCMSで利用する処理も上書きされます。その対処方法の解説です。

baserCMSは 3種類のデバッグモードが用意されています

デバッグモードは3種類あります。デバッグモードにすることでキャッシュされなくなりますので、開発の際には必須の設定です。

baserCMS getCategoryの使い方について

baserCMS getCategoryの使い方についての説明です。公式サイトの説明ではわかりにくいところを補足説明しています。