Azure WebSitesでbaserCMS詰め放題サーバの作り方
前回、WordPress + SqliteをAzure WebSitesに詰め放題ってのをやったのですが、福岡在住って事もあり、地元で開発されていたオープンソースCMSエンジンである、baserCMSというプロダクトを入れてみようかなと思いました。
baserCMSについて
baserCMS http://basercms.net/ は、シンプルで扱いやすい管理画面機能を有する、国産のCMSです。日本語のドキュメントも多く、福岡県の企業にて開発された経緯から、福岡ではよく耳にするプロダクトです。
Azure WebSites の準備
作成はごく普通に準備してもらえればと思います、マウス操作だけでサクッと作れますので、ここでは説明しません、普通に空のWebSitesを作ってください。1分もあればできあがりです。
バージョンをPHP5.5へ
出来上がったサイトをクリックし、PHP 5.5へバージョンを切り替えてください。構成 > PHPバージョン > 5.5でokです。
設定できたら、下のメニューバーから保存を忘れずに行ってください。
既定のドキュメント
構成 > 既定のドキュメントは、他の言語のファイルオーダーも書いてありますので、以下に変更しました。
- index.htm
- index.html
- index.php
設定できたら、下のメニューバーから保存を忘れずに行ってください。
仮想アプリケーションとディレクトリ
CakePHPは、フレームワークの構造故なのですが、app\webrootにドキュメントルートを設定します、これにより上位にはアクセスできなくなりますし、よりセキュアに運用可能でしょう。
このあたりはRailsなども同じですね。デフォルトのドキュメントルートから変更します。
├─app
│ ├─Config
│ ├─Console
│ ├─Controller
・・・・省略
│ ├─View
│ └─webroot(ここがドキュメントルート)
└─lib
構成 > 仮想アプリケーションとディレクトリから
/ site\wwwroot\app\webrootと設定しました。
設定できたら、下のメニューバーから保存を忘れずに行ってください。
baserCMSのカスタマイズ
Windows IIS PHP + SQLiteでのbaserCMS
BaserCMSは、CakePHPをベース普通に動作するみたいなのですが、どうも過去に不具合があったらしく?インストーラーから、残念ながらSQLiteインストール時に選択できませんでした。今回は費用対効果を狙っており、MySQLすら立てない運用って事で、不具合覚悟でSQLiteを有効にしました(使ってみた感じでは特に不具合が何かわからないのですが・・・)。
lib\Baser\Controller\InstallationsController.phpの修正
597行目あたりの、SQLiteの利用可否チェックをコメントアウトしました。
/* SQLite利用可否チェック */
// windowsは一旦非サポート
// if (version_compare(preg_replace('/[a-z-]/', '', phpversion()), '5', '>=') && (DS != '\\')) {
if (in_array('sqlite', $pdoDrivers)) {
$dbFolderPath = APP . 'db' . DS . 'sqlite';
if (is_writable(dirname($dbFolderPath)) && $folder->create($dbFolderPath, 0777)) {
$dbsource['sqlite'] = 'SQLite';
}
}
// }
app\webrooの修正
今回はスマートURL(index.phpをURLから外す)でインストールから稼働まで行いますので、web.configでURL Rewriteを行います。
app\webroot\web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress Rule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?url={R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
FTPでアップロード
あとは、できたフォルダをそのままアップロードしてもらえればOKです。
以下の図を参考にしてください。
サイトへアクセス
ブラウザでサイトにアクセスしてインストールを開始してください。詳しいインストール方法はbaserCMSのサイトなどを参照ください。
インストール結果
Cake PHPとAzure WebSites
手順の途中では、ファイルの書き換えなど特殊なところがありましたが、これはインストーラーでのSQLite対応を行うためで、それら以外は、CakePHPベースのアプリケーションのインストール作業となります、この事から多くのCakePHPで開発されたアプリケーションが稼働すると思われます。また、今回はAzureでしたが同様の手順でWindows ServerとIISでも稼働させる事が可能です。