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 しなおすのがよい。
Thrift を PHP で使って Cassandra に接続
すでに Cassandra はインストール済みのこと。
参考:ThriftをインストールしてPHPからCassandraを使う
Thrift インストール
yum install python-devel boost-devel libtool flex bison ruby-devel libevent-devel wget http://www.meisei-u.ac.jp/mirror/apache/dist//incubator/thrift/0.4.0-incubating/thrift-0.4.0.tar.gz tar zxvf thrift-0.4.0.tar.gz cd thrift-0.4.0 ./configure && make && make install thrift -version
PHP の準備
wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm yum --enablerepo=remi,epel install mysql* yum --enablerepo=remi,epel install php-devel php php-mysql php-mcrypt php-mbstring gd-devel libpng-devel libjpeg-devel php-gd php-xml php-pear cp /usr/local/cassandra/interface/cassandra.thrift /home/[username]/module/ cd /home/[username]/module thrift --gen php /home/[username]/module/cassandra.thrift ls /home/[username]/module/gen-php/cassandra mkdir -p /home/[username]/script/thrift_test/cassandra cp -r /usr/local/src/thrift-0.4.0/lib/php/src/* /home/[username]/script/thrift_test/cassandra/. mkdir -p /home/[username]/script/thrift_test/cassandra/packages/cassandra cp -r /home/[username]/module/gen-php/cassandra /home/[username]/script/thrift_test/cassandra/packages/.
Cassandra インストールログ
http://d.hatena.ne.jp/terurou/20100416/1271397190 ほぼそのままですが、起動できました。
JDK インストール
Java SE Downloads - Sun Developer Network(http://www.oracle.com/technetwork/java/javase/downloads/index.html)から JDK の rpm をインストール
cd /usr/local/src wget [該当の jdk ファイルのパス] mv jdk-* jdk.rpm.bin chmod +x jdk.rpm.bin ./jdk.rpm.bin
Cassandra インストール
現時点では 0.6.6 が最新版
wget ftp://ftp.riken.jp/net/apache//cassandra/0.6.6/apache-cassandra-0.6.6-bin.tar.gz tar xvf apache-cassandra-0.6.6-bin.tar.gz mv apache-cassandra-0.6.6 /usr/local/apache-cassandra-0.6.6 ln -s /usr/local/apache-cassandra-0.6.6/ /usr/local/cassandra
/usr/local/cassandra/conf/storage-conf.xml の編集
0.0.0.0 に変更43200 に変更
/usr/local/cassandra/bin/cassandra.in.sh の編集
Dcom.sun.management.jmxremote.port=8081 \ //ポート変更 Xms128M \ //ヒープサイズ変更 Xmx1G \
起動スクリプト
/usr/local/bin/casactl として保存、chmod +x /usr/local/bin/casactl で実行権限付与
#!/bin/sh case "$1" in start) if [ ! -d /var/cassandra ]; then mkdir /var/cassandra fi cassandra -p /var/cassandra/cassandra.pid echo "running cassandra" ;; stop) kill `cat /var/cassandra/cassandra.pid` rm -f /var/cassandra/cassandra.pid echo "stopped cassandra" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
いったんログアウトなどして /ect/profile の設定を反映させる
起動・停止
casactl start //起動 casactl stop //停止
さくらインターネットのスタンダードプランに PECL の OAuth をインストールする方法
curl 関連でエラーが出るので普通に入れても入らない。
export PHP_AUTOCONF=autoconf export PHP_AUTOHEADER=autoheader mkdir usr cd usr pecl bundle oauth-1.0.0 phpize ./configure
ここでエラーが出るが、curl.h の位置:/usr/local/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/username/usr/oauth/modules export LD_RUN_PATH=$LD_RUN_PATH:/home/username/usr/oauth/modules make cd mkdir -p local/lib/php/extensions ln -s /home/username/usr/oauth/modules/oauth.so /home/username/local/lib/php/extensions/oauth.so
php.ini
extension_dir=/home/username/local/lib/php/extensions extension=oauth.so
Amazon EC2 で LAMP
small で運用 community におちてる AMI CentOS 5.5
passwd root cp -p /usr/share/zoneinfo/Japan /etc/localtime chkconfig anacron off chkconfig avahi-daemon off chkconfig bluetooth off chkconfig cups off chkconfig gpm off chkconfig hidd off chkconfig ip6tables off chkconfig irda off chkconfig isdn off chkconfig rpcgssd off chkconfig rpcidmapd off chkconfig portmap off chkconfig readahead_early off chkconfig pcscd off chkconfig yum-updatesd off cd /usr/local/src wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm yum --enablerepo=remi,epel install php-devel php php-mysql php-mcrypt php-mbstring gd-devel libpng-devel libjpeg-devel php-gd php-xml php-pear yum install httpd httpd-devel wget http://pecl.php.net/get/APC-3.1.3p1.tgz tar zxvf APC-3.1.3p1.tgz cd APC-3.1.3p1 phpize ./configure && make && make install
Volumes から EBS 追加、available になったら
yes | mkfs -t ext3 /dev/sdf
mkdir /vol
mount /dev/sdf /vol
Mac OSX 開発環境の設定
MacPorts インストール
- 付属品の Mac OSX Install DVD の中にある xcode インストール
- http://www.macports.org/ から OSX Snow Leopard 用をインストール
- MacPorts のアップデート
- sudo port selfupdate
- sudo port sync
Apache2 インストール
- sudo port install apache2
- sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
MySQL 5.1.44 インストール
- sudo port install mysql5-server
Mac OSX 自体の設定
シェルの接頭文字を変更
[システム環境設定]→[共有]→コンピュータ名を変更
FileVault 設定
[システム環境設定]→[セキュリティ]→ FileVault 有効
root パスワード変更
- sudo passwd root
フォルダ名を英語に変更
- rm ~/Downloads/.localized
- rm ~/Documents/.localized
- rm ~/Sites/.localized
- rm ~/Library/.localized
.DS_Store ファイルを作成不可
- defaults write com.apple.desktopservices DSDontWriteNetworkStores true