MacBook Proに買い換えて、しばらくMAMP(バージョン 3.0.5)を使ってローカル開発をしていましたが、今回はmacデフォルトのapacheを使ってローカル開発することにしました。
brewで導入したかったのですが、上記コマンドを実行してもhttpdが見つからなかったという理由ですが。
ローカル開発環境
私は毎回打つのが面倒なので.bashrcにaliasとして登録しています。
これでterminalでapachestartで起動できるようになりました。
デフォルトのままですと、アクセスされるディレクトリは下記のようになっていると思います。
これで、CakePHP本体をダウンロードできました。
ここで、apacheが起動できている状態でCakePHPフォルダにアクセスすると最初のページが表示されるはずなんですが、写真の様になってしまいました。
これは、調べたところ.htaccessのオーバーライドが許可されていないことが原因のようでした。いつもはWebサーバを使っていたので、こんなエラーは発生しなかったのですが、どうもmacのapacheのhttpd.confを見ると許可してくれる設定になっていませんでした。
(参考:http://book.cakephp.org/2.0/ja/installation/url-rewriting.html)
apacheを再起動後、もう一度アクセスしてみます。
アクセス成功!
その他、CakePHPの設定については省略します。。。
基本的には青春B■雑記blog‐青酸カリ カラメルシロップ味‐さんと同じです。
(brewコマンドを使えばmecab導入が楽です。)
途中でphpizeを使う必要があるのですがautoconfが入ってないと怒られます。そこでbrewでインストールしてしまいます。
これで、phpizeで怒られずconfigureが作成されます。
次に、phpからmecabを実行するために、php.iniにmecab.soを読み込ませます。
私の場合、mecab.soが/usr/lib/php/extensions/no-debug-non-zts-20100525にあるようなので下記のように書き込みました。
みたいな感じでアクセスすると
成功!!
terminal
$ brew tap homebrew/dupes
$ brew search httpd
$ 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
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
AllowOverride all
Order deny,allow
Deny from all
</Directory>
apacheを再起動後、もう一度アクセスしてみます。
アクセス成功!
その他、CakePHPの設定については省略します。。。
mecab導入
基本的には青春B■雑記blog‐青酸カリ カラメルシロップ味‐さんと同じです。
(brewコマンドを使えばmecab導入が楽です。)
terminal
$ brew install mecab
$ brew install mecab-ipadic
$ brew install mecab-ipadic
terminal
#brewでインストールした場合は必要ないです
$ wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
$ wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure --enable-utf8-only
$ make
$ make install
#brewでインストールした場合は必要ないです
#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_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) ?>
みたいな感じでアクセスすると
成功!!