HipHop for PHP インストールログ
Amazon EC2 CentOS 64bit 版にインストール
インストールの準備(yum 系)
cd /usr/local/src mkdir hiphop cd hiphop yum --enablerepo=rpmforge -y install git yum install gcc44 cmake g++ libboost-dev flex bison re2c libmysqlclient-dev libxml2-dev libmcrypt-dev libicu-dev openssl binutils-dev libcap-dev libgd2-xpm-dev zlib1g-dev libtbb-dev libonig-dev libpcre3-dev git-core autoconf libtool libcurl4-openssl-dev libboost-system-dev libboost-program-options-dev libboost-filesystem-dev yum remove libevent yum install boost boost-devel yum install mcrypt yum install php-mcrypt libmcrypt mysql-libs php-mysql mysql libmemcached yum install pcre-devel pcre yum install libxml2-devel yum install expat expat-devel yum install bzip2 rpm -e mcrypt-2.6.8-1.el5.x86_64 rpm -e php-mcrypt-5.3.3-1.el5.remi.x86_64 rpm -e libmcrypt-2.5.8-4.el5.centos yum install mcrypt libmcrypt bzip2-devel yum install openldap-servers openldap-clients openldap-devel yum install readline-devel yum install libcap-devel libmcrypt-devel libssh2 openssl-devel re2c yum install binutils-devel ncurses-devel
.bashrc_profile の設定
LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/lib64 export LD_LIBRARY_PATH export TBB20_INSTALL_DIR=/usr/local/tbb22_012oss source $TBB20_INSTALL_DIR/intel64/cc4.1.0_libc2.4_kernel2.6.16.21/bin/tbbvars.sh
boost インストール
yum で入れられる boost が古すぎるため、入れる前に古いバージョンを削除すること /usr/local/include, /usr/local/lib, /usr/local/lib64 など
wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/h/project/hp/hphp/CentOS%205%2064bit/RPM/boost-1.37.0-1.x86_64.rpm wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/h/project/hp/hphp/CentOS%205%2064bit/RPM/boost-devel-1.37.0-1.x86_64.rpm rpm -Uvh boost-1.37.0-1.x86_64.rpm rpm -Uvh boost-devel-1.37.0-1.x86_64.rpm
libevent インストール
wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz tar -xzvf libevent-1.4.13-stable.tar.gz cd libevent-1.4.13-stable cp ../hiphop-php/src/third_party/libevent.1.4.13.fb-changes.diff . patch < libevent.1.4.13.fb-changes.diff ## patch はパスが通らないときは diff ファイルの中に書いてあるパスを変えたりする ./configure make make install cd ..
鬼車インストール
wget http://www.geocities.jp/kosako3/oniguruma/archive/onig-5.9.2.tar.gz tar xvfz onig-5.9.2.tar.gz cd onig-5.9.2 ./configure && make && sudo make install
ICU4 インストール
wget http://download.icu-project.org/files/icu4c/4.2.1/icu4c-4_2_1-src.tgz tar -xvzf icu4c-4_2_1-src.tgz cd icu/source ./configure make make install cd ../../
RPM は ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/h/project/hp/hphp/CentOS%205%2064bit/RPM/libicu-4.2.1-6.x86_64.rpm にある
libCurl インストール
wget http://curl.haxx.se/download/curl-7.20.0.tar.gz tar -xvzf curl-7.20.0.tar.gz cd curl-7.20.0 cp ../hiphop-php/src/third_party/libcurl.fb-changes.diff . ## libcurl.fb-changes.diff を修正ここから curl-old/include/curl/multi.h 20 May 2008 10:21:50 -0000 1.45 curl-new/include/curl/multi.h 29 Jan 2010 23:45:18 -0000 を include/curl/multi.h 20 May 2008 10:21:50 -0000 1.45 include/curl/multi.h 29 Jan 2010 23:45:18 -0000 に。 curl-old/lib/multi.c 28 Jan 2010 15:34:18 -0000 1.210 curl-new/lib/multi.c 29 Jan 2010 23:45:19 -0000 を lib/multi.c 28 Jan 2010 15:34:18 -0000 1.210 lib/multi.c 29 Jan 2010 23:45:19 -0000 に。 ## patch -p0 < libcurl.fb-changes.diff ./configure make make install cd ..
TBB の設定
参考:http://www.threadingbuildingblocks.org/ver.php?fid=161
wget http://www.threadingbuildingblocks.org/uploads/78/146/2.2%20update%202/tbb22_012oss_lin.tgz tar zxvf tbb22_012oss_lin.tgz mv tbb22_012oss /usr/local/. export TBB_INSTALL_DIR="/usr/local/tbb22_012oss" export TBB_ARCH_PLATFORM="$TBB_INSTALL_DIR/intel64/cc4.1.0_libc2.4_kernel2.6.16.21"
パス設定および Hiphop for PHP のビルド (hiphop アカウント)
cd hiphop-php git clone git://github.com/facebook/hiphop-php cd hiphop-php/ git submodule init git submodule update export HPHP_HOME=`/bin/pwd` export HPHP_LIB=`/bin/pwd`/bin export CC=gcc44 export TBB_INSTALL_DIR="/usr/local/tbb22_012oss" export TBB_ARCH_PLATFORM="$TBB_INSTALL_DIR/intel64/cc4.1.0_libc2.4_kernel2.6.16.21" cmake . make
export の設定がよくわからないけど一度 source .bash_profile を cmake する前にやり直したりしてた。cmake は一度失敗すると CMakeFilters や *.cmake を削除しないと中間ファイルが邪魔してエラーが取れないので、該当ファイルを削除するかいったんすべて削除して git clone しなおすのがよい。