2013.08.18 Sunday
cakephp1.3 simpletestの導入
cakephp1.3
centos5.8
にsimpletestを導入したのですが、マニュアルのとおりにやってもだめだったので、メモ。
・simpletest1.0.1をダウンロード
wget http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.0.1/simpletest_1.0.1.tar.gz/download
※バージョン1.1は使えないので、注意
・解凍して、app/vendorsフォルダにおく
http://ドメイン名/CakePHPのフォルダ/test.php
にアクセス
以下の警告がでたら、、
Warning (2): htmlentities() [function.htmlentities]: charset `ANSI_X3.4-1968' not supported, assuming iso-8859-1
[CORE/cake/tests/lib/reporter/cake_html_reporter.php, line 376]
vi cake/tests/lib/reporter/cake_html_reporter.php
38行目と39行目を入れ替える
//$params = array_map(array($this, '_htmlEntities'), $params);
//$this->CakeBaseReporter($charset, $params);
$this->CakeBaseReporter($charset, $params);
$params = array_map(array($this, '_htmlEntities'), $params);
再度、
http://ドメイン名/CakePHPのフォルダ/test.php
にアクセス
・phpのバージョンが5.2.0以前の場合、array_fill_keys()がエラーになるので、以下を追加して代替。
vi cake/tests/lib/cake_test_fixture.php
function array_fill_keys($arr, $val) {
foreach ($arr as $key) {
$rtn[$key] = $val;
}
return $rtn;
}
再度、
http://ドメイン名/CakePHPのフォルダ/test.php
動きました。
・カバレッジを確認したいので、続いてxdebugのインストール
yum install php-devel
(phpizeに必要)
yum install gcc
(makeに必要)
・xdebugのダウンロード、ビルド
git clone https://github.com/derickr/xdebug
cd xdebug
phpize
./configure --enable-xdebug
make
・xdebugの配置、設定
cp module/xdebug.so /usr/libexec/apache2/.
vi /etc/php.ini
以下を追加
[xDebug]
zend_extension="/usr/libexec/apache2/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
apache再起動
/etc/rc.d/init.d/httpd restart
2013/8/19
array_fill_keysが間違っていたので、修正しました。
これでカバレッジまでOK。
2013.08.13 Tuesday
【CakePHP】mod_rewriteの設定
CakePHP1.3を仕事で使ってるんですが、環境構築して、いざ開発を始めたところ、コントローラが動かなくてハマりました。
弊社の新人にやってみてといったら、あっさり解決してくれました。
すごいやつ。
そのときのメモ。サーバはcentos5.8。
1.mod_rewriteを有効にする。
vi /etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
となっていること。
⇒これはなってた。
2. .htaccessを有効にする。
vi /etc/httpd/conf/httpd.conf
<Directory "/home/htdocs">
Options FollowSymLinks
AllowOverride All
</Directory>
⇒これはなってなかった。
指定ディレクトリに
・シンボリックリンクを認識
・.htaccessの利用を許可
を設定している。
httpd再起動
/etc/rc.d/init.d/httpd restart
3.アプリケーション直下に.htaccessファイルを作成する。
⇒これもなかった。
vi .htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
これでできました。
mod_rewriteを有効にしない場合、以下のアドレスでコントローラを呼ぶ。
http://cakeのパス/index.php/コントローラ/メソッド/パラメータ
これは、カッコ悪いね。
参考
2013.08.08 Thursday
gitレポジトリの作成
CakePHPの開発環境にgitを採用しました。
centosにgitレポジトリを作成して、クライアントPCのEclipseのEGitプラグインから利用。
プッシュ時にデプロイするフックを設定しました。
デプロイにjenkinsとか必要かと思っていましたが、フックだけでできちゃいました。
subversionでもフックってあったらしい。
ビルドもできるね。知らなかった。
jenkinsはテストを自動化して、レポート作成が出来る点が強力なのだろう。
とりあえず、そのときのサーバ側の設定メモ。
■gitインストール
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.i386.rpm
yum install git
centosにはレポジトリがないので、追加をするのがポイント
■サーバレポジトリ作成
レポジトリディレクトリを作成(gitrepo.gitをレポジトリにする場合)
mkdir gitrepo
cd gitrepo
git init
管理ファイルをレポジトリへコピーして、追加、コミット
cp -pR /home/xxx .
git add .
git commit -m 'initial commit.'
※今回はcakephpのプロジェクトを登録したのだけど、.gitignoreにconfigなどの初期ディレクトリのいくつかが記述されているので、管理したい場合は消す。
共有レポジトリを作成
cd ..
mkdir gitrepo.git
git clone --bare gitrepo gitrepo.git
共有レポジトリはみんなで触れる
chmod -R o+w gitrepo.git
さっき作ったレポジトリは使わないので削除
rm -rf xxx
■プッシュ時フック設定
cd gitrepo.git/hooks
vi post-update
vi post-update
※post-updateの内容
#!/bin/sh
cd /home/gitrepo.git
cd /home/gitrepo.git
git archive master | tar -x -C /home/htdocs/xxx
シェルに実行権限を付与
chmod 755 post-update
※レポジトリはプロジェクトごとに分割したほうがよい。
svnはサブディレクトリからチェックアウトできたが、gitはrootディレクトリからのチェックアウトになるみたい。
2013.08.02 Friday
amazon redshift
amazon redshiftのセミナーに参加してきました。
仕事で使うかもということで調べています。
amazon web servicesの提供するsaasである。
dwhである。
いわゆるビッグデータを扱うデータベース。
テラバイト〜ペタバイトデータを格納可能。
従量課金制で、従来型の1/10程度の価格。
バックアップ設定、チューニングなどが自動化されている。
カラムナ型データベースである。
postgresqlのクエリが使える。
従来型dwhと比較して、10倍程度の性能が向上。
各種BIツールもある。(データ分析をするためのツール)
設定が簡単で、性能が優れ、価格も安価なdwh。
いいことばかり云ってましたケド、amazonのサービスなので信頼できることでしょう。
実際にhadoopとの比較をされた方のスライドがありました。
みんなhadoopから乗り替えるかな。