나는 laravel에서 아주 새롭고 사실 첫 프로젝트를 만들려고합니다. 어떤 이유로 든이 오류가 계속 발생합니다 (아직 코딩을 시작하지 않았습니다)
Error in exception handler: The stream or file "/var/www/laravel/app/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/laravel/bootstrap/compiled.php:8423
나는 이것이 권한과 관련이 있지만 chmod -R 775 storage
전혀 도움이되지 않는다는 것을 읽었습니다 .
답변
디렉토리를 777로 설정하지 마십시오 . 디렉토리 소유권을 변경해야합니다. 소유자로 로그인 한 현재 사용자와 웹 서버 사용자 (www-data, apache, …)를 그룹으로 설정하십시오. 당신은 이것을 시도 할 수 있습니다 :
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
그런 다음 디렉토리 권한을 설정하려면 다음을 시도하십시오.
chmod -R 775 storage
chmod -R 775 bootstrap/cache
최신 정보:
웹 서버 사용자 및 그룹은 웹 서버 및 OS에 따라 다릅니다. 웹 서버 사용자 및 그룹이 무엇인지 파악하려면 다음 명령을 사용하십시오. nginx 사용의 경우 :
ps aux|grep nginx|grep -v grep
아파치 사용 :
ps aux | egrep '(apache|httpd)'
답변
라이브 서버의 디렉토리에는 777을 사용하지 말고 자신의 컴퓨터에서는 775 이상을 수행해야합니다.
chmod -R 775 storage
방법
7 - Owner can write
7 - Group can write
5 - Others cannot write!
웹 서버가 Vagrant로 실행되지 않으면 웹 서버에 쓸 수 없으므로 두 가지 옵션이 있습니다.
chmod -R 777 storage
또는 그룹을 웹 서버 사용자로 변경하십시오 www-data
.
chown -R vagrant:www-data storage
답변
이 문제를 해결하려면 디렉토리의 소유권을 웹 서버가 사용하는 unix 사용자로 변경해야합니다.
- VM에서 나가
- 콘솔을 사용하여 동기화 된 폴더로 이동하십시오 (방랑자)
- sudo chown -R $ USER : www-data 스토리지
- chmod -R 775 저장
VM 사용자를 사용하여 VM 내에서 프로젝트를 만들었지 만 폴더는 실제 컴퓨터의 사용자에게 속합니다. 그래서 시도 할 때
이제 작동합니다.
이걸 알아내는 데 도움이 된 모든 사람들에게 감사합니다.
편집하다:
실제로, 그것은 여전히 작동하지 않고, 여전히 “허가 거부”문제를 주었다.
여기 내가 한 일이 있습니다. Vagrantfile을 다음과 같이 수정했습니다.
config.vm.synced_folder "./app","/var/www/", create:true,
:owner => "vagrant",
:group => "www-data",
:mount_options => ["dmode=775","fmode=664"]
답변
SELinux 일 수도 있습니다. (Centos, RedHat)
터미널에서 SElinux의 상태를 확인하십시오.
$ sestatus
상태가 활성화되면 SElinux를 비활성화하는 명령을 작성하십시오.
$ setenforce Permissive
또는이 명령을 실행할 수 있습니다
$ sudo setenforce 0
답변
storage
및 의 권한을 조정해야합니다 bootstrap/cache
.
cd
라 라벨 프로젝트에sudo chmod -R 755 storage
sudo chmod -R 755 bootstrap/cache
755가 작동하지 않으면 777을 시도 할 수 있습니다. 777은 안전하지 않습니다!
웹 서버 설정 방법에 따라 권한을 더 구체적으로 지정할 수 있으며 웹 서버 사용자에게만 권한을 부여 할 수 있습니다. WEB SERVER NAME Laravel file permissions
자세한 내용은 Google 을 참조하십시오.
글을 쓰는 시점에서 이것은 Laravel 5.4 용입니다.
답변
추가 composer.json
"scripts": {
"post-install-cmd": [
"chgrp -R www-data storage bootstrap/cache",
"chmod -R ug+rwx storage bootstrap/cache"
]
}
후 composer install
답변
다음 명령을 실행하면 sudo
시스템 시작에 따라 명령을 시작할 때 추가 할 수 있습니다 .
chmod -R 775 storage/framework
chmod -R 775 storage/logs
chmod -R 775 bootstrap/cache