라라벨 touch(): Utime failed: Operation not permitted 에러 해결 방법

라라벨 브리즈라이브와이어Livewire로 설치하고, 라라벨 디버그바Laravel Debugbar도 설치하는 등 초기 세팅을 하다가 갑자기 에러가 발생했다.

그 에러를 해결하는 방법을 공유하려고 한다.

너무 간단해서 오늘의 글은 굉장히 짧을 것 같다.




이전 포스트




touch(): Utime failed: Operation not permitted 에러

브리즈를 설치한 직후에는 괜찮았다.

그런데 한글화를 시키고, 디버그바도 설치한 다음에 '로그인'이나 '회원가입' 페이지로 이동하니 갑자기 이런 에러가 떴다.


이 에러는 주로 도커docker 볼륨 마운트 환경에서 우분투(호스트)의 파일 수정 시간(Utime) 변경 권한과 도커 컨테이너 내부의 www-data 혹은 root 유저 권한이 충돌하면서, 블레이드 뷰 파일의 컴파일된 캐시를 갱신(touch())하지 못해 발생한다.





이 포스트에서 안내했던 모든 명령어들을 실행했는데도 에러가 사라지지 않는다면, 아래의 명령어를 입력하자.




make app #컨테이너 안으로 들어간다.
php artisan view:clear #나의 경우, 이것만 실행해도 해결이 됐다.
php artisan cache:clear

VSCode의 터미널에서 이 명령어들을 차례대로 실행한다.

이 명령어를 치면 도커 내부에서 직접 기존 뷰 캐시를 날리기 때문에, 권한 인지 오류가 즉시 해결된다.


이제 '로그인'이나 '회원가입' 페이지로 이동할 수 있을 거다.




도커 환경에서 프로젝트를 진행하다 보면, 로컬 컴퓨터와 컨테이너 내부의 파일 소유 권한이 꼬이면서 블레이드Blade 뷰 컴파일러가 파일 수정 시간을 제대로 변경하지 못해 발생하는 오류였다.

이럴 때는 위의 명령어들을 차례대로 입력해 주면 된다.

컨테이너 내부로 직접 진입하여 꼬여있던 기존 뷰 캐시 파일들을 시원하게 날려버리기 때문에 권한 오류가 즉시 해결되는 것을 볼 수 있다.




다음 포스트

이 글이 도움이 됐거나 유익했다면 스크롤을 조금만 더 내려서 댓글을 남겨주세요. (비로그인도 가능합니다!)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊

지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.
이전 포스트 다음 포스트

댓글 쓰기

0 Comments

문의하기 양식