niebegeg.net
  • Home
  • Categories
  • Tags
  • Archives

Phpredis für PHP7 im Uberspace installieren

Kürzlich wurde PHP7 freigegeben und seit heute ist es auch bei Uberspace verfügbar. Da auch ownCloud PHP7-Bereitschaft meldete, schien meine bei Uberspace betriebene ownCloud ein guter Startpunkt zu sein.

Wie von den Ubernauten beschrieben, war das Umstellen der PHP-Version ein Klacks:

$ echo PHPVERSION=7.0 > ~/etc/phpversion
$ killall php-cgi

Nach dem Aus- und erneutem Einloggen war auch an der Kommandozeile PHP7 am Start:

$ php -version
PHP 7.0.0 (cli) (built: Dec  3 2015 23:16:00) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

Nun meldete sich aber mein ownCloud-Cronjob, da er die redis-PHP-Extension nicht mehr laden konnte, denn die war ja gegen PHP5.5 gebaut. Die Ubernauten haben ein sehr komfortables Werkzeug namens uberspace-install-pecl zum Installieren von PHP-Extensions am Start. Also los:

$ uberspace-install-pecl redis
<....>
In file included from /tmp/myname/tmp.Hwpwl21518/redis-2.2.7/redis.c:27:
/tmp/myname/tmp.Hwpwl21518/redis-2.2.7/common.h:3:40: error:
ext/standard/php_smart_str.h: No such file or directory

Schade, das klappt so nicht. Der Fehler wird im phpredis-Projekt schon länger diskutiert und es gibt einen PHP7-kompatiblen Branch. Da ich den Komfort des Uberspace-Bauprozesses nicht missen möchte und nur der Download der Paketquellen modifiziert werden muss, habe ich das Bau-Skript genommen (also kopiert) und angepasst:

$ cp $(which uberspace-install-pecl) ~/uberspace-install-phpredis.sh
$ vim  ~/uberspace-install-phpredis.sh

Im Skript wird in Zeile 59 der Download des Installationspakets

$ pecl download ${PECL_NAME}

ersetzt durch das Klonen des PHP7-Branches des Github-Projekts

$ git clone -b php7 https://github.com/phpredis/phpredis.git

und das Skript ausgeführt.

$ ~/uberspace-install-phpredis.sh redis
<...>
Installing redis.so to /home/dirkr/pecl ... done
Activating redis.so in ~/etc/php.ini ... done
Killing currently running PHP processes (if any) ... done

Fertig. Es wäre natürlich elegant, das Skript so umzubauen, dass es neben dem Extension-Namen auch Git-URLs verarbeitet, aber das kann ja noch werden. Außerdem wird das phpredis-Projekt (und andere, noch nicht ganz fertige Php-Extension-Projekte) sicher "in Kürze" die PHP7-Modifikationen in die nächste Release übernehmen und dann ist dier "Hack" sowieso überflüssig.


Ähnliche Beiträge

  • Drupal-Performance-Odysee mit Happy-End
  • Git-Workshop in Hamburg
  • Multisites mit Drupal - schön wars
  • PHP - The good Parts
  • Guter Code mit PHP

  • « Rückblick auf den Webmontag im Mai
  • Vier Jahre Innovation »

Published

Dec 7, 2015

Category

nerdism

Tags

  • git 2
  • php 6
  • uberspace 3

Bleib in Kontakt

  • niebegeg.net - Mein Leben im Entwicklerland
  • Die Inhalte dieser Website sind lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.
  • Powered by Pelican. Theme: Elegant by Talha Mansoor