2012-11-16 3 views
3

아마존 EC2, RDS, Nginx, PHP-FPM, APC, BatCache 및 Memcached에서 매우 최적화 된 WordPress multisite (WPMU) 설치가 있습니다.WordPress 개체 캐시에서 사용자 권한을 지우려면 어떻게해야합니까?

APC는 opcodes를 캐시하기 위해 PHP 수준에서만 실행되지만 WordPress의 객체 캐시에는 사용하지 않습니다. 이를 위해 BatCache + Memcached를 사용하고 있습니다.

이 모든 것들은 놀라 울 정도로 잘 작동하고, 부하가 매우 빠르며, 예기치 않은 문제가 발생했습니다.

테스트 사용자로 로그인하고 새 블로그를 만들었으며/wp-admin에 로그인했을 때 권한이 없다고 말했습니다. 로그 아웃 한 후 같은 문제로 다시 로그인했습니다. 그런 다음 로그 아웃 한 후 Memcached를 다시 시작하고 다시 로그인하면 문제가 해결되었습니다.

저는 이것이 캐싱과 관련 있다고 확신합니다. 아마도 새로운 사이트 생성 프로세스에 연결하고 Memcached에서 일부 키를 지울 필요가 있지만 올바른 키를 찾아내는 방법을 모르겠습니다.

도움말, 제발! ;)

답변

0

이이 사용자 역할 기능과 연결되어있는 경우 그럴 매우 슈어을 해요,하지만이 경우 ... 이 기본값으로 관리자 기능을 재설정 할 수있는 작은 스크립트를해야한다 :

add_action('after_setup_theme', 'add_roles_caps'); 
function add_roles_caps() { 

    $caps = array(
    "edit_post", 
    "read_post", 
    "delete_post", 
    "edit_posts", 
    ... 
); 
    $roles = array(
    get_role('administrator'), 
    get_role('subscriber'), 
); 
    foreach ($roles as $role) { 
    foreach ($caps as $cap) { 
     $role->add_cap($cap); 
    } 
    } 
} 

이 예입니다. $ caps 배열에 모든 기능을 입력해야합니다. here

관련 문제