[apache] 예외 처리기에 오류가 있습니다. -라 라벨

Laravel 설치 관련 질문입니다. 공개용 Unix 서버 설정이 있습니다.

<VirtualHost *:80>
ServerAdmin webmaster@mydomain.org
DocumentRoot "/var/www/mydomain"
ServerName mydomain.org
ServerAlias www.mydomain.org
ErrorLog "/var/log/mydomain.org-error_log"
CustomLog "/var/log/mydomain.org-access_log" common
</VirtualHost>

/ var / www / mydomain 즉 http://mydomain.org/test.php 에서 test.php가 포함 된 문서를 잘 제공 할 수 있습니다 .

<?php echo 'test';

잘 작동합니다.

bash에서 Composer를 통해 Laravel을 설치하고 파일을 살펴 봅니다.

# ls /var/www/mydomain/my-laravel-project

.gitattributes  CONTRIBUTING.md artisan         composer.json   phpunit.xml readme.md       vendor
.gitignore      app             bootstrap       composer.lock   public          server.php

그래서 내가 탐색 할 때 :

http://mydomain.org/my-laravel-project/public/

내 응용 프로그램이보고하는 이유 :

Error in exception handler. 

브라우저에서-빈 흰색 화면에? Laravel 스플래시 화면이 표시 될 것으로 예상합니다.

또한 로그 파일에는 아무것도 표시되지 않습니다.



답변

더 안전한 옵션은 스토리지 디렉토리 그룹을 웹 서버 그룹으로 변경하고 (일반적으로 apache또는 www-data이지만 이는 운영 체제마다 다를 수 있음) 디렉토리의 권한을 775.

chgrp -R www-data app/storage

또는 chown.

chown -R :www-data app/storage

그런 다음 디렉토리 권한이 775.

chmod -R 775 app/storage

로부터 Laravel 웹 사이트 :

Laravel은 하나의 권한 세트를 구성해야 할 수 있습니다. 앱 / 스토리지 내의 폴더에는 웹 서버의 쓰기 액세스가 필요합니다.


답변

라 라벨 5.2

chmod -R 777 스토리지

이전 Laravel
chmod 777 앱 / 스토리지 / *

자신의 계정이 아닌 다른 사용자 계정이없는 합리적으로 잠겨있는 전용 서버가있는 경우 777은 다른 어떤 것보다 더 많은 보안 위험을 초래해서는 안됩니다. 악의적 인 사용자가이를 이용하려면 다른 취약점이 있어야하며, 그 시점에서 777 권한은 어차피 의심 스러울 것입니다. 그러나 신뢰하지 않는 다른 사용자와 공유 서버에있는 경우 더 복잡한 권한을 조사하거나 호스팅 제공 업체가 이미 격리를 제공했는지 확인해야합니다.

그들은 이것을 빠른 시작 문서에 넣어야하고 다양한 설정에 대한 예제를 제공해야합니다. 더 많은 디렉토리가 자동으로 생성되므로 첫 번째로드 후에 다시 실행해야 할 수도 있습니다. 로그에서 쓰기 오류를 찾습니다.

또한 DocumentRoot는 / path / to / laravel-project / public이어야합니다.


답변

app/storage/sessions폴더 내에서 오래된 세션을 삭제 하고 775권한을 부여 app/storage하면 불처럼 작동합니다!

chmod -R 775 app/storage

행운을 빕니다!


답변

이 악대 차는 오래 전에이 문제를 전달했지만 여전히 “예외 처리기의 오류”에 대한 또 다른 조언이 있습니다.

“php artisan”을 실행했을 때 이런 일이 발생했습니다. 환경이 일반적으로 작동하는지 평가하는 좋은 방법입니다.

나는 그것을 실행했고 그것은 나에게 그 오류를 주었다. 그리고 나는 내 프로젝트의 루트 디렉토리에있는 artisan 파일을 편집하고 try catch 문을 추가 할 때까지 문제를 정확히 찾아 낼 수 없었다.

try {
    $artisan = Illuminate\Console\Application::start($app);
}
catch (Exception $e)
{
    dd($e->getMessage());
}

마침내 나는 깨달음의 메시지를 보았다.

string(41) "Connection refused [tcp://127.0.0.1:6379]"

제 경우에는 나쁜 redis 구성 이었지만 귀하의 경우에는 무엇이든 될 수 있습니다.

이 정보가 누군가에게 도움이되기를 바랍니다. 아니면 다음에 여기에 올 때마다 제 답을 찾을 수있을 것입니다.


답변

이를 해결하는 가장 짧은 방법은 sudo로 장인을 시작하는 것입니다. 이것은 장인에게 필요한 모든 권한을 제공하고 보안 문제도 일으키지 않을 것입니다.

그래서 대신 장인을 시작하십시오 :

$ php artisan serve

사용해보십시오 :

$ sudo php artisan serve 

따라서 권한을 변경할 필요가 없습니다.


답변

동일한 문제가 있습니다. chmod 명령 줄 을 사용하여 디렉토리 app / storage에서 775로 권한을 변경합니다.


답변