PHP 5.3 kompilieren

Die vergangenen zwei Tage verbrachte ich u.a. damit auf unserem neuen Anwendungsserver PHP 5.3 zu installieren. Da dies in Ubuntu Karmic noch nicht als fertiges “Binary” vorliegt und ich keine Experimente mit Fremdpaketen wollte, habe ich mich entschlossen PHP aus dem Quellcode selbst zu kompilieren.

Für die aktuelle 5.3er Version sprach vor allem der neue MySQL-Treiber, der direkt in PHP integriert ist. Die MySQL-Bibliothek ist dann nicht mehr notwendig. Das spart Zeit und Arbeitsspeicher. Unsere Anwendungen sind fast ausschließlich in PHP geschrieben und da macht es doch Sinn bei so einem wichtigen Baustein auch an der “bleeding edge” zu sein? Hoffen wir, dass es keine wesentlichen Fehler oder Unschönheiten gibt. Aber welche Version hat das nicht?

Nachfolgend meine Quick-and-dirty-Installationsanleitung auf Basis von Ubuntu 9.10 alias Karmic Koala.

Vorbereitung:
aptitude install checkinstall subversion autoconf

  • für GD-Bibliothek auch: libpng12-0 libpng12-0-dev libjpeg62 libjpeg62-dev

PHP installieren:
$ wget http://de2.php.net/get/php-5.3.1.tar.gz/from/this/mirror
$ tar xvzf php-5.3.1.tar.gz
$ cd php-5.3.1
$ ./configure --help | less
$ ./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-curl=/usr/bin --with-curlwrappers --with-openssl-dir=/usr --with-pear --enable-mbstring --with-iconv-dir=/usr --with-gd --with-png-dir=/usr --with-zlib-dir=/usr
$ make -j2
$ checkinstall
$ cp php.ini-production /usr/local/lib/php.ini

  • “–with-gd –with-png-dir=/usr –with-zlib-dir=/usr” für GD
  • “make -j2″ für zwei Prozessorkerne
  • Installation als Paket via “checkinstall”, kann dann leichter wieder entfernt werden
  • Hilfe bei Brandon Savage und Palos

Installation Memcached Client:
$ aptitude install libmemcached2 libmemcached-dev memcached-
$ pear install pecl/memcached
$ echo "extension=memcached.so" >> /usr/local/lib/php.ini
$ echo "<?php phpinfo();" | php | less

  • der “memcached”-Dienst wird hier absichtlich von der Installation ausgeschlossen, der läuft auf einem anderen Server
  • Infos bei Google Code

Installation XCache:
$ wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz
$ tar -zxf xcache-*.tar.gz
$ cd xcache-*
$ phpize --clean
$ phpize
$ ./configure --enable-xcache
$ make
$ make install
$ cat xcache.ini >> /usr/local/lib/php.ini
$ cat /proc/cpuinfo | grep -c processor
$ vi /usr/local/lib/php.ini
$ echo "<?php phpinfo();" | php | less
$ mkdir -p /var/www/xcache-admin && cp -R admin/* /var/www/xcache-admin/

  • Anzahl der Prozessorkerne aus “/proc/cpuinfo” lesen und in Konfiguration eintragen
  • gegebenenfalls die Admin- und Status-Seite in den Webroot kopieren
  • Anleitung bei lighttpd.net

Installation ImageMagick & MagickWand for PHP:
$ aptitude install imagemagick libmagickwand-dev
$ svn co https://www.imagemagick.org/subversion/MagickWandForPHP/branches/MagickWandForPHP-1.0.8/MagickWandForPHP
$ phpize --clean
$ phpize
$ ./configure
$ make
$ make install
$ echo "extension=magickwand.so" >> /usr/local/lib/php.ini
$ echo "<?php phpinfo();" | php | less

  • Wichtig: Entwicklungspaket “libmagickwand-dev” installieren
  • Infos bei magickwand.org

PEAR-Pakete:
$ pear install Cache_Lite
$ pear install Net_GeoIP-1.0.0RC2
$ pear install XML_Serializer-0.20.0

Fertig. :)

Dieser Beitrag wurde unter Technik abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink. http://amauf.de/?p=495

2 Antworten auf PHP 5.3 kompilieren

  1. till sagt:

    Lieber xcache als apc?

    • amauf sagt:

      Ich glaub APC war damals die zweite Wahl. Aber aufgrund einer Empfehlung und der Nähe zum Lighty haben wir dann XCache genommen. Was das “opcode caching” angeht, nehmen die sich sicher nicht viel…

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=""> <strike> <strong>