カテゴリ: PHP, CakePHP

ページ: << 1 2 3 4 5 6 7 8 9 10 >>

IISでCakePHP(完全版)

パーマリンク 2009/01/05 14:54:20 著者: kumaold メール
カテゴリ: 自宅鯖, CakePHP

これだけCakePHPが普及してきたのに、どういうわけかIISでCakePHPをまともに動かしてみたという日本語の記事をまだ見たことがありません。

以前やってみて、mod_rewriteの設定がうまいこといかなく頓挫しました。

冬の休暇中の宿題という事でやってみて、やっとその方法を見つけました。


※以下、Windows Server 2003 R2 SP2+IIS 6.0+PHP 5.2.6にて。
 CakePHPは1.2を使用し、/cakephp/ディレクトリに導入するものとする。

#Windows Server 2008+IIS 7.0でも動作OKでした! 設定画面がちょっと違いますが同じ要領です。【2/28】


まずはmod_rewriteの代替品という事で「URL Rewrite Filter for IIS」ですが、いつの間にか公式サイトが消滅していました。


1. DLしてきたものを解凍してC:\mod_rewriteに展開
2. IISマネージャを開き、左のツリーの「Webサイト」を右クリック、プロパティ
3. 「ISAPIフィルタ」タブを開き、追加をクリック
4. フィルタ名: IIS_rewrite(任意)
  ファイル名: C:\mod_rewrite\mod_rewrite.dll を指定してOK
5. IISの再起動 (コマンドプロンプトでiisreset)

ここまではよくあるISAPIフィルタ導入なのでいいとして、問題はこれから。


CakePHPのrewriteの流れを見ると、まず全て/app/webrootに流してから該当ファイルがなければindex.php?url=...に渡すような仕様になっています。

しかしこの模造品rewriteではどうもRewrireCondにREQUEST_FILENAMEが使えないのか、書式が違うのかうまくいきません。


しばらく苦戦した後に、無理矢理なやり方ですがこれで妥協しました。

#リクエストURLがファイルっぽければwebrootにrewrite
RewriteRule ^/cakephp/(.*\.(htm|html|php|css|js|jpg|jpeg|gif|png|txt|swf|pdf))$ /cakephp/app/webroot/$1 [l]
#その他はコントローラへのアクセスとみなす
RewriteRule ^/cakephp/(.*) /cakephp/index.php?url=$1


いままでまったく使えなかった環境からすれば上出来なので満足です。

特に問題ないので、ファイル名と紛らわしいURIを使わなければ普通に使えそうです。


肝心のURL Rewrite Filter for IISですが、CakePHP用に設定済のものを置いときます。(GPLなので問題ないと思いますが)

URL Rewrite Filter for IIS (CakePHP on IIS用)

以上、半年がかりの自宅鯖にCakePHP導入でした。


Windows Server 2003 実践ガイドWindows Server 2003 実践ガイド
村嶋 修一

技術評論社 2005-09-09
おすすめ平均

CakePHP RC4

パーマリンク 2008/12/24 18:34:00 著者: kumaold メール
カテゴリ: プログラミング, PHP, CakePHP

いまさらながら、先日CakePHP 1.2 RC4がリリースされました。


開発鯖のをRC3からRC4に入れ替えてみましたが、特に変化なしでした。

むしろ今さら内部動作の仕様変更をされても困るところですが、内部的には地味にバグ修正とか、効率化されてそうです。

Windows XPのSP2→SP3みたく、完成版に近いとそんなところでしょうね。


いつも通り、CakePHP 1.2 日本語化も早速RC4に対応させました。

なぜかRC4からTranslateBehaviorに関連するメッセージが登場しました。

Datasource %s for TranslateBehavior of model %s is not connected

おそらく翻訳データをDBから持ってくるっぽいようですが、詳細は謎です。


相変わらずコンソールの一部がはじめから多言語化に対応していないのは不満が残るところですが、Stableでは対応されることを願ってます。



CakePHP ポケットリファレンス (Pocket Reference)CakePHP ポケットリファレンス (Pocket Reference)
株式会社ブルーオーシャン 岡田 佳典

技術評論社 2008-06-18
売り上げランキング : 55140
おすすめ平均

Amazonで詳しく見る
type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

正規表現で住所分割

パーマリンク 2008/12/19 15:33:39 著者: kumaold メール
カテゴリ: プログラミング, PHP

美容室案内ネット一六社が正式オープンしたようなので、次なる目標としてデータ拡充の一環でホットペッパーBeautyのデータ取り込みをしている最中です。


ところがこのAPI、住所データが郵便番号すらない上、建物名も全て1つのフィールドに入っているため開発者には優しい仕様ではありません。

かといって、全4,000件のデータに手動で手を加えるのも気の遠くなる作業・・・


ということで正規表現で分割できないか挑戦してみました。

例外やら何やら全部は書ききれないので要約すると、これで大まかに「都道府県」「市区郡」「それ以下住所」「建物名」に分けます。

(東京都|北海道|[一-龠]+[府県]){1}([一-龠ぁ-ヶ]+[市区郡]){1}([一-龠ぁ-ヶー]+[0-9\-‐F番地号条線西東丁目の]+){1}\s*([\sa-zA-z0-9一-龠ぁ-ヶー、・\-\(\)\.\/\']*)

その後に郡以下の場合はこれで町村名を取り出します。

([一-龠ぁ-ヶー]+[町村]){1}

政令指定都市の市名も同様に分割できます。

しかし、平成の大合併のおかげで政令指定都市でもないのに市以下に区のつくところがいくつか誕生してしまいました。
(石狩市、伊達市、八戸市、盛岡市、奥州市、南相馬市、香取市、上越市、宇陀市、姫路市)

これらはうまいこと例外処理を施してあります。


1/15 以下、完全ソース公開

$addr = $_GET['addr'];
$addr_conv = mb_convert_kana($addr, 'a');
//正規表現で切り分け
mb_ereg("(東京都|[一-龠]+[府道県]){1}(石狩市|伊達市|八戸市|盛岡市|奥州市|南相馬市|香取市|上越市|宇陀市|姫路市|[一-龠ぁ-ヶ]+[市区郡]){1}([一-龠ぁ-ヶー]+[0-9\-‐F番地号条線西東丁目の]+){1}\s*([\sa-zA-z0-9一-龠ぁ-ヶー、・\-\(\)\.\/\']*)", $addr_conv, $match);
//郡の場合の町村分割
if (($_GET['town_split']) && mb_ereg("郡$", $match[2])) {
    mb_ereg("([一-龠ぁ-ヶー]+[町村]){1}([一-龠ぁ-ヶー]*[0-9\-‐F番地号条線西東丁目の]+)", $match[3], $town);
    $match[3] = $town[2];
}
//政令指定都市の区分割
if (($_GET['city_split']) && mb_ereg("区$", $match[2], $city) && $match[1] != "東京都") {
    mb_ereg("([一-龠ぁ-ヶ]+市){1}([一-龠ぁ-ヶ]+区){1}", $match[2], $city);
    $match[2] = $city[1];
}



Web用にそれなりのインターフェイスを作ったのがこちら。

住所分割ツール手抜き版

そのうちXML版(Webサービス)も作る予定。



住所と地名の大研究 (新潮選書)住所と地名の大研究 (新潮選書)
今尾 恵介

新潮社 2004-03-17
売り上げランキング : 188314
おすすめ平均

Amazonで詳しく見る
type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

<< 1 2 3 4 5 6 7 8 9 10 >>

一六社で働くITエンジニアのブログ。

普段はWeb系システム開発と地元のPCサポートをやってます。いつの間にやら会社に8年目。
技術ネタ中心に日々の仕事と生活と趣味やらを気が向いたら書いてます。

2017年3月
 << <   > >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

検索

XMLフィード

16ブログ     powered by b2evolution free blog software