php7-fpm imagick

wall < "Nachtrag zur Umstellung auf PHP7"

Broadcast message from spillerm@unixe.de (pts/1) (Do Apr 07 14:04:12 2016):
4
Diesen Beitrag schrieb ich vor 3 Jahren. Behalte das beim Lesen bitte im Hinterkopf.

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…

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 done.

Imagick

php7-fpm imagickFü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 apcuIch 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:

## /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:

## /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.serviceGITHUB, 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.confGITHUB hinterlegt sowie eine php-fpm.d/www.confGITHUB, die du als Startpunkt nach /opt/local/etc packen kannst.

UnterschriftPer service php7-fpm 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).

4
  1. Maxilein :3

    4.4.2

  2. Marianne M. Spiller

    Das war nun was, das bei mir gar keine Probleme gemacht hat oO Welche WP-Version ist das?

  3. Maxilein :3

    Naja wenn ich nur des php7.0-mysql drin hab sagt es mir, dass es keine mysql erweiterung findet.. :c

  4. Marianne M. Spiller

    Inwiefern?

  5. Maxilein :3

    Hmm leider ist mein WP nicht in der Lage, das MySQL Addon von php7 zu bnutzen..

Keine weitere Reaktionen mehr möglich.