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.