title: “Verschiedene PHP Versionen für FCGI compilieren (Debian7)”
date: 2014-03-04T11:19:46
slug: verschiedene-php-versionen-fur-fcgi-compilieren-debian7
Als erstes laden wir die folgenden Quellpakete auf unseren Server:
apt-get install libapache2-mod-fcgid apache2-suexec libpcre3-dev libpcre++-dev libpng12-dev libbz2-dev libcurl4-openssl-dev libc-client2007e-dev libjpeg8-dev libgif-dev libgif4 libpthread-stubs0 libpthread-stubs0-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxpm-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev xtrans-dev libxml2-dev libmysqlclient-dev libfreetype6-dev
Als nächstes wird das Source Paket der gewünschten PHP Version benötigt, dieses kann hier geladen werden:
php-5.5.8.tar
php-5.2.17.tar
php-5.3.27.tar
php-5.4.24.tar
Die Source Pakete können jetzt nach /usr/local/src/phpXXXXX entpackt werden
Beim Compilieren der PHP Pakete muss zwischen einem 32 Bit und 64 Bit OS unterschieden werden.
Mit folgendem Befehl kann die OS Version angezeigt werden:
root@Server:~# uname -a
Linux Server 2.6.32-5-amd64 #1 SMP Mon Feb 25 00:26:11 UTC 2013 x86\_64 GNU/Linux
In diesem Beispiel verrät das x86_64 in der Ausgabe das ein 64Bit OS installiert ist.
Bei i386 oder i686 handelt es sich um ein 32 Bit Betriebssystem.
Für 32Bit und PHP Version 5.3
./configure --prefix=/usr/share/php53 --datadir=/usr/share/php53 --mandir=/usr/share/man --bindir=/usr/bin/php53 --with-libdir=lib/i386-linux-gnu --includedir=/usr/include/php53 --sysconfdir=/etc/php53/apache2 --with-config-file-path=/etc/php53/apache2 --with-config-file-scan-dir=/etc/php53/conf.d --enable-libxml --enable-session --with-pcre-regex=/usr --enable-xml --enable-simplexml --enable-filter --disable-debug --enable-inline-optimization --disable-rpath --disable-static --enable-shared --with-pic --with-gnu-ld --with-mysql --with-gd --with-jpeg-dir --with-png-dir --with-xpm-dir --enable-exif --with-zlib --with-bz2 --with-curl --with-ldap --with-mysqli --with-freetype-dir --enable-soap --enable-sockets --enable-calendar --enable-ftp --enable-mbstring --enable-gd-native-ttf --enable-bcmath --enable-zip --with-pear --with-openssl --with-imap --with-imap-ssl --with-kerberos --enable-phar --enable-pdo --with-pdo-mysql --with-mysqli --enable-intl --with-mcrypt
Für 64Bit und PHP Version 5.3
./configure --prefix=/usr/share/php53 --datadir=/usr/share/php53 --mandir=/usr/share/man --bindir=/usr/bin/php53 --with-libdir=lib/x86\_64-linux-gnu --includedir=/usr/include/php53 --sysconfdir=/etc/php53/apache2 --with-config-file-path=/etc/php53/apache2 --with-config-file-scan-dir=/etc/php53/conf.d --enable-libxml --enable-session --with-pcre-regex=/usr --enable-xml --enable-simplexml --enable-filter --disable-debug --enable-inline-optimization --disable-rpath --disable-static --enable-shared --with-pic --with-gnu-ld --with-mysql --with-gd --with-jpeg-dir --with-png-dir --with-xpm-dir --enable-exif --with-zlib --with-bz2 --with-curl --with-ldap --with-mysqli --with-freetype-dir --enable-soap --enable-sockets --enable-calendar --enable-ftp --enable-mbstring --enable-gd-native-ttf --enable-bcmath --enable-zip --with-pear --with-openssl --with-imap --with-imap-ssl --with-kerberos --enable-phar --enable-pdo --with-pdo-mysql --with-mysqli --enable-intl --with-mcrypt
Falls es zu einen Fehler beim kompilieren der ssl Komponente kommt (php5.2.17), kann diese deaktiviert werden. Beim Configure dann einfach den Parameter
--with-openssl
weglassen.
Ein weiterer Fehler kann sein:
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
Abhilfe schafft hier bei einem 32 Bit OS:
ln -s /usr/lib/libc-client.a /usr/lib/i386-linux-gnu/libc-client.a
Bei einem 64 Bit OS:
ln -s /usr/lib/libc-client.a /usr/lib/x86\_64-linux-gnu/libc-client.a
Für die anderen PHP Versionen muss jeweils der Parameter :
--prefix=/usr/share/php52
--datadir=/usr/share/php52
--bindir=/usr/bin/php52
--includedir=/usr/include/php52
--sysconfdir=/etc/php52/apache2
--with-config-file-path=/etc/php52/apache2
--with-config-file-scan-dir=/etc/php52/conf.d
auf die jeweilige Version angepasst werden (52, 53, 54 oder 55).
Mit:
make
make install
wird die PHP Version kompiliert und installiert.
Anschließend können die php Binaries noch getestet werden:
/usr/bin/php52/php -v
PHP 5.2.17 (cli) (built: Feb 9 2014 17:04:22)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
/usr/bin/php53/php -v
PHP 5.3.27 (cli) (built: Feb 9 2014 16:29:10)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
/usr/bin/php54/php -v
PHP 5.4.24 (cli) (built: Feb 9 2014 16:43:53)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
Die Datei “/etc/apache2/mods-enabled/fcgid.conf” wiefolgt anpassen:
<IfModule mod\_fcgid.c>
AddHandler fcgid-script .fcgi
FcgidConnectTimeout 180
FcgidIOTimeout 600
FcgidMaxRequestLen 134217728
MaxRequestLen 134217728
MaxRequestsPerProcess 1500
</IfModule>
