Aufbau einer Multi-Core-fähigen PHP Version (pthreads) unter Ubuntu

Die Fähigkeit zur Verwendung mehrerer Prozessorkerne ist mit der Erscheinung von pthreads vor ca. einem Jahr auch in der PHP-Welt angekommen. Um dieses Paket nutzen zu können, muss jedoch PHP unter Verwendung bestimmter Parameter selbst kompiliert und installiert werden. Das notwendige Vorgehen zum Aufbau dieser Umgebung wird in diesem Beitrag beschrieben. Getestet wurde das Vorgehen mit PHP 5.5.5 und Ubuntu 12.0.4.

1. Installation einiger Dependencies (in Ahnlehnung an: Developer in charge)

apt-get install \
libxml2 \
libxml2-dev \
libssl-dev \
pkg-config \
curl \
libcurl4-nss-dev \
enchant \
libenchant-dev \
libjpeg8 \
libjpeg8-dev \
libpng12-0 \
libpng12-dev \
libvpx1 \
libvpx-dev \
libfreetype6 \
libfreetype6-dev \
libt1-5 \
libt1-dev \
libgmp10 \
libgmp-dev \
libicu48 \
libicu-dev \
mcrypt \
libmcrypt4 \
libmcrypt-dev \
libpspell-dev \
libedit2 \
libedit-dev \
libsnmp15 \
libsnmp-dev \
libxslt1.1 \
libxslt1-dev \
checkinstall \
autoconf

2. Download des PHP Source (hier gehts zu den Versionen)

wget http://us3.php.net/get/php-5.5.5.tar.bz2/from/de3.php.net/mirror -O php.tar.bz2

3. Extraktion des PHP Source

tar xvjf php.tar.bz2

4. Konfiguration und Kompilieren des PHP Source + Installation

cd php-5.5.5
./configure --enable-debug --enable-maintainer-zts --enable-pthreads
make
checkinstall

5. Kopieren der php.ini und Einstellung von PEAR und PECL, sowie Installation von pthreads

cp php.ini-production /usr/local/lib/php.ini
pear config-set php_ini /usr/local/lib/php.ini
pecl config-set php_ini /usr/local/lib/php.ini
pecl install pthreads

Das war es eigentlich auch schon und es kann losgehen. Die PHP-Referenz zur pthreads findet ihr hier. Darüber hinaus kann ich euch noch eine schöne kurze Einführung in pthreads von PHP Gangsta empfehlen, sowie ein paar weitere Beispiele hier. Und dann noch einige Hinweise für die Einrichtung unter Windows.

Getagged mit: , , , , ,
Veröffentlicht unter Entwicklung

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>