2014年5月23日金曜日

[mac] phpenv php-buildで入れたphpにintl拡張モジュールを入れる

$ phpenv -v
PHP 5.3.25 .......

の状態とする。

$ brew link icu4c
$ brew link icu4c --force

$ cd
$ mkdir tmp
$ cd tmp
$ wget http://pecl.php.net/get/intl-3.0.0.tgz
$ tar zxvf intl-3.0.0.tgz
$ cd intl-3.0.0
$ phpize (phpモジュールをあとから拡張するコマンド)
$ ./configure
$ make
$ make install

$ cd ~/.phpenv/versions/5.3.25/etc/conf.d/
$ vi intl.ini
# extension="/Users/(username)/.phpenv/versions/5.3.25/lib/php/extensions/no-debug-non-zts-20090626/intl.so"

$ sudo apachectl restart

2013年12月10日火曜日

Mavericsにphp5.3

作業ログ
http://qiita.com/suin/items/26162a4ebcbbb351b879
さんの記事より参考にさせてもらいました。

> brew tap Homebrew/dupes
> brew tap josegonzalez/php
> brew install php-build
> brew install php-version

.bash_rcに追記
> export PHP_VERSIONS=${HOME}/local/php/versions
> [ -f $(brew --prefix php-version)/php-version.sh ] && source $(brew --prefix php-version)/php-version.sh && php-version 5.4.0 >/dev/null

> brew install re2c
> brew install jpeg
> brew install libpng
> brew install mcrypt

5.3.10のビルドオプションを追加
> vi /usr/local/share/php-build/definitions/5.3.10
> configure_option "--with-apxs2" "/usr/sbin/apxs"
> configure_option -D "--enable-fpm"
> install_package "http://www.php.net/distributions/php-5.3.10.tar.bz2"
> install_pyrus
> install_xdebug "2.1.3"

after-install.dに何かないとエラーになるので、phpのtimezoneを設定するシェルを置く
> vi usr/local/Cellar/php-build/0.10.0/share/php-build/after-install.d/date.sh
> #!/bin/bash
> set -e
>
> if [ -n "$PHP_BUILD_DEBUG" ]; then
> set -x
> fi
>
> date_ini="$PREFIX/etc/conf.d/date.ini"
>
> if [ ! -f "$date_ini" ]; then
> echo "[Date]" > $date_ini
> echo "date.timezone = Asia/Tokyo" >> $date_ini
> fi

> chmod 755 date.sh

5.3.10をビルド
> php-build 5.3.10 $HOME/local/php/versions/5.3.10

2013年6月19日水曜日

[mac] ターミナルからSublimeText2を起動

コマンドで該当プロジェクトのディレクトリ行って

[shell]
open .
[/shell]

してから、FinderからSubLime Text2にドラッグドロップしてたけど

[shell]
ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/bin/subl
[/shell]

してやると openの代わりに

[shell]
subl .
[/shell]

で直接開けますよと。

2013年6月14日金曜日

CakeEmail 添付ファイルで日本語ファイル名が文字化けする

Cake2系でCakeEmailを使ってメール送信処理をしてたのですが、
日本語のファイル名を添付すると文字化けしておりました。

プログラム内の文字コード:UTF8
メールの文字コード:ISO-2022-JP

の時に、mb_convert_encoding で、ファイル名について文字コード変換を行ってやる。

本文等はConfig/email.phpのcharsetで設定できるけど、添付ファイル名は駄目みたいですね。

[php]

$email = new CakeEmail('default');

$email->to( "xxxxxxxxxx@xxxxxxx.com" );

$title = mb_convert_encoding("あいうえおのお知らせ", 'ISO-2022-JP', 'UTF-8');

$email->attachments(array($title => array('file'=>ファイルパス)));
・・・
$email-send();

[/php]

って感じ

2013年6月13日木曜日

git リポジトリから特定のファイルorフォルダのキャッシュログを削除

 

git のリポジトリに大量のリソースファイルなどが入ってて、毎回cloneしてくる時に遅かったので
別プロジェクトに移動した。

とはいえ、コミットログに残り続けてるので、やっぱり重い。
そこで、キャッシュログから削除する方法

[shell]
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch resources/*' --prune-empty --tag-name-filter cat -- --all
[/shell]

上記は[ resouce ]フォルダ以下のコミットログを過去にさかのぼって消していく方法コマンド

 

 

2013年6月4日火曜日

php5.2 5.3共存させる

現状:PHP5.2
希望:PHP5.2 PHP5.3共存

■php 5.3インストール
[shell]
cd /usr/local/src
wget http://jp1.php.net/get/php-5.3.25.tar.gz/from/this/mirror
tar zxvf php-5.3.25.tar.gz
cd php-5.3.25
./configure --prefix=/usr/local/php53 --enable-mbstring --with-gd --with-mysql=/usr/local/mysql --with-mysqli --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-jpeg-dir --with-iconv

make
make install
[/shell]

■Apacheの設定

httpd.confに以下を追加
ScriptAlias /php53/ /usr/local/php53/bin/
<Directory "/usr/local/php53/bin">
AllowOverride None
Options +ExecCGI -MultiViews
Order allow,deny
Allow from all
</Directory>

使いたいDirectoryで以下を設定
<Directory "/xxxxx/xxxxxx/">
AllowOverride All
Order allow,deny
Allow from all
Options -Indexes FollowSymLinks ExecCGI

<IfModule mod_php5.c>
php_flag engine off
</IfModule>
AddHandler application/x-httpd-php53cgi .php
Action application/x-httpd-php53cgi /php53/php-cgi
</Directory>

■php.ini のtimezoneの設定
cd /usr/local/php53/bin/
cp /usr/local/src/php-5.3.25/php.ini-development php.ini
vi php.ini
date.timezone = Asia/Tokyo  <-これを設定しないとエラーを吐くよ

■Apache再起動

以上どす

2013年6月3日月曜日

CakePHP コーディング規約チェックをJenkinsで実行

ERRORが大量、Warningがぽつぽつと。

うーむ。

何が悪いかは、なんかオプションつけたら、指摘してくれるんかなー。

とりあえず、今日はここまで。