
## /opt/local/lib/php.ini ... extension=apcu.so apc.enabled=1 apc.shm_size=32M apc.ttl=7200 apc.enable_cli=1 ...
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.
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
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:
## /opt/local/lib/php.ini ... extension=apcu.so apc.enabled=1 apc.shm_size=32M apc.ttl=7200 apc.enable_cli=1 ...
$ 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 ...
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. Per 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).
Naja wenn ich nur des php7.0-mysql drin hab sagt es mir, dass es keine mysql erweiterung findet.. :c
Inwiefern?
Hmm leider ist mein WP nicht in der Lage, das MySQL Addon von php7 zu bnutzen..
5 Comments
4.4.2
Das war nun was, das bei mir gar keine Probleme gemacht hat oO Welche WP-Version ist das?