Mon php -v
PHP 7.1.15-1 + ubuntu14.04.1 + deb.sury.org + 2 (cli) (construit le 6 mars 2018 11:51:39) (NTS) Droits d'auteur (c) 1997-2018 Le PHP Group Zend Engine V3.1.0, Copyright © 1998-2018 Zend Technologies Avec Xdebug v2.6.0, Copyright (c) 2002-2018, par Derick Rethans avec Zend OPcache v7.1.15-1 + ubuntu14.04.1 + deb.sury.org + 2, Copyright (c) 1999-2018, par Zend Technologies
J'ai essayé à la fois la manière pecl
Sudo pecl install redis
Sudo service php7.1-fpm restart
Et la manière manuelle de https://github.com/phpredis/phpredis
phpize
./configure [--enable-redis-igbinary]
make && make install
Je me suis assuré de mettre
extension=/usr/lib/php/20170718/redis.so
dans le fichier php.ini comme indiqué lorsque j'exécute echo phpinfo();
par exemple.
/etc/php/7.1/cli/php.ini
Lorsque je lance le serveur Web intégré, je reçois
Avertissement PHP: PHP Startup: impossible de charger la bibliothèque dynamique '/Usr/lib/php/20170718/redis.so' - /usr/lib/php/20170718/redis.so: symbole non défini: zend_empty_string dans Unknown sur la ligne 0
Étrangement, PHPStorm exécute automatiquement la classe PHP Redis, afin
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
Je peux cliquer sur la classe Redis et voir que c'est la bonne.
Je me demande si c'est une différence de version? Peut-être parce que j'utilise 32 bits?
Une autre chose étrange est, si je mets juste
extension=redis.so
dans php.ini
, il semble être à la recherche d'une version plus ancienne
Démarrage PHP: impossible de charger la bibliothèque dynamique '/Usr/lib/php/20160303/redis.so' - /usr/lib/php/20160303/redis.so: Ne peut pas ouvrir un objet partagé file: Aucun fichier ou répertoire de ce type dans Unknown à la ligne 0
Quand je cours
Sudo apt-get install php-redis
il installe et signifie qu'aucune erreur de démarrage ne s'affiche, mais la page Web affiche toujours un
Classe 'Redis' introuvable
Une autre chose que je remarque est que dans Apache, il n'y a pas d'erreur, et la classe est trouvée. Mais lorsque je lance le serveur Web intégré de php, l'erreur non trouvée apparaît.
Ok donc j'ai remarqué que phpinfo a montré
API PHP 20160303
ce qui signifie que l'erreur précédente a un sens. La version PHP du serveur Web est 7.1, cependant, lors de l'exécution de phpredis phpize, il affiche celui de 7.2.
Je me suis donc assuré de supprimer php7.2-dev et de réinstaller php7.1 via apt-get, puis de réexécuter les étapes du repo github ci-dessus.
Peut-être avez-vous juste besoin d'installer ceci en utilisant un paquet ppa comme:
Sudo apt-get install php7.1-redis