Я установил 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 февраля 2008 21:13:12)
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
Apache v2.2.8
Предположительно, у вас есть отдельные файлы php.ini, настроенные для apache и командной строки (cli).
Если это так, вам нужно добавить следующее в файл cli php.ini:
extension=memcache.so
На Ubuntu он находится в /etc/php5/cli/php.ini
Если он работает, memcache должен появиться в списке модулей, если вы запустите php -m
в командной строке.
Кроме того, вы можете создать файл /etc/php5/cond.d/memcache.ini
с тем же содержимым.
Возможно, у вас есть отдельный файл php.ini для режима CLI. Этот файл может не включать расширение memcache.
У меня была такая ошибка, и я также сделал 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/
Для простоты я использовал:
php -c /etc/php.ini ./cli-script.php
Если вы не знаете, какой 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)