ローカルでCakePHPを動かしてmecab_splitを使ってみる(mac)

テーマ:
MacBook Proに買い換えて、しばらくMAMP(バージョン 3.0.5)を使ってローカル開発をしていましたが、今回はmacデフォルトのapacheを使ってローカル開発することにしました。 

terminal
$ brew tap homebrew/dupes
$ brew search httpd

brewで導入したかったのですが、上記コマンドを実行してもhttpdが見つからなかったという理由ですが。


ローカル開発環境


OS X 10.9.3 Marvericks
PHP 5.4.30
Apache/2.2.26 (Unix)
mysql  Ver 14.14 Distrib 5.6.19
CakePHP 2.5.2


Apacheの起動


terminal
$ sudo apachectl start

私は毎回打つのが面倒なので.bashrcにaliasとして登録しています。

.bashrc
alias apachestart="sudo apachectl start"

これでterminalでapachestartで起動できるようになりました。

terminal
$ apachestart

デフォルトのままですと、アクセスされるディレクトリは下記のようになっていると思います。

デフォルトアクセスディレクトリ
/Library/WebServer/Documents/

CakePHPのダウンロード


terminal
git clone git://github.com/cakephp/cakephp.git

これで、CakePHP本体をダウンロードできました。
ここで、apacheが起動できている状態でCakePHPフォルダにアクセスすると最初のページが表示されるはずなんですが、写真の様になってしまいました。

これは、調べたところ.htaccessのオーバーライドが許可されていないことが原因のようでした。いつもはWebサーバを使っていたので、こんなエラーは発生しなかったのですが、どうもmacのapacheのhttpd.confを見ると許可してくれる設定になっていませんでした。
(参考:
http://book.cakephp.org/2.0/ja/installation/url-rewriting.html)

/etc/apache2/httpd.conf
<Directory />
    Options FollowSymLinks
    #ここを変更する
    #AllowOverride None
    AllowOverride all
    Order deny,allow
    Deny from all
</Directory>

apacheを再起動後、もう一度アクセスしてみます。

アクセス成功!

その他、CakePHPの設定については省略します。。。

mecab導入


基本的には青春B■雑記blog‐青酸カリ カラメルシロップ味‐さんと同じです。
(brewコマンドを使えばmecab導入が楽です。)

terminal
$ brew install mecab
$ brew install mecab-ipadic

terminal
#brewでインストールした場合は必要ないです
$ wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure --enable-utf8-only
$ make
$ make install

#brewでインストールした場合は必要ないです
$ wget http://sourceforge.net/projects/mecab/files/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz
$ tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-mecab-config=/usr/local/bin/mecab-config --prefix=/usr/local/ --with-charset=utf8
$ make
$ make install

$ wget https://github.com/downloads/rsky/php-mecab/php-mecab-0.5.0.tgz
$ tar xzvf php-mecab-0.5.0.tgz
$ cd php-mecab-0.5.0
$ phpize
$ ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
$ make
$ make install

途中でphpizeを使う必要があるのですがautoconfが入ってないと怒られます。そこでbrewでインストールしてしまいます。

terminal
$ brew install autoconf

これで、phpizeで怒られずconfigureが作成されます。
次に、phpからmecabを実行するために、php.iniにmecab.soを読み込ませます。
私の場合、mecab.soが
/usr/lib/php/extensions/no-debug-non-zts-20100525にあるようなので下記のように書き込みました。

/etc/php.ini
[Mecab]
extension_dir=/usr/lib/php/extensions/no-debug-non-zts-20100525
extension=mecab.so

CakePHPでmecabを実行


***Conroller.php
public function index()
{
        $res = mecab_split("今日の天気は晴れです。");
        $this->Set("res", $res);
}


index.ctp
<?php pr($res) ?>

みたいな感じでアクセスすると

成功!!


AD