Неустранимая ошибка: Class 'Memcache' не найден (установлен с pecl)

Я установил memcache через ssh, используя:

$ pecl install memcache 

И это был результат: https://pastee.org/w63sy

И добавил эту строку в etc/php.ini :

 extension=memcache.so 

И при попытке инициализировать:

 /* MEMCACHE */ $memcache = new Memcache(); $memcache->pconnect('localhost',11211); 

Я получил:

 Fatal error: Class 'Memcache' not found in /home/piscolab/public_html/website.com/includes/sql.php on line 25 

Что я делаю не так?

Я нашел этот вопрос, но проблема была в его общем сервере. Я под VPS.

Запуск: php -i | grep php.ini php -i | grep php.ini :

 [root@vps ~]# php -i | grep php.ini                                                                                                                                           PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/memcache.so' - /usr/lib/php/modules/memcache.so: cannot open shared object file: No such file o r directory in Unknown on line 0                                                                                                                                              Configuration File (php.ini) Path => /etc                                                                                                                                     Loaded Configuration File => /etc/php.ini                                                                                                                                     [root@vps ~]# 

Поиск memcache.so (без вывода)

 [root@vps ~]# find / -type f -name memcache*.so' [root@vps ~]# find / -type f -name memcache*.so [root@vps ~]# 

Учитывая вывод сообщения об ошибке, похоже, что вам не хватает библиотек разработки zlib или, по крайней мере, они не находятся в обычном месте, где его можно автоматически найти с помощью configure.

Поскольку вы находитесь в CentOS, попробуйте установить библиотеки с помощью этой команды:

 yum install zlib-devel 

Это устанавливает библиотеку zlib, которая требуется для memcache. Попробуйте перезапустить установщик pecl после установки библиотек zlib.

это, вероятно, поможет, если вы предоставите дополнительную информацию через phpinfo () или php_config, точнее, ваша установка увидит библиотеки memcache и верны ваши пути к lib.

 php-config 

расскажу вам больше, интересным здесь является использование пути php ini, а путь к нему php ini будет показан при использовании –configure-options, suboption –with-config-file-path (/ etc / php5 / apache2 in мой конкретный случай), а пути lib будут отображаться с помощью –extension-dir

например

 php-config --extension-dir php-config --configure-options | grep -o 'with-config-file-path[^ ,.]*' | grep -o '[^=.]*$' 

Поэтому, чтобы использовать мой пример, мои пути lib установлены на

/ usr / lib / php5 / 20090626 + lfs и

 ls /usr/lib/php5/20090626+lfs/mem* 

команда для моей системы показывает:

/usr/lib/php5/20090626+lfs/memcached.so

и мой файл php.ini находится по адресу /etc/php5/apache2/php.ini

php-функция phpinfo () (просто место в файле и просмотр) также обнаруживает memcache как поддерживаемый и загруженный «поддержка memcached включена» (я специально использовал расширение memcached, а не memcache)

помните, что ваш веб-сервер может быть настроен на использование другого пути php.ini (и, следовательно, файла), чем ваша командная строка, поэтому проверьте оба. Также убедитесь, что вы размещаете расширение = memcache.so в правильном месте, так как многие дистрибутивы помещают его в /etc/php5/conf.d/memcache.ini, возможно, есть какое-то несоответствие?