Willkommen bei Profoxi

Hier erfahrt ihr alle neuesten Neuigkeiten, Tipps und Tricks rund um das Thema IT. Auf verständliche Art werden hier in regelmäßigen Abständen berichtet.

Verschiedene PHP Versionen für ISPConfig installieren (PHP-FPM, FastCGI)

Verschiedene PHP Versionen für ISPConfig installieren (PHP-FPM, FastCGI)

 

Vorrausetzungen

  • Debian Stretch
  • Benutzer mit Root Rechten

 

Betriebssystem updaten

apt-get update && apt-get upgrade -y

 

PHP Binary downloaden und deployen

 

Um bauen zu können, sind folgende Libarys nötig. Diese werden per APT installiert:

apt-get install build-essential nano libfcgi-dev libfcgi0ldbl libjpeg62-turbo-dev libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev

 

Wir müssen um PHP Deployen zu können, folgende Links setzen bzw. Enfernen. Bei nichtbeachtung kann sonst das Deployen schief gehen:

ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include
ln -s x86_64-linux-gnu/curl

 

Nun erstellen wir unter dem OPT Verzeichnis ein PHP Verzeichnis und downloaden PHP von der offiziellen Webseite php.net runter.

mkdir -p /opt/php-7.1
mkdir /usr/local/src/php7.1-build
cd /usr/local/src/php7.1-build
wget http://de2.php.net/get/php-7.1.14.tar.bz2/from/this/mirror -O php-7.1.14.tar.bz2
tar jxf php-7.1.14.tar.bz2
cd php-7.1.14/

 

Nun bereiten wir das Deployment vor, indem wir alle Konfigurationen erstellen. Dazu geben wir alle zukünftigen PHP Module gleich mit ein.

./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-fpm

 

Nun deployen wir es mit make bzw. make install.

Achtung! Dieser Schritt kann je nach Auslastung des Servers bzw. CPU Anzahl etwas längern dauern.

make
make install

 

Nachdem wir erfolgreich deployt haben, kopieren wir die entsprechenden PHP.ini und Configs in das OPT Verzeichnis.

cp /usr/local/src/php7.1-build/php-7.1/php.ini-production /opt/php-7.1/lib/php.ini
cp /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

 

Wir aktivieren den opcache in der php.ini. Die Codezeile fügen wir ganz am Ende der PHP.ini ein.

nano /opt/php-7.1/lib/php.ini
...
zend_extension=opcache.so

 

Wir bearbeiten nun unser FPM und wechseln den Port.

Wichtig! Jede installierte PHP Version bekommt hier einen eigenen Port.

nano /opt/php-7.1/etc/php-fpm.conf
...
pid = run/php-fpm.pid
...
nano /opt/php-7.1/etc/php-fpm.d/www.conf
...
listen = 127.0.0.1:8999
...

 

Nun erstellen wir ein eigenen Start Script und geben das dem System bekannt.

nano /lib/systemd/system/php-7.1-fpm.service
[Unit]
Description=The PHP 7.1 FastCGI Process Manager
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.target
systemctl enable php-7.1-fpm.service
systemctl daemon-reload

 

Wir starten nun das FPM

systemctl start php-7.1-fpm.service

Nun loggen wir uns in ISPConfig ein und geben dem System eine neue PHP Version bekannt. Dazu gehen wir zu den Systemeinstellungen und geben alle Einstellungen über den Button „Zusätzliche PHP Versionen“ ein. Siehe Bilder.

Dazu sind folgende Einstellungen wichtig:

Im Reiter FastCGI Einstellungen:

Pfad zum PHP FastCGI Binary: /opt/php-7.1/bin/php-cgi
Pfad zum php.ini Verzeichnis: /opt/php-7.1/lib
 
Im Reiter PHP-FPM Einstellungen:

Pfad zum PHP-FPM Init Script: php-7.1-fpm
Pfad zum php.ini Verzeichnis: /opt/php-7.1/lib
Pfad zum PHP-FPM Pool Verzeichnis: /opt/php-7.1/etc/php-fpm.d

 

Fertig. So kann man nun verschiedene PHP Versionen auf dem gleichen weg installieren.

 

Viel Erfolg

Ähnliche Beiträge

Triopsi
Triopsi

Hi, mein Name ist Daniel R. Baumann. Ich bin seit 2007 Webseitenentwickler und entwickle bzw. administriere verschiedene Webprojekte. Ich berichte hier alle wichtigen News, Tipps und Tricks rund um das Thema IT.