PHP memcached 치명적 오류 : 'Memcache'클래스를 찾을 수 없습니다.


81

PHP에서 memcached를 사용하기 위해 php.net 의 예제를 붙여 넣었고 다음 과 같은 결과를 얻었습니다.

Fatal error: Class 'Memcache' not found

내 php.ini에 다음이 있습니다.

[memcache]
memcache.hash_strategy = "일관된"
memcache.max_failover_attemps = 100
memcache.allow_failover = 1

다음은 각각 php -i 및 php -m의 정보입니다.

php -i | grep -i memcache
memcached
memcached 지원 => 활성화 된
libmemcached 버전 => 0.37
등록 된 저장 핸들러 => 파일 사용자 sqlite memcached

php -m | grep -i memcache
memcached

따라서 php는 memcached를 모듈로로드 한 것으로 보이며 php info는로드되었으며 v.37을 사용하고 있다고 말합니다. 나는 아직 아파치를 통해 시도하지 않았으며 지금은 cli를 통해서만 사용하고 있습니다. 이견있는 사람?



방금 살펴 보았고 이미 내 php.ini에 확장자가 나열되어 있으며 내 extension_dir이 올바른 위치를 가리키고 있는지 이미 확인했습니다.
jpfuentes2 2010

'MEMCACHE'를 설치하는 간단한 명령은 아래 내 대답을 참조하십시오.
Phill Healey

1
sudo apt-get install php-memcache나를 위해 일한 것입니다. packages.ubuntu.com/… 은 사용 가능한 패키지를 보여줍니다.
Ryan

답변:


131

PHP에는 " memcache "및 " memcached "라는 두 가지 memcached 확장이 있습니다 .

하나 ( "memcache")를 사용하려고하는데 다른 하나 ( "memcached")가 설치되어있는 것 같습니다.


4
그것은 일종의 어리석은 일이지만 불행히도 PHP에서 빈번한 패턴입니다. 더 나은 방식으로 새로운 작업을 수행하도록 이전 확장을 업데이트하는 대신 뒤로 compt를 깨뜨리는 대신 단순히 새로운 확장을 만들었습니다. mysql 및 mysqli도 참조하십시오.
Charles

이것은 올바른 문제인 것 같습니다. 그러나 내가 찾은 모든 지침은 memcached를 설치하는 것처럼 보이지만 memcache를 참조하십시오. 이것은 약간 혼란 스럽습니다.
Patrick

7
좋아, 나는 다른 모든 것이 작동하지 않는 것처럼 보이기 때문에 간단한 수정을 찾았습니다. 다음 명령을 실행하십시오 : sudo aptitude install memcached php5-memcached
Patrick

이러한 패키지 이름은 특정 Debian 파생 제품에서만 작동합니다. 다른 환경에서는 패키지 이름이 다릅니다.
Charles

1
둘 다로드해도 실제 성능에 영향을주지 않아야합니다.
Charles

22

허용 된 답변이 의견에 말하는 것을 무시하고 'Memcache'를 설치하는 올바른 방법은 다음과 같습니다.

sudo apt-get install php5-memcache

참고 Memcache와 Memcached는 서로 관련이 있지만 종종 혼동되는 두 가지 별개의 소프트웨어입니다.

편집 이것은 이제 오래된 게시물이므로 php5 를 PHP 버전 번호로 대체해야한다고 언급 할 가치가 있다고 생각했습니다 .


몇 년 후,이 답변은 구식이라고 생각합니다. sudo apt-get install php-memcache나를 위해 일한 것입니다. packages.ubuntu.com/… 은 사용 가능한 패키지를 보여줍니다.
라이언

1
@Ryan 확실히 PHP5를 사용하지 않는 경우에만 적용됩니다. 많은 서버가 여전히 PHP5를 사용하므로 당시와 마찬가지로 유효합니다. 또한 질문에는 ubuntu-9.10 태그가 지정되어 있으므로 해당 버전과 직접 관련이 있으므로 내 대답을 추가로 검증합니다.
Phill Healey

"Memcached 및 Memcached"??
Brian Leishman

Windows에 대한 솔루션이 있습니까?
IrfanAnwar 2010

1

이 게시물에서 해결책을 찾았습니다 : /programming/11883378/class-memcache-not-found-php# =

PHP 5.4.4에서 작동하는 dll 파일을 찾았습니다.

나는 그들이 안정적인지 모르지만 확실히 작동합니다. 크레딧은이 링크로 이동합니다.

http://x32.elijst.nl/php_memcache-5.4-nts-vc9-x86.zip

http://x32.elijst.nl/php_memcache-5.4-vc9-x86.zip

2.2.5.0 버전으로 컴파일 한 후 발견했습니다 (PHP 5.4.4 용).

2.2.6은 아니지만 작동합니다. 또한 내 FTP에 미러링했습니다. 미러 링크 :

http://mustafabugra.com/resim/php_memcache-5.4-vc9-x86.zip http://mustafabugra.com/resim/php_memcache-5.4-nts-vc9-x86.zip


0

오른쪽은 php_memcache.dll 입니다. 제 경우에는 vc6 컴파일러 대신 vc9로 컴파일 된 lib를 사용하고있었습니다. apatche 오류 로그에서 다음과 같은 것을 얻었습니다.

PHP 시작 : sqlanywhere : 모듈을 초기화 할 수 없음 빌드 ID = API20090626, TS, VC9로 컴파일 된 모듈 빌드 ID = API20090626, TS, VC6으로 컴파일 된 PHP이 옵션은 일치해야합니다.

동일한 로그가 있는지 확인하고 다른 컴파일러로 컴파일 된 다른 dll을 다운로드 해보십시오.


0

OSX 사용자의 경우 :

다음 명령을 실행하여 Memcached를 설치합니다.

brew install memcached

-8

wp-config /로 이동하여 object-cache.php 및 advanced-cache.php를 삭제했는데 제대로 작동했습니다.


2
그저 WordPress 설치가 개체 캐싱을 수행하지 못하게하는 것뿐입니다. OP가 요청한 질문은 말할 것도없고 실제로 아무것도 수정되지 않았습니다.
Phill Healey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.