Nachtrag zur Umstellung auf PHP7
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
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
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
).
Hintergrundbild: 977x 550px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten