일단 종종 500 에러가 뜨고
캐시 재생성을 하다 보니까 간헐적으로 사이트 곳곳에서 "권한이 없습니다" 문구가 뜨네요
어떤 페이지는 로그인하지 않았을 경우 뜨고
어떤 페이지는 관리자 계정으로 로그인했는데도 뜨네요
캐시 재생성을 다시 하면 사라지지만 또 다른 페이지에 랜덤으로 뜨는데
일단 텔넷으로 접속해서 rm -rf cache 명령어로 직접 삭제할 경우 (그리고 관리자 페이지에서 캐시 재생성 버튼을 누르지 않을 경우) 정상적으로 작동하는 거 같습니다.
딱 한번 rm -rf cache 하니까 store 폴더가 비어있지 않다면서 삭제가 안 되던데, 다시 한번 해보니까 잘 되더군요.
결국 캐시 재생성을 하려면 관리자 페이지에서 하지 말고 무조건 텔넷으로 들어가서 해야 할 거 같은데...
이유나 원인을 모르겠네요
댓글 15
루아틱 호스팅의 경우 아래의 보안모듈을 사용중지 하시면 어느정도 해결됩니다.
C패널 로그인하신다음 아래와 같이 보안탭에서 modsecurity 모듈을 사용중지 해보시기 바랍니다.
그리고 "구성 관련 문제를 해결하는 동안에만 ModSecurity를 비활성화하십시오. ModSecurity가 활성화되지 않을 경우 도메인이 모듈이 제공하는 추가 보호 레이어를 상실합니다." 이런 경고문구가 뜨는데 저거 비활성화되면 어떤게 안좋나요?
그렇군요. 근데 저희 사이트에서 로그인이 안되는건 현재 다른 페이지는 다 괜찮은데(dispMemberLoginForm 페이지라던지 아님 다른 레이아웃이라던지) 메인페이지에서만 일부 사용자들에 한해서 해당 문제가 나타나는거 같아서 뭔가 다른 문제가 있는거 같네요.
ModSecurity를 해제하면 보안상에 결함이 생기나요?
일단 사용중지 후 모니터링 해보시는 방법이 쉽긴하지요.
아래와 같은 경우에는 파일 캐시를 사용하면 문제가 생깁니다.
- XE 설치 경로를 NFS, Samba, 윈도우 네트워크 파일 공유 등 원격으로 마운트한 경우
- PHP를 실행하는 계정이 일정하지 않은 경우 (소유권이나 퍼미션이 서로 다른 파일과 폴더들이 뒤섞이는 경우)
- 계정에서 생성할 수 있는 파일 수(inode)에 제한이 있는 경우
PHP에서 다수의 파일을 한꺼번에 삭제하려면 무리가 있는 것이 사실이지만,
심지어 텔넷에서 rm -rf 명령조차 가끔 오류가 난다면 위와 같은 문제들 중 하나이거나
아무튼 뭔가 퍼미션이 심각하게 꼬여있는 게 아닐까 합니다.
웹호스팅이라면 캐시를 "사용하지 않음" (성능에 큰 영향을 미치는 일부 데이터는 여전히 캐싱됩니다)
직접 관리하시는 서버라면 Memcached를 권장합니다.
그 밖의 캐시 방법은 다른 선택의 여지가 없는 경우 외에는 사용을 권장하지 않습니다.
그렇군요. 캐시를 사용하지 않음으로 설정해 봐야겠네요.
그런데 인터넷에서 다음과 같은 코드를 htaccess에 삽입하라는 팁을 보고 적용하고 있는데,
ExpiresActive on
ExpiresDefault "access plus 1 month"
ExpiresByType text/cache-manifest "access plus 0 seconds"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/rss+xml "access plus 3 hour"
ExpiresByType application/atom+xml "access plus 3 hour"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType video/ogg "access plus 2 month"
ExpiresByType audio/ogg "access plus 2 month"
ExpiresByType video/mp4 "access plus 2 month"
ExpiresByType video/webm "access plus 2 month"
ExpiresByType text/x-component "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType font/opentype "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
</IfModule>
이거랑 라이믹스 자체 캐시랑 혹시 뭔가 중첩되거나 충돌되나요? 라이믹스 자체적으로 캐시를 한다면 저 코드는 빼는 게 낫나요?
증상은 index.php?act=dispMemberLoginForm 페이지에서 소셜로그인으로 관리자 계정으로 로그인하고 나니까 메인 페이지에서 에러가 뜨네요. 다른 게시판에서는 에러가 안 뜨고 로그아웃하거나 다른 계정으로 로그인했을 때는 에러가 안 떴습니다.