"Memcache" не найден в командной строке PHP скрипт

У меня есть Memcache, установленный и работающий для приложений PHP, запускаемых через Apache (v2.2), но когда я пытаюсь запустить .php файл в командной строке, я получаю эту ошибку:

Fatal error: Class 'Memcache' not found in /usr/local/Matters/app/matters-common/connection.php on line 94

Линия 94:

$memcache = new Memcache;

Дополнительная информация:

CentOS 5.2
PHP 5.2.5 (cli) (построено: 20.02.2008 21:13:12)
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
Apache v2.2.8

Ответ 1

Предположительно, у вас есть отдельные файлы php.ini, настроенные для apache и командной строки (cli).

Если это так, вам нужно добавить следующее в файл cli php.ini:

extension=memcache.so

В Ubuntu он находится в /etc/php 5/cli/php.ini

Если он работает, то memcache должен появиться в списке модулей, если вы запустите php -m в командной строке.

В качестве альтернативы вы можете создать файл /etc/php5/cond.d/memcache.ini с тем же содержимым.

Ответ 2

Возможно, у вас есть отдельный файл php.ini для режима CLI. Этот файл может не включать расширение memcache.

Ответ 3

У меня была такая ошибка, и я также сделал php -i | grep memcache, и он говорит, что memcache включен, но мое решение, которое разрешило проблему, было, когда я редактировал php.ini, я просто изменил строку extension_dir = "./" на полный путь к каталогу расширений, который теперь выглядел следующим образом: extension_dir = "/usr/local/lib" - вам нужно проверить, где находится каталог расширения php и убедиться, что memcache.so существует.

то я просто перезапустил httpd и, увы, проблема исчезла.

вы можете проверить подробные шаги здесь:

http://joemarie-aliling.com/223/php-programming/php-memcache-not-found-problem/

Ответ 4

Для простоты я использовал:

php -c /etc/php.ini ./cli-script.php

Ответ 5

Если вы не знаете, какой php.ini использует ваша командная строка, введите php -i. Вы получите длинный список настроек, где где-то рядом с верхней частью списка вы увидите, какой php.ini используется:

Configuration File (php.ini) Path => /Applications/MAMP/bin/php/php5.3.6/conf
Loaded Configuration File => /Applications/MAMP/bin/php/php5.3.6/conf/php.ini
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)