it-swarm.com.de

PHP 7.2 Memcached-Erweiterung unter Mac OS

Ich versuche, php memcached extension unter Mac OS High Sierra einzurichten. Ich habe PHP 7.2

Ausgabe von PHP -v:

PHP 7.2.6 (cli) (built: May 25 2018 06:18:43) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.6, Copyright (c) 1999-2018, by Zend Technologies

Ich habe memcached via pecl ohne Fehler installiert:

pecl install memcached

Es ist in der Datei php.ini aktiviert:

extension="memcached.so"

Wenn ich <?php echo phpinfo();?> auf meinem Apache-Server ausführe. Ich kann die konfigurierte Sitzung sehen:

session.save_handler    memcached   memcached

Meine Symfony-Anwendung gibt mir immer noch diesen Fehler:

(1/1) ClassNotFoundException
Attempted to load class "Memcached" from the global namespace.
Did you forget a "use" statement?

BEARBEITEN:

Mein Apache führt eine andere Version von PHP aus (PHP Version 7.1.16). Ich weiß nicht warum, aber ich denke, das kann kein Problem sein. 

In der Infodatei kann ich im Abschnitt CORE sehen, dass das PHP-Erweiterungsverzeichnis "/usr/local/lib/php/pecl/20170718" ist. Wenn ich dieses Verzeichnis öffne, gibt es eine memcached.so-Datei. Der Weg ist richtig. 

EDIT 2:

In meinen Apache-Protokollen sehe ich eine Warnung:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/pecl/20170718/memcached.so' - dlopen(/usr/local/lib/php/pecl/20170718/memcached.so, 9): Symbol not found: _zend_empty_string\n  Referenced from: /usr/local/lib/php/pecl/20170718/memcached.so\n  Expected in: flat namespace\n in /usr/local/lib/php/pecl/20170718/memcached.so in Unknown on line 0
5
Joozty

So. Apache- und SLI-PHP-Version verwenden verschiedene php.ini-Dateien. Für mein Debian 9 verwenden Sie /etc/php/7.2/Apache2/php.ini und /etc/php/7.2/cli/php.ini

Ich glaube, Ihr Problem ist, dass Sie eine andere Version von PHP verwenden.

Probieren Sie einfach die folgenden Befehle aus:

$Sudo a2dismod php7.1
$Sudo a2enmod php7.2
$Sudo service Apache2 restart

Wenn Sie immer noch den gleichen Fehler erhalten, erstellen Sie die Datei info.php in Ihrem WWW-Verzeichnis, die den nächsten Code enthält:

<?php
phpinfo();

Und prüfen, ob Memcache geladen ist.

1
Lakremon