Translate: 
EnglishFrenchGermanItalianPolishPortugueseRussianSpanish

HipHop for PHP – Instalacja na Fedora 12 – 15

Minął już chyba rok, odkąd Facebook przedstawił publicznie swój wynalazek pozwalający na kompilowanie kodu PHP do plików binarnych.

Od początku swojego istnienia HipHop for PHP krytykowany był za problemy z konfiguracją oraz instalacją na różnych systemach operacyjnych. Choć sam Facebook oficjalnie wspiera swój produkt na systemach CentOS (darmowa wersja RedHata), oraz Fedora, to nawet na nich często instalacja kończyła się niepowodzeniem.

Z tego też powodu wsparty odpowiednią literaturą postanowiłem opisać dokładnie proces instalacji na jednym ze wspieranych przez Facebook dystrybucjach Linux, czyli na tytułowej Fedorze .

Skąd pobrać dystrybucję Fedora?

64-bitowa wersja Fedora 12 dostępna jest do ściągnięcia tutaj (obraz płyty DVD).

Dla ludzi chcących po prostu poeksperymentować z HipHop for PHP, proponuję pobranie VMware Playera oraz gotowego obrazu Fedora.

Jak zainstalować?

Na początek należy doinstalować brakujące pakiety poleceniem yum:

yum -y install git cmake boost pcre-devel libicu-devel libmcrypt-devel oniguruma-devel mysql-devel gd-devel boost-devel libxml2-devel libcap-devel binutils-devel flex bison expat-devel patch gcc gcc-c++ bzip2 bzip2-devel memcached openldap openldap-devel readline-devel libc-client-devel pam-devel

Następnie stworzyć katalog projektu, oraz sklonować do niego HipHop PHP z repozytorium git:

mkdir hiphop
cd hiphop
git clone git://github.com/facebook/hiphop-php.git

Teraz pozostało nam już tylko ściągnięcie oraz rozpakowanie dodatkowych bibliotek, które pominęliśmy w poleceniu yum, gdyż potrzebne są nam ich konkretne wersje:

wget "http://downloads.sourceforge.net/project/re2c/re2c/0.13.5/re2c-0.13.5.tar.gz?use_mirror=cdnetworks-us-2"
wget "http://www.threadingbuildingblocks.org/uploads/77/142/2.2/tbb22_20090809oss_src.tgz"
wget http://curl.haxx.se/download/curl-7.20.0.tar.bz2
wget http://www.monkey.org/~provos/libevent-1.4.14-stable.tar.gz
wget http://launchpad.net/libmemcached/1.0/0.48/+download/libmemcached-0.48.tar.gz
 
tar xvjf curl-7.20.0.tar.bz2
tar xvzf libevent-1.4.14-stable.tar.gz
tar xvzf re2c-0.13.5.tar.gz
tar xvzf tbb22_20090809oss_src.tgz
tar xvzf libmemcached-0.48.tar.gz

Jeśli instalujesz kompilator HipHop for PHP na systemie Fedora 14, konieczne jest uruchomienie dodatkowego polecenia (nie jest to wymagane w starszych wersjach systemu):

export LDFLAGS="$LDFLAGS -lrt"

Po rozpakowaniu bibliotek, musimy je załatać dodatkowymi patchami dostarczonymi przez Facebooka, oraz skompilować je do katalogu projektu (nie chcemy nadpisywać bibliotek systemowych Fedory).

export CMAKE_PREFIX_PATH=`pwd`/local
 
cd tbb22_20090809oss
gmake
cp -Rp include/tbb/ /usr/include/
cp `pwd`/build/*_release/*.so /usr/lib/
cp `pwd`/build/*_release/*.so.2 /usr/lib/
ldconfig
cd ..
 
cd re2c-0.13.5
./configure --prefix=`pwd`/../local
make install
cd ..
 
cd libevent-1.4.14-stable
cp ../hiphop-php/src/third_party/libevent-1.4.14.fb-changes.diff .
patch < libevent-1.4.14.fb-changes.diff
./configure --prefix=`pwd`/../local
make install
cd ..
 
cd curl-7.20.0
cp ../hiphop-php/src/third_party/libcurl.fb-changes.diff .
patch -p1 < libcurl.fb-changes.diff
./configure --prefix=`pwd`/../local
make install
cd ..
 
cd libmemcached-0.48
./configure --prefix=`pwd`/../local
make install
cd ..

Po zbudowaniu własnych bibliotek naszedł czas na skompilowanie samego HipHop PHP:

cd hiphop-php
 
git submodule init
git submodule update
export HPHP_HOME=`pwd`
export HPHP_LIB=`pwd`/bin
cmake .
make

Podsumowanie

Jak widać instalacja nie jest intuicyjna i nadal sprawia spore problemy. Podczas testów przekonałem się, że HipHop PHP jest bardzo wybredny jeśli chodzi o:

  • wersję kompilatora gcc
    (co przysporzyło o ból głowy na systemie Centos 5.5)
  • wersję wykorzystywanych bibliotek zewnętrznych
    (konflikty z bibliotekami Fedory 14)

Wymaga także ręcznego łatania niektórych z plików (co sprawia, że np. update do nowszej wersji cURL’a może być utrudniony).

Dodatkowo problemem jest to, że HipHop for PHP stworzony został wyłącznie dla systemów 64-bitowych i choć wsparcie dla architektury i386 zostało już w pewnym stopniu zaimplementowane, to jednak nadal jest w fazie eksperymentalnej i nie gwarantuje stabilnej pracy skryptów PHP.

Jeśli potrzebujesz wskazówek, jak zainstalować HipHop for PHP na systemie CentOS, przeczytaj ten artykuł.

Tagi: , , , ,

Dodaj odpowiedź