2012-07-16 4 views
1

모든 설치 작업을 수행하는 데 Homebrew를 사용했지만 여기에 문제가 있습니다 ...libmemcached 및 PHP memcached 라이브러리 : OS X에서 시간 초과가 발생 했습니까?

그래서 "memcache"와 "memcached"모듈을 모두 사용하는 PHP 응용 프로그램이 있습니다. 도대체 무엇이.

시스템은 OS X Lion, 10.7.4입니다. Apache는 Apple이 OS 인 Apache/2.2.21과 함께 제공하는 주식입니다. Homebrew에서 PHP 5.3.14를 사용하고 있습니다.

brew install libmemcached memcached php53 php53-memcache php53-memcached

을 만물을 구성 - PHP를하는 .so 파일을 가리 키도록 아파치 httpd.conf을 설정하고 내 php.ini

에 memcache에와 memcached를 확장을 추가 : 나는 모든 것을 설치

내가 필요

내 응용 프로그램을로드하고 httpd가 다운됩니다! 여기

내가 얻을 크래시 덤프 (긴 덤프)의 : I brew uninstall libmemcached과 바운스 아파치, 나는 다음 내 응용 프로그램 벌금에 액세스 할 수 있으면 https://gist.github.com/3125309

그러나 memcached를 실제로 작동하지 않기 때문 (지속)을 할 수 없습니다 libmemcached를 찾으십시오.

memcached가 로컬에서 제대로 작동하도록하고 싶지만 여기에서 무슨 일이 일어나고 있는지 잘 모르겠습니다. 이것은 PHP의 유일한 문제입니다. 파이썬의 python-memcached 모듈을 사용하면 잘 액세스 할 수 있습니다 (하지만 libmemcached를 사용하는지 잘 모르겠습니다).

의견이 있으십니까? 나는 크래시 덤프 :(에 도움이 보이는 아무것도 보이지 않아요

편집 :

#ifdef HAVE_SNDTIMEO 
    if (server->root->snd_timeout) 
    { 
    struct timeval waittime; 

    waittime.tv_sec= 0; 
    waittime.tv_usec= server->root->snd_timeout; 

    int error= setsockopt(server->fd, SOL_SOCKET, SO_SNDTIMEO, 
         &waittime, (socklen_t)sizeof(struct timeval)); 
    assert(error == 0); 
    } 
#endif 

그래서 그것이 같은 소리! 아, 행 번호는 여기에 관련된 libmemcached 소스의 블록의 도움이 되었습니까 시간 제한 문제가?하지만 내 memcached를 로컬 호스트에, 가능성이 올바른 서버에 연결을 시도하지하지 않는 이상 ... 시간이 초과해서는 안된다. 아직

, 왜해야이 원인 완전한 아파치 충돌?

EDIT2 : 나는 SNDTIMEO와 RCVTIMEO 보와 함께 다시 컴파일했다. 이제는 기꺼이 실행 중이지만 ... A) 왜 configure 스크립트가이를 사용할 수 있는지 결정합니다. B) 왜 httpd 크래시가 발생 했나요?

+0

난 그냥 내 자신의 libmemcached 1.0.9를 구축하고 그것에 대한 PECL에서 PHP memcached 확장의 최신 버전을 구축하고 동일한 결과를 얻었다. 나는 그것이 사용자 오류일지도 모른다라고 느낀다. ..? – ashgromnies

답변

1

나는 RCVTIMEO 및 SNDTIMEO에 의존하는 코드 비트를 제거한 다음, 사용자 정의 libmemcached에 대해 php-memcached를 빌드하여 내 자신의 libmemcached를 빌드하여이를 해결할 수있었습니다.

시스템 보고서 SNDTIMEO 및 RCVTIMEO가 작동하지 않을 때 libmemcached configure 스크립트에서 사용할 수있는 이유가 확실하지 않습니다. 이로 인해 OS X 자작 버전이 나를 사용할 수 없게됩니다. 다른 사람들이이 문제에 직면하지 않은 것에 놀랐습니다.