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がぽつぽつと。

うーむ。

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

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

[mac] jenkinsインストール

jenkinsをインストールする。
brew install jenkins

自動起動させたい場合は、brew info jenkins で表示される通りに設定
mkdir -p ~/Library/LaunchAgents

ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents

手動で起動する場合は

 
java -jar /usr/local/opt/jenkins/libexec/jenkins.war

以上

CakePHP コーディング規約チェックの為に、php codeSnifferをインストール

PEARが入っていればコマンド一つです。
pear install PHP_CodeSniffer

ただし、デフォルトでCakePHP用が入っていないので、別途インストール
pear channel-discover pear.cakephp.org
pear install cakephp/CakePHP_CodeSniffer

 

[mac] PEARインストール

PEARの公式ドキュメント通りにやったけど、うまく動かなかったので
以下の方法で、インストールしました。
sudo php /usr/lib/php/install-pear-nozlib.phar

あとは、php.ini のinclude_pathに以下のパスを設定して終わり。
include_path = ".:/usr/lib/php/pear"

[mac] git をhomebrew版に入れ替える

macでいつのまにか、入ってたgit.
これ、XCodeをインストールした時に入ったものなんですね。
これをいつも使ってたのですが、いささか、バージョンが古いとのご指摘が。

そこで、homebrewで入れ直してみることに。


といっても、XCodeで入れたやつは消さないほうがよいらしい。

まず 、brewでgit をインストール
brew install git

このままでは、XCodeで入ったgitを見ちゃうので、/etc/paths を書き換える
/usr/local/bin  <- 一番上に移動

以上。

2013年1月26日土曜日

mac sed で invalid command code f

macでの話


/images/フォルダを/common/img/


に移して、ソースを一括置換しようとしたら


grep -lr /images/ * | xargs sed -i 's:/images/:/common/img/:g'


ってやったら、


"sed: 1 "xxx.php": invalid command code f"


って出た。-i の後ろに""を付けたらうまくいくとのことで、


grep -lr /images/ * | xargs sed -i "" 's:/images/:/common/img/:g'


としたら、成功。

git の初期設定

 


 


[初期設定]


$ git config --global user.name "xxxx"


$ git config --global user.email "xxx@xxx.com"


 


[ショートカット]


$ git config --global alias.ci commit


$ git config --global alias.st status


 


[色をつける]


$ git config --global color.ui auto

2013年1月22日火曜日

port forward したmysqlが接続できない

DBをポートフォワードして、


開発しようとしたら、どうしても


No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)
的なエラーで、接続できない。


原因は、「localhost」で接続していたこと。


これを


[127.0.01]


に変更したら接続できた。


localhostにた場合、TCP/IPを利用せずに、Unixソケットを使う為、


上記エラーが表示。



TCP/IPで接続したらOK.


 

mac brewで入れたmysql が起動しない

[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.


なエラーが出て起動できない。


 


原因は権限



chown -R _mysql:wheel /usr/local/var/mysql

mysql.server start

 

で起動できることを確認。