질문을 삭제하지 말아주세요.!
 
1
0
-1

안녕하세요.

리눅스+라라벨 초보입니다.

질문드립니다. 도와주세요.

라라벨 프로젝트 생성후 Apache 서버에 올려서 보았는데요.

아래와 같은 에러가 떳습니다.

(1/1) UnexpectedValueException

The stream or file "/var/www/nes/user/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied


프로젝트 생성 후 수정한것은 아무것두 없습니다.


오류메시지를 자세히 보았을 때 laravel.log 파일을 오픈할 수 없다고 해서 해당 경로를 찾아가보니

laravel.log 파일 자체가 없었습니다.

in StreamHandler.php (line 107)
at StreamHandler->write(array('message' => 'UnexpectedValueException: The stream or file "/var/www/nes/user/storage/logs/laravel.log" could not be opened: 


라라벨 기본 페이지를 띄우고 싶었을 뿐인데... 어느 부분이 잘못된 것인지 모르겠습니다.


도와주세요 ㅠㅠ

    CommentAdd your comment...

    4 answers

    1.  
      1
      0
      -1

      문제를 해결하였습니다.

      문제는 SElinux 때문이었습니다.

      setenforce 0 를 사용하여 SElinux를 비활성하면 라라벨 페이지가 나옵니다.

      임시 방편인것 같은데... SElinux 를 활성화 하고서도 되는 방법을 찾아야 하것 같습니다.

      밑에 관련 페이지 남김니다.

      https://stackoverflow.com/questions/30306315/laravel-5-laravel-log-could-not-be-opened-permission-denied

      답변해주신 임환현님 김주원님 감사합니다.



        CommentAdd your comment...
      1.  
        2
        1
        0

        웹 서버 사용자와 그룹이  www-data이라면, 아래와 같이 해 보세요.


        /path/to/laravel-project $ sudo chmod -R 775 storage bootstrap/cache
        /path/to/laravel-project $ sudo chown -R www-data:www-data storage bootstrap/cache
        1. 전민호

          김주원님 답변 감사합니다.

          알려주신대로 해보았는데도 안되네요 ㅠㅠ 혹시 몰라서 에러 메시지 전부 올립니다.

          (1/1) UnexpectedValueException

          The stream or file "/var/www/nes/user/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

          in StreamHandler.php (line 107)
          at StreamHandler->write(array('message' => 'UnexpectedValueException: The stream or file "/var/www/nes/user/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107Stack trace:#0 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\\Handler\\StreamHandler->write(Array)#1 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Logger.php(337): Monolog\\Handler\\AbstractProcessingHandler->handle(Array)#2 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Logger.php(616): Monolog\\Logger->addRecord(400, Object(UnexpectedValueException), Array)#3 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Log/Writer.php(203): Monolog\\Logger->error(Object(UnexpectedValueException), Array)#4 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Log/Writer.php(114): Illuminate\\Log\\Writer->writeLog(\'error\', Object(UnexpectedValueException), Array)#5 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(71): Illuminate\\Log\\Writer->error(Object(UnexpectedValueException))#6 /var/www/nes/user/app/Exceptions/Handler.php(35): Illuminate\\Foundation\\Exceptions\\Handler->report(Object(UnexpectedValueException))#7 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(314): App\\Exceptions\\Handler->report(Object(UnexpectedValueException))#8 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(118): Illuminate\\Foundation\\Http\\Kernel->reportException(Object(UnexpectedValueException))#9 /var/www/nes/user/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))#10 {main}', 'context' => array(), 'level' => 400, 'level_name' => 'ERROR', 'channel' => 'local', 'datetime' =>object(DateTime), 'extra' => array(), 'formatted' => '[2017-07-31 18:16:07] local.ERROR: UnexpectedValueException: The stream or file "/var/www/nes/user/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107Stack trace:#0 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\\Handler\\StreamHandler->write(Array)#1 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Logger.php(337): Monolog\\Handler\\AbstractProcessingHandler->handle(Array)#2 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Logger.php(616): Monolog\\Logger->addRecord(400, Object(UnexpectedValueException), Array)#3 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Log/Writer.php(203): Monolog\\Logger->error(Object(UnexpectedValueException), Array)#4 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Log/Writer.php(114): Illuminate\\Log\\Writer->writeLog(\'error\', Object(UnexpectedValueException), Array)#5 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(71): Illuminate\\Log\\Writer->error(Object(UnexpectedValueException))#6 /var/www/nes/user/app/Exceptions/Handler.php(35): Illuminate\\Foundation\\Exceptions\\Handler->report(Object(UnexpectedValueException))#7 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(314): App\\Exceptions\\Handler->report(Object(UnexpectedValueException))#8 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(118): Illuminate\\Foundation\\Http\\Kernel->reportException(Object(UnexpectedValueException))#9 /var/www/nes/user/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))#10 {main} '))in AbstractProcessingHandler.php (line 37)
          at AbstractProcessingHandler->handle(array('message' => 'UnexpectedValueException: The stream or file "/var/www/nes/user/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107Stack trace:#0 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\\Handler\\StreamHandler->write(Array)#1 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Logger.php(337): Monolog\\Handler\\AbstractProcessingHandler->handle(Array)#2 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Logger.php(616): Monolog\\Logger->addRecord(400, Object(UnexpectedValueException), Array)#3 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Log/Writer.php(203): Monolog\\Logger->error(Object(UnexpectedValueException), Array)#4 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Log/Writer.php(114): Illuminate\\Log\\Writer->writeLog(\'error\', Object(UnexpectedValueException), Array)#5 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(71): Illuminate\\Log\\Writer->error(Object(UnexpectedValueException))#6 /var/www/nes/user/app/Exceptions/Handler.php(35): Illuminate\\Foundation\\Exceptions\\Handler->report(Object(UnexpectedValueException))#7 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(314): App\\Exceptions\\Handler->report(Object(UnexpectedValueException))#8 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(118): Illuminate\\Foundation\\Http\\Kernel->reportException(Object(UnexpectedValueException))#9 /var/www/nes/user/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))#10 {main}', 'context' => array(), 'level' => 400, 'level_name' => 'ERROR', 'channel' => 'local', 'datetime' =>object(DateTime), 'extra' => array(), 'formatted' => '[2017-07-31 18:16:07] local.ERROR: UnexpectedValueException: The stream or file "/var/www/nes/user/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107Stack trace:#0 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\\Handler\\StreamHandler->write(Array)#1 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Logger.php(337): Monolog\\Handler\\AbstractProcessingHandler->handle(Array)#2 /var/www/nes/user/vendor/monolog/monolog/src/Monolog/Logger.php(616): Monolog\\Logger->addRecord(400, Object(UnexpectedValueException), Array)#3 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Log/Writer.php(203): Monolog\\Logger->error(Object(UnexpectedValueException), Array)#4 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Log/Writer.php(114): Illuminate\\Log\\Writer->writeLog(\'error\', Object(UnexpectedValueException), Array)#5 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(71): Illuminate\\Log\\Writer->error(Object(UnexpectedValueException))#6 /var/www/nes/user/app/Exceptions/Handler.php(35): Illuminate\\Foundation\\Exceptions\\Handler->report(Object(UnexpectedValueException))#7 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(314): App\\Exceptions\\Handler->report(Object(UnexpectedValueException))#8 /var/www/nes/user/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(118): Illuminate\\Foundation\\Http\\Kernel->reportException(Object(UnexpectedValueException))#9 /var/www/nes/user/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))#10 {main} '))in Logger.php (line 337)
          at Logger->addRecord(400, object(UnexpectedValueException), array())in Logger.php (line 616)
          at Logger->error(object(UnexpectedValueException), array())in Writer.php (line 203)
          at Writer->writeLog('error', object(UnexpectedValueException), array())in Writer.php (line 114)
          at Writer->error(object(UnexpectedValueException))in Handler.php (line 71)
          at Handler->report(object(UnexpectedValueException))in Handler.php (line 35)
          at Handler->report(object(UnexpectedValueException))in HandleExceptions.php (line 81)
          at HandleExceptions->handleException(object(UnexpectedValueException))
        2. 김주원

          아파치 사용하시는 거죠? 아래 명령으로 웹 서버의 사용자를 찾으세요.

          $ ps aux | grep "apache\|httpd"

          사용자를 찾았으면 그룹을 찾으세요.

          $ groups 웹서버사용자이름

          찾은 정보로 폴더의 소유권을 바꿔주세요.


          그리고 나서, /path/to/laravel-project $ ls -alR storage 했을 때 logs 폴더의 소유권과 쓰기 권한이 rwxrwxr--로 나오는지 확인해주세요.

        3. 전민호

          넵 답변 감사합니다.

          알려주신대로 확인해 보았는데요..

          사용자와 그룹은 apache, apache

          logs 폴더의 권한은

          drwxrwxr-x.  2 apache apache   24 Aug  1 01:38 logs

          이렇게 나왔습니다..

          다른곳에 검색해도 문제 해결이 안되고 있네요 ㅠㅠ

        CommentAdd your comment...
      2.  
        1
        0
        -1

        안녕하세요. 답변 감사합니다.

        storage폴더와 bootstrap/cache 디렉토리 안의 권한을 확인 결과 모두 755로 되어 있었습니다.

        권한 문제는 맞는것 같은데.... 

        /storage/logs/ 경로에 laravel.log파일이 없던데 이 문제는 아닌가요?

        1. 임환현

          그 로그파일은 라라벨에 오류가 뜨면 자동으로 작성되는 파일인데..


          저도 라라벨 프로젝트 하면서, 해당 로그들이 쥬르륵..있길래.. 삭제해도 다시 재생성되고 특별한 오류같은건 없었습니다.. ㅠㅠ.. 도움이 되지못해 죄송합니다


        CommentAdd your comment...
      3.  
        1
        0
        -1

        메뉴얼에도 나와있듯이 storage 폴더는 각종 로그와, 뷰에관련한 파일이 저장되는 공간입니다.


        오류내용으로 볼떄는, 해당 폴더에 접근권한이 없어서 쓰기를 할수 없다고 하네요.

        storage 폴더를 755, 777 로 권한 변경해주세요.


        -----------------------------------------------------------

        디렉토리 권한 설정

        라라벨을 설치한 뒤에, 몇몇 권한을 설정해야될 필요가 있습니다. storage 와 bootstrap/cache 디렉토리 안에 들어 있는 디렉토리들은 모두 웹 서버에 의해서 쓰기가 가능해야 합니다. 그렇지 않으면 라라벨이 실행되지 않습니다. 홈스테드를 사용중이라면 이미 권한이 설정되어 있을 것입니다.

          CommentAdd your comment...