Nachtrag zur Umstellung auf PHP7

Diesen Beitrag schrieb ich 8 Jahre und 2 Wochen zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 2 Minuten

Mit dem letzten Artikel habe ich einige von euch sehr neugierig gemacht, weshalb ich noch einen kleinen Nachtrag schreibe zu den Themen FPM, Imagick und APCu…

Installation der Abhängigkeiten

Eine ganze Reihe an Abhängigkeiten ist benötigt, und diese hier habe ich für meine Installation eingesetzt:

$ apt-get install -y libbz2-dev libc-client2007e-dev libcurl4-openssl-dev \
> libgnutls-dev libidn11-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev \
> libkrb5-dev  libldap2-dev libltdl-dev libpcre3-dev libpng12-dev libxml2-dev \
> libxpm-dev libfreetype6-dev libreadline6-dev

Kaum hatte ich meinen Artikel veröffentlicht wurde auch schon PHP-7.0.5 veröffentlicht – wie das halt so ist :D Also okay – die Vorgehensweise hat sich im Vergleich zu meinem Artikel nicht geändert, und mein configure hab ich dir mal auf GitHub gepackt. make, dann make test und make install and you’re all done.

Imagick

php7-fpm imagick Für meine Installation benötige ich noch imagick, und das baue ich nun ein; hierzu müssen zunächst die benötigten Abhängigkeiten installiert werden:

$ apt-get -y install pkg-config libmagickwand-dev

Nun kann konfiguriert und kompiliert werden:

$ cd /usr/src
$ wget https://pecl.php.net/get/imagick --output-document imagick.tgz
$ tar xvzf imagick.tgz
$ cd imagick-$VERSION
$ /opt/local/bin/phpize
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012

Auch dieses möchte ich wiederum in /opt/local sehen – ich baue es mit den entsprechenden Parametern und installiere es im System:

$ ./configure --prefix=/opt/local --with-php-config=/opt/local/bin/php-config
$ make && make test
$ make install

Jetzt füge ich es meiner Konfiguration hinzu:

$ echo extension=imagick.so >> /opt/local/lib/php.ini

APCu

php7-fpm apcu Ich musste keine gesonderten Abhängigkeiten installieren – es genügt, den Source via GitHub zu ziehen, das Ganze zu konfigurieren, zu bauen und zu installieren.

$ cd /usr/src
$ git clone https://github.com/krakjoe/apcu.git
$ cd apcu
$ /opt/local/bin/phpize
$ ./configure --prefix=/opt/local --with-php-config=/opt/local/bin/php-config --enable-apcu
$ make && make test
$ make install

Abschließend erweitere ich die php.ini, so dass APCu fortan geladen und genutzt wird:

## file: "/opt/local/lib/php.ini"
...
extension=apcu.so
apc.enabled=1
apc.shm_size=32M
apc.ttl=7200
apc.enable_cli=1
...

memcached

$ sudo apt-get install -y libmemcached-dev
$ cd /usr/src
$ git clone https://github.com/php-memcached-dev/php-memcached.git
$ cd php-memcached
$ /opt/local/bin/phpize
$ ./configure --prefix=/opt/local --disable-memcached-sasl --with-php-config=/opt/local/bin/php-config
$ make && make test
$ make install

Jetzt muss lediglich noch die php.ini um eine Zeile erweitert werden, so dass memcached in Zukunft auch geladen wird und genutzt werden kann:

## file: "/opt/local/lib/php.ini"
...
extension=memcached.so
...

PHP7-FPM

Zuguterletzt muss das neue PHP7-FPM nun auch genutzt werden; hierzu wird ein init-Script in /etc/init.d benötigt, und ich habe meines von dieser Seite hier geschnappt, ausführbar gemacht und per update-rc.d php-7.0.5-fpm defaults ins Rennen geschickt. Benötigt wird außerdem noch ein php7-fpm.service, das nach /lib/systemd/system gelegt werden muss. Was nun noch fehlt ist die Konfiguration für PHP7-FPM – die ist nun wirklich sehr abhängig von deinen Begebenheiten. Exemplarisch habe ich mal eine sehr abgespeckte php-fpm.conf hinterlegt sowie eine php-fpm.d/www.conf, die du als Startpunkt nach /opt/local/etc packen kannst. Per service php7-fpm start lässt sich der Dienst nun starten, und per phpinfo(); kannst du dir wiederum Details betrachten. Erwäge jedoch die Startup-Links von php5-fpm zu entfernen, falls du diese Version parallel installiert hast (update-rc.d -f php5-fpm remove).

Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: 977x 550px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „Nachtrag zur Umstellung auf PHP7“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.