PHP Installation · 7 min read · Oct 28, 2025
So installieren Sie PHP 7.1.16 als PHP-FPM & FastCGI für ISPConfig 3.1 auf Debian 8 (Jessie)
Die endgültige Version von PHP 7.1 ist jetzt auf Github und den PHP-Spiegeln zum Download verfügbar. PHP 7.1 ist die nächste Generation der PHP-Programmiersprache, sie ist bis zu 2 Mal schneller als PHP 5.6 und 14 Mal schneller als PHP 5.0, laut den Versionshinweisen. Die neue PHP-Version ist nicht 100% kompatibel mit PHP 5.x, da einige veraltete APIs entfernt wurden, daher ist es eine gute Idee, Ihre Websites auf die Kompatibilität mit diesem neuen Release zu testen. Dies kann einfach und ohne Beeinträchtigung aller Websites auf Ihrem Server durch die Verwendung der Multi-PHP-Version-Funktion in ISPConfig 3 erfolgen. Die PHP-Version kann in den ISPConfig 3-Website-Einstellungen für jede Website einzeln ausgewählt werden. Diese Funktion funktioniert mit PHP-FPM und FastCGI. Dieses Tutorial zeigt, wie man das neue PHP 7.1 als PHP-FPM- und FastCGI-Version auf einem Debian-Jessie-Server erstellt. Dieser PHP 7.1-Build enthält viele kompilierte Erweiterungen sowie Zend OPcache und Memcached als ladbare Module.
1 Vorbemerkung
Ich werde PHP 7.1 installieren, das vor ein paar Tagen als endgültige Version veröffentlicht wurde. Bitte beachten Sie, dass PHP-FPM sowohl auf Apache- als auch auf Nginx-Servern verwendet werden kann, während FastCGI nur für Apache-Server verfügbar ist.
Bei älteren PHP-Versionen waren PHP-FPM und FastCGI gegenseitig ausschließend, sodass ein FPM- und FastCGI-Binary separat erstellt werden musste. Mit PHP 7.1 kann ein einzelnes Binary, das den FPM- und FCGI-Modus unterstützt, erstellt werden.
2 PHP 7.1 mit PHP-FPM und Fastcgi kompilieren
Laden Sie PHP 7.1 von Github herunter und entpacken Sie es:
mkdir -p /opt/php-7.1
mkdir /usr/local/src/php7-build
cd /usr/local/src/php7-build
wget http://de2.php.net/get/php-7.1.16.tar.bz2/from/this/mirror -O php-7.1.16.tar.bz2
tar jxf php-7.1.16.tar.bz2cd php-7.1.16/Installieren Sie die Voraussetzungen für den Build von PHP 7.1 und den Nano-Editor, den ich verwenden werde, um die Konfigurationsdateien zu bearbeiten:
apt-get install build-essential nano autoconfapt-get install libfcgi-dev libfcgi0ldbl libjpeg62-turbo-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-devln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a(Der letzte Befehl ist erforderlich, wenn Sie PHP mit –with-imap erstellen, da sonst ./configure mit dem folgenden Fehler stoppt:
checking for crypt in -lcrypt... yes
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
root@server1:/usr/local/src/php5-build/php-7.0.7#)
Konfigurieren und bauen Sie PHP 7.1 wie folgt (Sie können den ./configure-Befehl an Ihre Bedürfnisse anpassen, sehen Sie sich an
./configure --helpum alle verfügbaren Optionen zu sehen; wenn Sie einen anderen ./configure-Befehl verwenden, ist es möglich, dass zusätzliche Bibliotheken erforderlich sind oder der Build-Prozess fehlschlägt):
./configure --prefix=/opt/php-7.1 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpmDer letzte Schalter (–enable-fpm) stellt sicher, dass diese PHP-Version mit PHP-FPM funktioniert.
make
make installKopieren Sie php.ini und php-fpm.conf an die richtigen Stellen:
cp /usr/local/src/php7-build/php-7.1.16/php.ini-production /opt/php-7.1/lib/php.inicp /opt/php-7.1/etc/php-fpm.conf.default /opt/php-7.1/etc/php-fpm.conf
cp /opt/php-7.1/etc/php-fpm.d/www.conf.default /opt/php-7.1/etc/php-fpm.d/www.confÖffnen Sie /opt/php-7.1/etc/php-fpm.conf und passen Sie die folgende Einstellung an (entfernen Sie das ; vor der pid-Zeile):
nano /opt/php-7.1/etc/php-fpm.conf[...]
pid = run/php-fpm.pid
[...] Öffnen Sie dann /opt/php-7.1/etc/php-fpm.d/www.conf und passen Sie die Listen-Zeile an, Sie müssen einen unbenutzten Port verwenden (z.B. 8999; Port 9000 könnte bereits von Debians Standard-PHP-FPM verwendet werden):
nano /opt/php-7.1/etc/php-fpm.d/www.conf[...]
listen = 127.0.0.1:8999
[...] Wenn Sie mehrere zusätzliche PHP-Versionen verwenden, stellen Sie sicher, dass Sie einen freien Port verwenden, z.B. 8998, 8997 und so weiter für die nächsten Versionen.
3 Erstellen Sie das Init-Skript und die Systemd-Einheitendatei
Debian unterstützt Systemd sowie die traditionellen Init-Skripte. Die meisten Systeme verwenden heute Systemd, in diesem Fall fahren Sie mit Kapitel 3.2 fort, für Systeme mit traditionellem Init-System folgen Sie Kapitel 3.1 und fahren dann mit Kapitel 4 fort. Installieren Sie nicht sowohl das Systemd- als auch das init.d-Skript auf demselben System.
3.1 Erstellen Sie ein init.d-Startskript
Zuerst werde ich ein Init-Skript für den php-fpm-Dienst erstellen und dann eine Systemd-Einheit erstellen.
Zuerst erstellen Sie ein Init-Skript für PHP-FPM:
nano /etc/init.d/php-7.1-fpm#! /bin/sh
### BEGIN INIT INFO
# Provides: php-7.1-fpm
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-7.1-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-7.1/sbin/php-fpm
php_fpm_CONF=/opt/php-7.1/etc/php-fpm.conf
php_fpm_PID=/opt/php-7.1/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-exit"
exit 1
else
echo " done"
echo " done"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esacMachen Sie das Init-Skript ausführbar und erstellen Sie die Systemstartlinks:
chmod 755 /etc/init.d/php-7.1-fpm
insserv php-7.1-fpmStarten Sie schließlich PHP-FPM:
/etc/init.d/php-7.1-fpm startDas Ergebnis sollte sein:
/etc/init.d/php-7.1-fpm start
Starting php-fpm done3.2 Erstellen Sie ein Systemd-Skript für PHP 7.1
Jetzt erstellen Sie die Systemd-Einheitendatei:
nano /lib/systemd/system/php-7.1-fpm.servicemit folgendem Inhalt:
[Unit]
Description=Der PHP 7.1 FastCGI-Prozessmanager
After=network.target
[Service]
Type=simple
PIDFile=/opt/php-7.1/var/run/php-fpm.pid
ExecStart=/opt/php-7.1/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.1/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.targetAktivieren Sie den Dienst und laden Sie Systemd neu:
systemctl enable php-7.1-fpm.service
systemctl daemon-reloadStarten Sie schließlich PHP-FPM:
systemctl start php-7.1-fpm.service4 Zend OPcache aktivieren
Um den Zend OPcache zu aktivieren, öffnen Sie /opt/php-7.1/lib/php.ini…
nano /opt/php-7.1/lib/php.ini… und fügen Sie die folgende Zeile am Ende hinzu:
[...]
zend_extension=opcache.soDie Memcache- und APCu-Erweiterung kann derzeit nicht auf PHP 7.1 installiert werden, daher werde ich die Installation vorerst überspringen. Ich werde das Tutorial später aktualisieren, wenn die PECL-Erweiterungen mit PHP 7.1 kompatibel sind.
Testen Sie die PHP-Version:
cd /opt/php-7.1/bin
./php --versionDie Ausgabe sollte ähnlich diesem Screenshot sein.
Bitte beachten Sie: Der Screenshot stammt von PHP 7.1.16, das Tutorial wird kontinuierlich für neue PHP 7.1-Versionen aktualisiert, aber wir machen nicht jedes Mal neue Screenshots, sodass die PHP 7.1-Version, die Sie auf Ihrem Server sehen, möglicherweise neuer ist. Die aktuelle Version dieses Tutorials ist für php-7.1.16.
5 Memcache aktivieren (optional)
In diesem Kapitel werde ich die PHP Memcached-Erweiterung kompilieren und aktivieren.
Der erste Schritt besteht darin, das Paket libmemcached-dev von Debian zu installieren.
apt-get install libmemcached-devErstellen Sie dann ein Verzeichnis, laden Sie die PHP Memcache-Erweiterung von Github herunter, entpacken Sie das Archiv und wechseln Sie in das Verzeichnis, das die entpackten Dateien enthält.
mkdir /usr/local/src/php7-build/php-memcache
cd /usr/local/src/php7-build/php-memcache
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
unzip php7.zip
cd php-memcached-php7Bereiten Sie die Quellen vor, indem Sie den phpize-Befehl von PHP 7.1 ausführen.
/opt/php-7.1/bin/phpizeKonfigurieren und bauen Sie die PHP Memcache-Erweiterung.
./configure --with-php-config=/opt/php-7.1/bin/php-config
make
make installUm die Memcache-Erweiterung zu aktivieren, öffnen Sie /opt/php-7.1/lib/php.ini…
nano /opt/php-7.1/lib/php.ini… und fügen Sie die folgende Zeile am Ende hinzu:
[...]
extension=memcached.so2.1 Installieren Sie die xDebug-Erweiterung (optional)
Das xDebug-Modul ist eine Debugging-Erweiterung für PHP. Die Installation ist optional.
Installieren Sie xDebug mit diesen Befehlen.
cd /opt/php-7.1/etc
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install xdebugBearbeiten Sie dann die php.ini-Datei mit einem Editor:
nano /opt/php-7.1/lib/php.iniund fügen Sie die folgende Zeile am Ende der Datei hinzu:
zend_extension=/opt/php-7.1/lib/php/extensions/no-debug-non-zts-20160303/xdebug.soStarten Sie schließlich den php-fpm-Daemon neu:
service php-7.1-fpm restart7 Aktivieren Sie PHP 7.1 in ISPConfig
In ISPConfig 3 können Sie die neue PHP-Version unter System > Zusätzliche PHP-Versionen konfigurieren. Auf der Registerkarte Name fügen Sie einfach einen Namen für die PHP-Version ein (z.B. PHP 7.1) - diese PHP-Version wird unter diesem Namen in den Website-Einstellungen in ISPConfig aufgeführt:

Gehen Sie zur Registerkarte FastCGI-Einstellungen und füllen Sie die Felder wie folgt aus:
Pfad zur PHP FastCGI-Binärdatei: /opt/php-7.1/bin/php-cgi
Pfad zum php.ini-Verzeichnis: /opt/php-7.1/lib
Gehen Sie dann zur Registerkarte PHP-FPM-Einstellungen und füllen Sie die Felder wie folgt aus:
Pfad zum PHP-FPM-Init-Skript: /etc/init.d/php-7.1-fpm
Pfad zum php.ini-Verzeichnis: /opt/php-7.1/lib
Pfad zum PHP-FPM-Poolverzeichnis: /opt/php-7.1/etc/php-fpm.d 
7 Links
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.