2016-06-24 6 views
2

서버에서 Yum 업데이트 후 django webapp이 갑자기 각 요청에 대해 500 개의 내부 서버 오류를 던지기 시작했습니다. 이것은 로그 파일에서 발견되었습니다. libmemcachedDjango and missing libmemcached.so.10

Traceback (most recent call last): 
    File "/usr/local/virtualenv-django19/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 123, in get_response 
    response = middleware_method(request) 
    File "/usr/local/virtualenv-django19/local/lib/python2.7/site-packages/django/contrib/sessions/middleware.py", line 16, in process_request 
    request.session = self.SessionStore(session_key) 
    File "/usr/local/virtualenv-django19/local/lib/python2.7/site-packages/django/contrib/sessions/backends/cached_db.py", line 24, in __init__ 
    self._cache = caches[settings.SESSION_CACHE_ALIAS] 
    File "/usr/local/virtualenv-django19/local/lib/python2.7/site-packages/django/core/cache/__init__.py", line 80, in __getitem__ 
    cache = _create_cache(alias) 
    File "/usr/local/virtualenv-django19/local/lib/python2.7/site-packages/django/core/cache/__init__.py", line 55, in _create_cache 
    return backend_cls(location, params) 
    File "/usr/local/virtualenv-django19/local/lib/python2.7/site-packages/django/core/cache/backends/memcached.py", line 174, in __init__ 
    import pylibmc 
    File "/usr/local/virtualenv-django19/local/lib/python2.7/site-packages/pylibmc/__init__.py", line 71, in <module> 
    import _pylibmc 
ImportError: libmemcached.so.10: cannot open shared object file: No such file or directory 

버전은 1.0.16이며 pylibmc은 1.5.1이다.

웹 응용 프로그램은 캐싱을 위해 pylibmc를 통해 memcached를 사용합니다. 뭐라 구요?

답변

-1

pylibmc를 python-memcached으로 바꿉니다.

Pylibmc는 python-memcached보다 성능이 좋다고 알려져 있지만 그 차이는 미미합니다. pylibmc 1.5.1은 libmemcached 1.0.16과 호환되지 않는 것 같습니다. 변화를 만드는 것은 아주 쉽습니다. settings.py에서 한 줄 변경 변경

'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 

wsgi 프로세스를 다시로드하면 작업이 완료됩니다.

-1

버전 libmemcached 1.0.18pylibmc===1.5.1은 호환 가능하며 저에게 적합합니다.