Heim > Artikel > Backend-Entwicklung > So installieren Sie Memcache und Memcached-Erweiterungen unter PHP7
memcache und memcached sind beide PHP-Erweiterungen für den Memcached-Server. Unter diesen erschien Memcache früher als Memcached, sodass einige alte Codes möglicherweise noch die Memcache-Erweiterung verwenden. Sie können eines entsprechend Ihren Anforderungen installieren. Hier sind die Installationsmethoden für beide.
Memcached ist ein Hochleistungs-Cache-Server mit verteiltem Speicher, und PHP Memcache und Memcached sind beide PHP-Erweiterungen des Memcached-Servers. Unter diesen erschien Memcache früher als Memcached, sodass einige alte Codes möglicherweise noch die Memcache-Erweiterung verwenden. Memcached erschien später und die meisten Frameworks unterstützen Memcached, was mittlerweile relativ beliebt ist.
Die erste ist Memcached. Diese Erweiterung erfordert die libmemcached-Clientbibliothek, andernfalls tritt der folgende Fehler auf: Überprüfung des libmemcached-Speicherorts: Fehler: Memcached-Unterstützung erfordert libmemcached-dir= um das Präfix anzugeben, in dem sich libmemcached-Header und -Bibliothek befinden. Fehler: „/var/tmp/memcached/configure –with-libmemcached-dir=no“ ist mit der folgenden Methode installiert [root@lnmp lnmp.cn]# yum install libmemcached libmemcached-devel
Prüfung des Speicherorts von zlib… configure: Fehler: Memcache-Unterstützung erfordert ZLIB. Verwenden Sie –with-zlib-dir=Das Memcache-Modul verwendet die Funktion zlib, um die Datenkomprimierung zu unterstützen. Daher erfordert die Installation dieses Moduls die Installation des Zlib-Moduls. Andernfalls wird der folgende Fehler angezeigt:
FEHLER: „/var/tmp/memcache/configure –enable-memcache-session=No“ fehlgeschlagen
Sie können yum verwenden, um es wie folgt zu installieren:
[root@lnmp lnmp.cn]# yum install zlib zlib-devel
https://pecl.php.net/package/memcachedInstallieren Sie die Memcached-Erweiterung
Versuchen Sie, sie mit PECL zu installieren. Die Adresse von Memcached auf PECL lautet:
[root@lnmp lnmp .cn]# pecl install memcached pecl/memcached erfordert PHP (Version >= 5.2.0, VersionKeine gültigen Pakete gefunden
Installation fehlgeschlagen
[root@localhost vagrant]#
Tipps liegen auf der Hand: Die memcached-Erweiterung auf PECL unterstützt nur Versionen über PHP 5.2 und unter 6.00. Noch nicht auf PHP7 aktualisiert. Aber glücklicherweise finden Sie ihren Link auf Github auf der Memcached-Seite von PECL:
https://github.com/php-memcached-dev/php-memcached
Der obige Code kann bereits den PHP7-Zweig unterstützen. Laden Sie hier den Quellcode in das ext-Verzeichnis des PHP-Quellcodes herunter:
[root@lnmp lnmp.cn]# cd /usr/local/src/php-7.0.8/ext/[root@lnmp ext]# git clone https://github.com/php-memcached-dev/php-memcached memcached[root@lnmp ext]# cd memcached/
checkout zum PHP7-Zweig:[root@lnmp memcached]# git checkout php7Branch php7 eingerichtet, um den Remote-Branch php7 vom Ursprung aus zu verfolgen.Zu einem neuen Branch „php7“ gewechselt[root@lnmp memcached]#Verwenden Sie phpize zur Installation, mein PHP ist installiert in /usr Unter /local/php7[root@lnmp memcached]# /usr/local/php7/bin/phpize[root@lnmp memcached]# ./configure –with-php-config=/usr /local/php7 /bin/php-configDann make und make install
[root@lnmp memcached]# make
[root@lnmp memcached]# make installGemeinsame Erweiterungen installieren: /usr /local/php7 /lib/php/extensions/no-debug-non-zts-20151012/[root@lnmp memcached]#
Sie können sehen, dass Memcached installiert und die Erweiterungsdatei im abgelegt wurde Aufgefordertes Verzeichnis:
[root@lnmp memcached]# ls /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/memcached.so opcache.a opcache.so [root@lnmp memcached] #Der letzte Schritt besteht darin, memcached.so in php.ini einzuführen[root@lnmp memcached]# vim /usr/local/php7/lib/php.iniDenken Sie daran, PHP-FPM neu zu laden, damit es wirksam wird Erweiterung wurde erfolgreich installiert.Hinzufügen :
extension=memcached. AlsoInstallieren Sie die Memcache-ErweiterungVersuchen Sie auch, sie mit PECL zu installieren:
[root@lnmp memcached]# pecl install memcache
aber es schlägt auch fehl
/tmp/pear/temp/ memcache/me mcache .c:40:40: Schwerwiegender Fehler: ext/standard/php_smart_str.h: Keine solche Datei oder kein solches Verzeichnis
#include "ext/standard/php_smart_str.h"
beendet.
make: *** [memcache.lo] Fehler 1
FEHLER: „make“ fehlgeschlagen
Es scheint, dass der Grund auch PECL ist. Die Installation der Memcache-Erweiterung unter PHP7 wird nicht unterstützt
https://pecl.php.net/package/memcache
wurde seit 2013 nicht aktualisiert. Wenn dieser Weg scheitert, können wir nur einen anderen Weg finden und unser Glück auch auf Github versuchen. Suche pecl memcache
https://github.com/search?utf8=%E2%9C%93&q=pecl+memcache&type=Repositories&ref=searchresults
Der erste (https://github.com/websupport-sk/ pecl -memcache) ist das, was Sie wollen, und der Code unterstützt bereits PHP7. Laden Sie den Code herunter und kompilieren Sie ihn jetzt:
[root@lnmp memcached]# cd ../[root@lnmp memcache] # /usr/local/php7 /bin/phpize[root@lnmp ext]# git clone https: // github.com/websupport-sk/pecl-memcache memcache
[root@lnmp ext]# cd memcache
Verwenden Sie PHPize zur Installation, die Schritte sind genau die gleichen wie bei memcached
[root@lnmp memcache]# vim /usr/local/php7/lib/php.ini[root@lnmp memcache]# ./configure –with-php-config=/usr/local/php7/bin/php-config
[root@lnmp memcache] # make
[root@ lnmp memcache]# make install
Gemeinsame Erweiterungen installieren: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/
[root@lnmp memcache] #
Ähnlich wie bei Memcached, führen Sie memcache.so in php.ini ein
Hinzufügen:extension=memcache .so
Endlich php-fpm neu laden[root@lnmp memcache]# systemctl php-fpm neu laden
Es ist fertig. Auf der PHPInfo-Seite können Sie sehen, dass Memcahce und Memchaced erfolgreich installiert wurden
Empfohlenes Lernen:
php-Video-TutorialDas obige ist der detaillierte Inhalt vonSo installieren Sie Memcache und Memcached-Erweiterungen unter PHP7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!