캐시폴더가 여러개 생깁니다.
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.4 |
정확히 언제부터 였는지는 모르겠습니다. 예전 부터 그랬던게 아닌건 확실합니다.
memcached 사용하고 있고 라이믹스 버전 2.0.7 이에요..
설치 환경 달라진 점은 최근 브라우저 캐시 설정, 라이믹스 업데이트, redis-server 설치 등을 했습니다.
원인과 해결방법이 있는지 알고 싶네요ㅜㅜ
내강아지
Lv. 5
댓글 12
최근에 무슨 행동을 하셧다던가 뭐 어떤시점이 있는 이후로 캐시파일 재생성할 경우 해당 캐싱파일을 재대로 비워주지 못한다는 것으로 보시면됩니다. (뒤에 붙는 숫자는 캐시파일 재생성을 시작한 시점의 유닉스 시간을 뜻합니다.)
이런경우라면 대부분 PHP에러로그를 확인해보세요
캐시파일 재생성시 fatal 에러를 출력하여 발생되는경우가 많습니다.
로그 파일을 열어보니
rm: cannot remove '/var/www/html/files/cache_1612815634/store/32/a9/32a9e2b0ce8ad4cf4dfc83e1b4e83c55a8564d79.php': Permission denied
이렇게 몇 줄 있는게 전부입니다.
또 이런 일이 생길까봐 자세히 알고 싶네요
퍼미션 건들지 않았다가 아니고 퍼미션을 확인하셔야 하는거 아닌가요?
궁금한건 퍼미션 오류가 캐시파일 재생성 폴더 생성과 연관이 있는지에요..
위에 올린 로그는 rm -r 로 지울때 생긴 로그이고 폴더 생성과는 관계가 없는거 같아서요.
라이믹스에서 발생한 오류가 아닌가요?
그럼 뭐 저도 잘 모르겠네요. 서버에는 저도 지식이 없어서요.
근데 sh 접속한 계정이 못지우는거는 문제 아닌가요.
라이믹스에서 자동으로 폴더가 생기는 이유가 못지워서 입니다.
캐시파일 재생성 여러번 해보시고 폴더 생기는지 확인해 보세요.
위에 적은처럼 유닉스 시간이 포함된 폴더명의 캐시폴더를 삭제했더니 더이상 캐시폴더가 생성되지 않습니다.
제가 궁금한건 저 로그가 폴더를 여러개 생성되게 하는 이유가 담긴 로그인지가 궁금한거에요..
로그를 찾아봐도 rm 퍼미션 로그만 있을뿐인데 기진곰님께서 로그에 답이 있다고 달아 주셔서
이 로그가 캐시폴더생성과 관련이 있는거라면 이런 일이 생긴김에 확실히 알고 넘어가려고요..
아마 sh에 로그인한 계정이 저 파일들을 삭제하지 못하는 계정이라면 저 에러가 뜨고 안지워지는게 당연할 것 같습니다.
그런데 중간에 캐시폴더가 자꾸 생성되었던 문제는 글쎄요. 정황만 봐서는 원인 찾기 힘들것 같네요.
새로 생긴 캐시폴더들을 삭제했더니 정상이 되더라 이건 뭔가 우연의 일치 같아서ㅠㅠ
캐시파일 재생성을 클릭하면 아래와 같은 순서로 작업이 진행됩니다.
1. 원래 있던 cache 폴더의 이름을 cache_16xxxxxxxx 로 바꿉니다. 이름을 바꾸지 않고 그 자리에서 삭제하려고 하면 다른 유저들이 계속해서 새로운 캐시파일을 생성해대기 때문에 삭제할 수가 없거든요.
2. 이름을 바꾼 폴더를 삭제합니다.
3. cache 폴더는 자동으로 다시 생깁니다.
이 때 2단계에서 어떤 오류가 발생하면 이름을 바꾼 폴더가 그대로 남는 거예요. 이름을 바꾸는 순간 캐시폴더로서의 역할은 상실하고, 새로 생긴 cache 폴더가 그 역할을 물려받기 때문에 cache_16xxxxxxxx 폴더가 남아 있더라도 실제 사이트 작동에 영향을 주지는 않습니다. 그냥 디스크 공간을 낭비할 뿐이죠.
삭제시 퍼미션 오류가 발생하는 원인은 대부분 PHP를 실행하는 계정(예: www-data)이 아닌 다른 계정(root, ubuntu, 내 FTP 계정 등)으로 어떤 작업을 하던 도중 그 계정 소유의 캐시파일이 생겼기 때문입니다. 다른 계정이 소유한 파일이니까 www-data 권한으로는 삭제할 수 없지요. 잘못된 계정을 한 번이라도 사용하면 그 파일이 마치 움직일 수 없는 바위처럼 남아서 계속 삭제를 방해할 수도 있습니다. 그 파일 하나만 지우면 다시 멀쩡해지고요.
우연의 일치로 되었다는 느낌이 찝찝했는데 정말 궁금했던 점이 풀렸습니다.
다음에 같은일이 생기더라도 원인을 알고 대처할 수 있을 것 같습니다!