2012年 3月 の投稿一覧

横幅のサイズによってタブのサイズを変える方法

スマートフォンのサイトに限った話では無いですが、横幅(表示領域)によって要素の長さを変えたい時はあると思います。
今回は、横幅によってタブのサイズを変える必要が有ったのでその時の実装メモです。

flexible tabs – jsdo.it – share JavaScript, HTML5 and CSS

初期表示時と画面がリサイズ(スマートフォンの場合は、縦表示→横表示など)された際に、javascriptでタブのサイズを変更するようにしています。
※スマートフォン用に作成したので、IEなどのブラウザではうまく動かないかもです。。。

flexible tabs – jsdo.it – share JavaScript, HTML5 and CSS

PHPのバージョンを管理するphpbrewを使ってみた

バージョンの異なる実行環境を切り替えたり、インストールしたりと管理できるツールとしてはrvm(ruby)perlbrew(perl)nodebrew(node.js)と言ったものが有名所ですが、PHPにもphpbrewというツールがある事を知ったので使ってみました。

c9s/phpbrew · GitHub.

インストール

環境はMac OS X Lionです。
元々、入っているPHPのバージョンは5.3.8でPHP4.4.9はコンパイルして入れたものが入っています。

[suusuke@macbook ~]$ php -v
PHP 5.3.8 with Suhosin-Patch (cli) (built: Nov 15 2011 15:33:15) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
[suusuke@macbook ~]$ php4 -v
PHP 4.4.9 (cli) (built: Mar 26 2011 10:08:22)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

phpbrewインストール

c9s/phpbrew · GitHub に書いてある手順どおりインストールします。

[suusuke@macbook ~]$ sudo pear channel-discover pear.corneltek.com
Password:
Adding Channel "pear.corneltek.com" succeeded
Discovery of channel "pear.corneltek.com" succeeded
[suusuke@macbook ~]$ sudo pear install -a -f corneltek/PhpBrew
Password:
downloading PhpBrew-1.0.2.tgz ...
Starting to download PhpBrew-1.0.2.tgz (43,519 bytes)
............done: 43,519 bytes
downloading Universal-1.0.2.tgz ...
Starting to download Universal-1.0.2.tgz (10,805 bytes)
...done: 10,805 bytes
downloading CLIFramework-1.0.6.tgz ...
Starting to download CLIFramework-1.0.6.tgz (8,432 bytes)
...done: 8,432 bytes
downloading GetOptionKit-1.0.0.tgz ...
Starting to download GetOptionKit-1.0.0.tgz (10,801 bytes)
...done: 10,801 bytes
install ok: channel://pear.corneltek.com/Universal-1.0.2
install ok: channel://pear.corneltek.com/GetOptionKit-1.0.0
install ok: channel://pear.corneltek.com/CLIFramework-1.0.6
install ok: channel://pear.corneltek.com/PhpBrew-1.0.2
[suusuke@macbook ~]$ cd ~/
[suusuke@macbook ~]$ git clone git@github.com:c9s/phpbrew.git
Cloning into phpbrew...
Identity added: /Users/suusuke/ssh/github/id_rsa (/Users/suusuke/ssh/github/id_rsa)
remote: Counting objects: 1130, done.
remote: Compressing objects: 100% (436/436), done.
remote: Total 1130 (delta 676), reused 1014 (delta 560)
Receiving objects: 100% (1130/1130), 926.93 KiB | 244 KiB/s, done.
Resolving deltas: 100% (676/676), done.
[suusuke@macbook ~]$ cd phpbrew
[suusuke@macbook phpbrew]$ sudo pear install -f package.xml
install ok: channel://pear.corneltek.com/PhpBrew-1.1.1
[suusuke@macbook ~]$ ./phpbrew init
Phpbrew environment is initialized, required directories are created under

    ~/.phpbrew

Paste the following line(s) to the end of your ~/.bashrc and start a
new shell, phpbrew should be up and fully functional from there:

    source ~/.phpbrew/bashrc

For further instructions, simply run `phpbrew` to see the help message.

Enjoy phpbrew at $HOME!!
[suusuke@macbook ~]$ source ~/.phpbrew/bashrc 

インストールできるバージョンの確認

[suusuke@macbook ~]$ ./phpbrew/phpbrew known
Available stable versions:
	php-5.4.0
	php-5.3.10
	php-5.3.9
	php-5.3.8
	php-5.3.7
	php-5.3.2
	php-5.3.1
Available svn versions:
	php-svn-head
	php-svn-5.3
	php-svn-5.4
Available versions from PhpStas:
	php-5.4.0
	php-5.4.0RC1
	php-5.4.0RC2
	php-5.4.0RC3
	php-5.4.0RC4
	php-5.4.0RC5
	php-5.4.0RC6
	php-5.4.0RC7
	php-5.4.0RC8
	php-5.4.0alpha1
	php-5.4.0alpha2
	php-5.4.0alpha3
	php-5.4.0beta1
	php-5.4.0beta2

インストールできるオプションの確認

[suusuke@macbook ~]$ ./phpbrew/phpbrew variants
Variants
    pdo
    pear
    gd
    openssl
    mysql
    sqlite
    pgsql
    cli
    ftp
    sockets
    apxs2
    debug
    cgi
    soap
    pcntl
    intl
    imap
    kerberos

Example:

    phpbrew install php-5.3.10 +mysql +pdo
    phpbrew install php-5.3.10 +mysql +pdo +apxs2
    phpbrew install php-5.3.10 +mysql +pdo +apxs2=/usr/bin/apxs2

PHP5.4.0をインストールして使ってみる

[suusuke@macbook ~]$ ./phpbrew/phpbrew -d install --no-test php-5.4.0
===> Downloading http://www.php.net/distributions/php-5.4.0.tar.bz2
######################################################################## 100.0%
===> Extracting...
===> Configuring php-5.4.0...
./configure '--prefix=/Users/suusuke/.phpbrew/php/php-5.4.0' '--with-config-file-path=/Users/suusuke/.phpbrew/php/php-5.4.0/etc' '--with-config-file-scan-dir=/Users/suusuke/.phpbrew/php/php-5.4.0/var/db' '--with-pear=/Users/suusuke/.phpbrew/php/php-5.4.0/lib/php' '--disable-all' '--enable-bcmath' '--enable-ctype' '--enable-dom' '--enable-exif' '--enable-fileinfo' '--enable-filter' '--enable-hash' '--enable-fpm' '--with-xsl' '--with-tidy' '--with-xmlrpc' '--enable-json' '--enable-libxml' '--enable-mbregex' '--enable-mbstring' '--enable-phar' '--enable-session' '--enable-short-tags' '--enable-simplexml' '--enable-sockets' '--enable-tokenizer' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--enable-zip' '--with-bz2' '--with-mhash' '--with-pcre-regex' '--with-zlib=/opt/local' '--with-libxml-dir' '--with-curl=/opt/local' '--with-gettext=/opt/local' '--with-libedit=/usr' '--with-readline' '--enable-pdo' '--enable-cli'
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
configure: error: bz2 module requires libbz2 >= 1.0.0
===> Building php-5.4.0...
make: *** No targets specified and no makefile found.  Stop.
Skip tests
Build finished: 0 minutes.
===> Installing...
---> Copying php.ini-development 
Source directory: 
Done!
To use the newly built PHP, try the line(s) below:

    $ phpbrew use php-5.4.0

Or you can use switch command to switch your default php version to php-5.4.0:

    $ phpbrew switch php-5.4.0

あれ!?

configure: error: bz2 module requires libbz2 >= 1.0.0

configureでエラーになる。。。

with-bz2オプションでlibbz2のパス指定すればいいのかなと思って、パラメータで指定してみたがnot definedとなって、パラメータでは指定できないみたい。。。

[suusuke@macbook ~]$ phpbrew -d install php-5.4.0 --with-bz2=/usr/lib/libbz2.dylib 
===> Downloading http://www.php.net/distributions/php-5.4.0.tar.bz2
######################################################################## 100.0%
===> Extracting...
Variant --with-bz2 is not defined.

わからない。。。I don’t know…

追記

libbz2がインストールされてないんじゃないの?とコメント頂いたので、調べてみる。

[suusuke@macbook ~]$ ll /usr/lib/libbz2.dylib 
lrwxr-xr-x  1 root  wheel  16  9 20 02:36 /usr/lib/libbz2.dylib -> libbz2.1.0.dylib

あるよね。。。
ホントに!?

macportsで調べる

[suusuke@macbook ~]$ sudo port installed
Password:
Warning: port definitions are more than two weeks old, consider using selfupdate
The following ports are currently installed:
  apache2 @2.2.10_0+darwin_9 (active)
  ...

macportsには無かった、取り合えずmacportsが古いといっているのでselfupdateしてmacportsで入れてみる。

[suusuke@macbook ~]$ sudo port -d selfupdate
[suusuke@macbook ~]$ sudo port upgrade outdated
[suusuke@macbook ~]$ sudo port upgrade installed

※途中port upgradeでmysqlのアップデートに失敗してmysqlがcleanされてしまい、コンパイルするのに一日費やしてしまった。。。

[suusuke@macbook ~]$ sudo port clean mysql5-devel
[suusuke@macbook ~]$ sudo port install mysql5-devel configure.compiler=llvm-gcc-4.2

コンパイラーをllvm-gcc-4.2するとコンパイルに成功した。

macports自信とライブラリをアップデートしたら、問題なくphpbrew -d install php-5.4.0に成功した。
bz2関連のライブラリが古かったのだろうか。。。。