Azure WebSitesでbaserCMS詰め放題サーバの作り方



# Azure WebSitesでbaserCMS詰め放題サーバの作り方 #

前回、WordPress + SqliteをAzure WebSitesに詰め放題ってのをやったのですが、福岡在住って事もあり、地元で開発されていたオープンソースCMSエンジンである、baserCMSというプロダクトを入れてみようかなと思いました。

## baserCMSについて ##

[baserCMS http://basercms.net/ ](http://basercms.net/) は、シンプルで扱いやすい管理画面機能を有する、国産のCMSです。日本語のドキュメントも多く、福岡県の企業にて開発された経緯から、福岡ではよく耳にするプロダクトです。

## Azure WebSites の準備 ##

作成はごく普通に準備してもらえればと思います、マウス操作だけでサクッと作れますので、ここでは説明しません、普通に空のWebSitesを作ってください。1分もあればできあがりです。

### バージョンをPHP5.5へ ###

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/AzureWebsites1.png)

出来上がったサイトをクリックし、PHP 5.5へバージョンを切り替えてください。**構成 > PHPバージョン** > 5.5でokです。

設定できたら、下のメニューバーから保存を忘れずに行ってください。

### 既定のドキュメント ###

**構成 > 既定のドキュメント**は、他の言語のファイルオーダーも書いてありますので、以下に変更しました。

- index.htm
- index.html
- index.php

設定できたら、下のメニューバーから保存を忘れずに行ってください。

### 仮想アプリケーションとディレクトリ ###

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/AzureWebsites2.png)

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です。
以下の図を参考にしてください。

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/WebSitesFTP.png)

## サイトへアクセス ##

ブラウザでサイトにアクセスしてインストールを開始してください。詳しいインストール方法はbaserCMSのサイトなどを参照ください。

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/install1.png)

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/install2.png)

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/install3.png)

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/install4.png)

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/install5.png)

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/install6.png)

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/install7.png)

## インストール結果 ##

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/manage1.png)

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/manage2.png)

![](http://quickpress.blob.core.windows.net/kzmx/2015/01/page1.png)

## Cake PHPとAzure WebSites ##

手順の途中では、ファイルの書き換えなど特殊なところがありましたが、これはインストーラーでのSQLite対応を行うためで、それら以外は、CakePHPベースのアプリケーションのインストール作業となります、この事から多くのCakePHPで開発されたアプリケーションが稼働すると思われます。また、今回はAzureでしたが同様の手順でWindows ServerとIISでも稼働させる事が可能です。