Ubuntu Server 11.10 Hiphop-phpのインストール


Hiphop-phpはFacebookがコミュニティに貢献するオープンソース技術で、phpファイルをc++ファイルに変換することで、実行効率を大幅に向上させます.
技術者にとって、最も興味を持っているのはFacebookのようなアクセスの多いサイトが、パフォーマンスのボトルネックをどのように解決しているのか、Hiphop-phpはFacebookが使用している技術の一つです.
オープンソースは長いですが、国内のコミュニティでは議論や使用が珍しいので、インストールと使用方法を翻訳して参考にしてください.
Githubアドレス:https://github.com/facebook/hiphop-php
Wikiアドレス:https://github.com/facebook/hiphop-php/wiki
公式WikiではUbuntu 9.10から各バージョンとFreeBSD 8.2のコンパイルインストール方式が提供されていますが、ここで私が選んだのはUbuntu Server 11.10です.
実はインストールするのはやはりとても简単で、ダウンロード、解凍、配置、コンパイルにほかならない.しかし、Ubuntu Serverではうまくコンパイルし、ソースコードを簡単に変更する必要があります.
 
第一歩は、各種のソフトウェアとライブラリをインストールし、いっそのことこれらをコンパイルしなくても、多くの面倒を省くことができます.

  
  
  
  
  1. sudo apt-get install git-core cmake g++ libboost-dev libmysqlclient-dev libxml2-dev libmcrypt-dev libicu-dev openssl build-essential binutils-dev libcap-dev libgd2-xpm-dev zlib1g-dev libtbb-dev libonig-dev libpcre3-dev autoconf libtool libcurl4-openssl-dev libboost-system-dev libboost-program-options-dev libboost-filesystem-dev wget memcached libreadline-dev libncurses-dev libmemcached-dev libbz2-dev libc-client2007e-dev php5-mcrypt php5-imagick libgoogle-perftools-dev libcloog-ppl0 

ステップ2では、Hiphop-phpをダウンロードし、環境変数を構成します.

  
  
  
  
  1. # , hiphop-php 
  2. mkdir dev 
  3. cd dev 
  4. # Git  
  5. git clone git://github.com/facebook/hiphop-php.git 
  6. cd hiphop-php 
  7. #  
  8. export CMAKE_PREFIX_PATH=`/bin/pwd`/../ 
  9. export HPHP_HOME=`/bin/pwd` 
  10. export HPHP_LIB=`/bin/pwd`/bin 
  11. cd .. 

サードパーティ製ライブラリのコンパイル
libeventライブラリ

  
  
  
  
  1. #  
  2. wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz 
  3. tar -xzvf libevent-1.4.14b-stable.tar.gz 
  4. cd libevent-1.4.14b-stable 
  5. #  
  6. cp ../hiphop-php/src/third_party/libevent-1.4.14.fb-changes.diff . 
  7. patch -p1 < libevent-1.4.14.fb-changes.diff 
  8. ./configure --prefix=$CMAKE_PREFIX_PATH 
  9. make 
  10. make install 
  11. cd .. 

  curl
公式にヒントがあります:まずあなたのシステムの時間が正しいことを確定して、さもなくばconfigureは失敗します.

  
  
  
  
  1. wget http://curl.haxx.se/download/curl-7.21.2.tar.gz 
  2. tar -xvzf curl-7.21.2.tar.gz 
  3. cd curl-7.21.2 
  4. cp ../hiphop-php/src/third_party/libcurl.fb-changes.diff . 
  5. patch -p1 < libcurl.fb-changes.diff 
  6. ./configure --prefix=$CMAKE_PREFIX_PATH 

ここで止めるには、焦らずに2つのファイルを修正する必要があります.
最初のファイル:libcurlディレクトリのlib/ssluse.c
見つける

  
  
  
  
  1. req_method = SSLv2_client_method(); 

上にコードを追加します.

  
  
  
  
  1. #ifdef OPENSSL_NO_SSL2 
  2.     failf(data, "openSSL was compiled without SSLv2 support"); 
  3.     return CURLE_SSL_CONNECT_ERROR; 
  4. #endif 
  5. req_method = SSLv2_client_method(); 

 

2番目のファイルhiphop-phpのsrc/runtime/ext/extension.cpp
見つける
 

  
  
  
  
  1. for (ExtensionMap::const_iterator iter = s_registered_extensions->begin(); 

上の内容を
 
 

  
  
  
  
  1. //ASSERT(s_registered_extensions); 
  2. if (s_registered_extensions == NULL) { 
  3.     s_registered_extensions = new ExtensionMap(); 
  4. for (ExtensionMap::const_iterator iter = s_registered_extensions->begin(); 



  
  
  
  
  1. make 
  2. make install 
  3. cd .. 

3番目のライブラリlibmemcached

  
  
  
  
  1. wget http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz 
  2. tar -xzvf libmemcached-0.49.tar.gz 
  3. cd libmemcached-0.49 
  4. ./configure --prefix=$CMAKE_PREFIX_PATH 
  5. make 
  6. make install 
  7. cd .. 

OK、これですべての準備が整いました.
Hiphop-phpのコンパイルを開始

  
  
  
  
  1. cd hiphop-php 
  2. git submodule init 
  3. git submodule update 
  4. export HPHP_HOME=`pwd` 
  5. export HPHP_LIB=`pwd`/bin 
  6. cmake . 
  7. make 

次は長いコンパイルプロセスですが、Hiphop-phpの比較的人間的な点は、コンパイル中に進捗のパーセントのヒントがあるので、進捗が100%に正しく進んだときは、コンパイルに成功したことを意味します.
コンパイル後のプログラムは
hiphop-php/src/hphp/hphp
このコマンドを実行して、そのヘルプを表示して、具体的な使い方は次のブログで詳しく説明するのを待つことができます.