HomebrewでPHP5.3.6をインストールする

Formulaとあわせて手順を公開されてる記事があったのでそちらを参考に。

Formulaを落としてきて所定のディレクトリに配置。

$ curl -O https://github.com/ampt/homebrew/raw/php/Library/Formula/php.rb
$ mv php.rb `brew --prefix`/Library/Formula

インストールオプションを確認したり。

$ brew options php
php
--with-mysql
        Include MySQL support
--with-pgsql
        Include PostgreSQL support
--with-mssql
        Include MSSQL-DB support
--with-fpm
        Enable building of the fpm SAPI executable
--with-apache
        Build shared Apache 2.0 Handler module
--with-intl
        Include intl extension
--with-readline
        Include readline extension

今回はmysql,pgsql,apache,intlをチョイス。

brew install php --with-mysql --with-pgsql --with-apache --with-intl

intlはSymfony2で遊ぶのに必要。pgsqlつけたらPostgreSQL本体もインストールされた。
ビルドが終わるまで待つ…インストールおわり。

次はパスを通したりの作業。MacにはもともとPHPが入っていて(Xcodeと一緒に入るんだっけ?)そっちが優先されるので、切り替えていく。

まずはCLIのPHPを切り替える。zsh使ってるので~/.zshenvに追記。

echo 'export PATH='`brew --prefix php`'/bin:$PATH' >> ~/.zshenv

次はApachePHP。/etc/apache2/httpd.confを編集。

#LoadModule php5_module        libexec/apache2/libphp5.so
LoadModule php5_module        /usr/local/Cellar/php/5.3.6/libexec/apache2/libphp5.so
$ sudo apachectl restart

これで終わり。

ユーザー領域にPEARをインストールする

システムとは別の場所にPEARをインストールする手順。たぶんPerlでいうところのlocal::lib的なもの。すでにシステムにPEARがインストールされているのが前提。

ここでは~/local/php以下にインストールすることにする。

個別PEAR用の設定ファイルの生成

# インストールパスと設定ファイルのパスを指定
$ pear config-create ~/local/php ~/.pearrc.local

~/local/phpの中のpearディレクトリにインストールするように設定されたファイルが生成される。
この設定ファイルを使ってPEARをインストールしていく。

チャンネル情報を更新

$ pear -c ~/.pearrc.local uc

PEAR本体をインストール

$ pear -c ~/.pearrc.local i pear

これでOK。

インストールファイルを確認

$ ls ~/local/php/pear
cache    data     docs     download ethna    pear     peardev  pecl     php      temp     tests

~/local/php/pear/pearpearコマンド。今後はこれを使う。

ついでに、このままだとコマンドがこんな感じでいちいち長いので

$ ~/local/php/pear/pear -c ~/.pearrc.local

aliasを設定しとく。例えば.zshrcに

alias lpear="$HOME/local/php/pear/pear -c $HOME/.pearrc.local"

と書いとけば

$ lpear

で使えるようになる。

以上で終わり。もちろんシステム側のPEARにはなにも影響しない。WEBフレームワークと組み合わせて、vendorディレクトリにインストールしたりするとかいいかも。

swfedのインストール on Homebrew@Mac OS 10.6.6

HomebrewなMac環境でswfedをインストールするときにちょっとはまったのでメモ。

環境

$ php -v
PHP 5.3.3 (cli) (built: Aug 22 2010 19:41:55) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

$ brew -v
0.7.1

依存するライブラリのインストール。

$ brew install libpng
$ brew install giflib

あと

$ brew link libpng

てやらないとpng.hが見つからなくてPNGサポートが有効にならない(ここではまった)。

あとはいつもどおり、ぺちぱいずしてこんふぃぎゅあーでめいく。

$ pwd
swfed-0.28
$ cd src
$ phpize
$ ./configure
$ make

src/modulesにswfed.soができあがるのでextension_dirにコピー。

$ php -i | grep extension_dir
extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20090626 => /usr/lib/php/extensions/no-debug-non-zts-20090626
$ sudo cp modules/swfed.so /usr/lib/php/extensions/no-debug-non-zts-20090626/

デフォルトの状態ではphp.iniが無いので作成する(ここでもちょっとはまった)。

$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
$ cd /etc
$ sudo cp php.ini.default php.ini
$ sudo chmod +w /etc/php.ini
$ sudo vi php.ini
「extension=swfed.so」を追記

確認。

$ php -i

.. 略 ..

swfed

SWF Editor support => enabled
SWF Editor version => 0.28
SWF Editor PNG support => yes
SWF Editor GIF support => yes

.. 略 ..

おわり。

第2回 関西アンカンファレンスに参加した

当日のセッション一覧をid:iseebiさんが作成されています。感謝!
http://d.hatena.ne.jp/iseebi/20110108/p1

以下聴いたセッションのメモ。

PHPがこの先生きのこるために何か」PHP光源氏計画 (@tbsmcdさん)

おみくじで必ず「大吉」を引くたったひとつの方法 (@ryo_ryoo_ryoooさん)

  • 大吉 16%
  • 今日 35%
  • 結論:大吉がでるまでやり続ける

sshの公開鍵認証について考えてみよう (@Ten_forwardさん)

  • 暗号で防ぐもの
    • 盗聴
    • 改ざん
    • なりすまし
    • 否認
  • だれと通信するのか?
  • 事例
  • 秘密鍵のパスフレーズはネットワーク上を流れない

zshで記号プログラミング (@mollifierさん)

  • 記号だけでHello, World!

Webサービスと言語について (@griffin374さん)

伝わるプレゼンの組み立て方を考える (@shokutoさん)

  • プレゼンはハッピーなもの
  • パワポは一直線
  • 時間を確認

海外で起業しよう!-オンライン英会話編- (@@tomoyatouさん)

  • フィリピンで企業
  • 英会話サイト
  • WordPressCakePHPで開発
  • Emacs
    • MySQLに接続できる
    • Git
  • 海外での起業は楽しい!

WEBの中に見られるバビロンシステム (slywalkerさん)

新感覚のURL短縮サービスを作ってみた (@mzsm_jさん)

  • URLが説明文になっている(日本語ドメイン)

Gmailはショートカットでサクサク使おう (@msngさん)

  • やりたいことはだいたいできる

WindowsのTwitterアプリJanetterの紹介 (@sinnerthesinnerさん)

美味しそうな写真の撮り方 (@griffin374さん)

  • 背景には何も無いほうがいい

迷えるWEBデザイナー2011年をFLASHで切り抜ける (@mrhdmsさん)

  • Progression
    • フルFlashサイトなら一択
    • 国産
  • THE Hype Framework
    • ビジュアルエフェクト
  • EASELjs
    • ASライクにJSが書ける

WEBの中に見られるバビロンシステム まとめ (@slywalkerさん)

  • バビロンシステムとWEBサービスの比較

Emacsデモ (@tomoyaさん)

  • point-undo

いつか役に立つかもしれないマーケティングのあれこれ (@kekoさん)

  • LPO(着地ページ最適化)

iPhoneアプリの作り方10個 (@mogyaさん)

  • 1/29 Titanium Mobile 勉強会

ライブストリーミングあれこれ (@GoaRICKさん)

大阪で2番目に分かりやすいjQueryプラグインの作り方 (@kamiyamさん)

Lithiumの紹介 (@nano_eightさん)

要求開発について (@ntaijiさん)

  • 要求開発とは?
  • WEB系と業務系の壁

以上メモおわり。
気になったキーワードをリストアップしてみる。

  • Titanium
  • プレゼンはハッピーなもの
  • バビロンシステム
  • point-undo.el
  • LPO
  • 要求開発

いやー面白い話いっぱい聞けました。発表されたみなさん、おつかれさまでした。

UINavigationControllerのアニメーションをカスタマイズしたい(未解決)

UINavigationControllerのアニメーションをカスタマイズしたいなと思って、ググってたらこんな情報があった。

iphone - UINavigationController Custom Transition Animations - Stack Overflow

Core Animationを使ってアニメーションさせて、アニメーションが終わったらアニメーションOFFでpushViewControllerする、という方法。

これでうまくいくかと思ったけど、この方法だとアニメーション中は片方のビューコントローラのビューしか表示されない。標準のアニメーションみたいにアニメーション中も両方のビューを表示したい。

なのでこんな方法を考えた。

// ビューをねじこむ
[self.navigationController.view addSubview:nextViewController.view];

// Get position of old view controller
CGPoint center = [oldViewController.view center];

// Position new view controller to the right of old one
[newViewController.view setCenter:CGPointMake(center.x + 320, center.y)];

// Animate change
[UIView beginAnimations:@"myAnimation" context:NULL];

// Move old view off screen
[oldViewController.view setCenter:CGPointMake(center.x - 320, center.y)];

// Move new view onto screen
[newViewController.view setCenter:center];

// Set animation delegate to self so that we can detect when animation is complete
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationComplete:finished:target:)];

// Finish animation block
[UIView commitAnimations];

あらかじめaddSubviewしとけば表示されるんじゃないの、と。
なんとなく望む結果になったけど、ナビゲーションバーの表示にかぶったり座標がなんかずれたりよくわからない。
もう自分で一から画面遷移のコード書いた方が早い気がしてきた...。