-   topic   - トピックス

[baserCMS]さくらインターネットの共有サーバーにインストールした後、独自ドメインを設定してURLを変更する。

2014年12月04日 技術関係

先日、ホームページのリニューアル案件で、さくらインターネットのレンタルサーバー上にbaserCMSを構築し、別会社のサーバーから後ほどドメインを移してくるという作業を行いました。

20141204_eyecatch.png

サイトの新規作成ならば指定のドメインを設定した状態でインストールできますが、 既に動いているサイトが別サーバーにある場合、移設先のサーバー(今回はさくらインターネット)に予めサイトを構築しておく必要があると思います。 そこで今回は「さくらインターネットのスタンダードプランに標準のURLでbaserCMSをインストールし、 後ほどドメインを移し替えてサイトのURLそのものを変更する」方法についてご紹介したいと思います。

参考サイト

以下のサイトを参考にさせて頂きました。ありがとうございます。

動作環境

この記事の執筆するにあたって使用した環境は以下の通りです。

  • baserCMS ver.3.0.6.1
  • さくらインターネット スタンダードプラン(2014年11月契約)

なお、レンタルサーバーについては、プランや契約のタイミングで内部環境が異なる可能性があります。 さくらインターネットのスタンダードプランであれば、必ず本記事の通りになるというわけではありませんので、ご了承ください。

baserCMSインストール準備

さくらインターネットのスタンダードプランは共有サーバーですので、1つのサーバー内に複数の契約者のスペースが用意されています。 その為、FTPで接続すると以下の様なフォルダ構造になっており、 契約者は自分のアカウント名がついたフォルダ内にある「www」フォルダを公開フォルダとして利用できます(他人のフォルダ内を閲覧&操作することは出来ません)。

  /home/(契約者のアカウント名)/www/

baserCMSは公式サイトまたはGitHubからダウンロードできますが、 GitHubからダウンロードする場合は開発者用に用意されているファイル(Vagrant関係のもの)が含まれていますので、 必要なければ公式サイトからダウンロードした方が分かりやすいかも知れません。

さて、ダウンロードしたbaserCMSのZIPファイルを解凍すると、幾つかのフォルダとファイルが出てくると思います。 今回はこれらのフォルダとファイルを上述の「www」フォルダ直下に設置したいと思います。 もしも、1つのレンタルサーバーで複数のサイトを運営したい場合は、サブフォルダを作成してその中に設置しても良いでしょう。

CSSが効かずレイアウトが崩れる問題への対処

2015/12/7 追記:以下の内容は記事執筆時のものです。3.0.9をお使いの方はこちらの記事を参考にしてください。)

baserCMSの設置が終わったらインストールを進めていきます。さくらインターネットでは、独自ドメインを設定していない場合、 アカウント名が付与されたサブドメインが標準のURLになります(自分のURLを確かめたい時は、申込の後でさくらインターネットから送らてきたメールを確認してください)。 例えば、契約アカウントが「sample」だとすると、今回のbaserCMSの設置URLは以下のようになると思います。

  http://sample.sakura.ne.jp/

baserCMSは設置URLにアクセスすることで、インストール画面が開きます(インストール後は通常の公開ページが開くようになります)。 しかしながら、この段階で躓いてしまう事があります。インストール画面が下記のようになり、レイアウトが崩れた画面が表示されてしまうのです。

20141204_blog01.png

これは正常にCSSや画像が読み込めていない為に起きる現象です。 試しにHTMLソースを開き、そこで読み込もうとしているCSSファイル等にアクセスすると「No input file specified.」とエラーメッセージが表示されます。

なお、この現象は、さくらインターネット以外でも発生することがあり得ます。 また、独自ドメインを設定している場合や、その他サーバーの契約時期、baserCMSのバージョン(主にver.2.xや、ver.1.xなど過去のもの)によっては発生しない事もあります。 いずれにせよ、上手くルーティングが機能していないのが原因です。公式サイトの手順に従って手動でスマートURLを設定します (スマートURLとは、baserCMSの生成するURLを短くする機能で、ルーティングの設定を自動または手動で行うことで実現します)。

.htaccessの編集

手動でスマートURLの設定を行う上で必要になるにが「.htaccess」というファイルの編集です。「.htaccess」はWEBサーバーの設定をフォルダ単位で変更・設定するためのファイルです。 今回編集を行う対象は以下の2つになります (.(ドット)から始まるファイルは不可視ファイルとしてPC上で表示されない事があります。 さくらインターネットの設定では、FTP上で見えるようになっていますので、PCにコピーする際に名前を変えてダウンロードするなどの対応を行って下さい)。

  1. /home/(契約者のアカウント名)/www/.htaccess
  2. /home/(契約者のアカウント名)/www/app/webroot/.htaccess

それでは、まず最初にwwwフォルダ直下にあるファイルを編集します。ファイル内の記述にあるように以下を追記して下さい。

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

次に/app/webroot/にある.htaccessを編集します。なお、こちらには最初から「Allow from all」という記述がありますが、 これは消さずにそのままにしておき、その下に以下を追記します。

  RewriteEngine on
RewriteBase /app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

/app/Config/core.phpの編集

次にbaserCMSの設定ファイルを編集します。編集するのは以下にあるファイル「core.php」です。

  /home/(契約者のアカウント名)/www/app/Config/core.php

まず、117行目付近にある以下の記述を探して下さい。

  Configure::write('App.baseUrl', $_SERVER['SCRIPT_NAME']);

これをコメントアウトするか削除し、代わりに以下の一文を追記しておきます。

  Configure::write('App.baseUrl','');

これにて編集作業は完了です。ブラウザのキャッシュ消すか、スーパーリロード(Shift+更新)してインストール画面が表示されることを確認してください。

サイトのURL変更作業

インストール作業が終わると、baserCMSの各機能が利用できるようになります。しかし、現状ではURLが「http://sample.sakura.ne.jp/」のままです。 独自ドメインを設定し、baserCMSの設定を変えることで、「http://sample.sakura.ne.jp/」にインストールしたbaserCMSを独自ドメインで利用できるようにします

/app/Config/install.phpの編集

まず設定ファイルのうち、install.phpの7行目付近にあるサイト設定部分を変更します(SSL部分の設定がある場合、そちらも必要に応じて編集してください)。 「http://sample.sakura.ne.jp/」にインストールした場合、以下のようになっているはずです。

  Configure::write('BcEnv.siteUrl', 'http://sample.sakura.ne.jp/');

これを新しいURLに書き換えてください。例えば新しいURLが「http://hiniarata.jp/」であれば、

  Configure::write('BcEnv.siteUrl', 'http://hiniarata.jp/');

というようにして下さい。

サイバーキャッシュの削除

次にbaserCMSのキャッシュファイルを削除します。baserCMSではページ表示の高速化の為、一度表示したページのキャッシュをサーバー上に残すようになっています。 キャッシュファイルの場所は以下のとおりです。「tmp」フォルダの中身を削除します(tmpフォルダ自体は残しておきますが、消したとしても自動で復活するかと思います)。

  /home/(契約者のアカウント名)/www/app/tmp/

「tmp」フォルダ内には、「chache」「session」「schemas」「logs」などのフォルダが入っていますが、全部消してしまって構いません。 なお、この一時ファイルはサイトにアクセスすると再び生成されます。この削除作業を行った後は、古いURLではアクセスせずに新しいURLでアクセスするようにしてください。

新しいURLでサイトを開く

ここまで出来れば、あとは新しいURLでサイトにアクセスするだけです。正常にサイトが表示されることを確認してみてください。

いかがでしたでしょうか? 新規のドメインでサイトを立ち上げる時には不要ですが、 サイトのリニューアル案件などでドメイン設定より先にCMS構築が必要な場面では、参考になるのではないかと思います。