Jest to pytanie związane z instalacją Laravel. Mam publiczną konfigurację serwera Unix:
<VirtualHost *:80>
ServerAdmin [email protected]
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>
Mogę udostępniać dokumenty z / var / www / mydomain, czyli http://mydomain.org/test.php z test.php zawierającym:
<?php echo 'test';
działa w porządku.
W bash, z Laravelem zainstalowanym przez Composera i przeglądaniem plików:
# 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
Kiedy więc przeglądam:
http://mydomain.org/my-laravel-project/public/
dlaczego moja aplikacja zgłasza:
Error in exception handler.
w przeglądarce - na pustym białym ekranie? Spodziewam się ekranu powitalnego Laravel.
Co więcej, pliki dziennika również niczego nie ujawniają.
/var/log
i zobaczyć, co, jeśli cokolwiek, mają do powiedzenia.app/storage/logs
? I czy wszystkie katalogi pamięci masowej można zapisywać?Odpowiedzi:
Bezpieczniejszą opcją byłaby zmiana grupy katalogów pamięci masowej na grupę serwerów WWW (zwykle
apache
lubwww-data
, ale może się to różnić w różnych systemach operacyjnych) i zachować uprawnienia z katalogu jako775
.Albo z
chown
.Następnie upewnij się, że masz uprawnienia do katalogu
775
.Ze strony internetowej Laravel :
źródło
sudo chown -R _www app/storage
(w razie potrzeby zastąp _www nazwą serwera Apache)chmod -R g+w app/storage
Laravel 5.2
chmod -R 777 przechowywania
Starsza aplikacja / pamięć masowa Laravel chmod 777 *
Zauważ, że jeśli masz rozsądnie zablokowany serwer dedykowany bez kont użytkowników innych niż twoje własne, 777 nie powinno stanowić większego zagrożenia dla bezpieczeństwa niż cokolwiek innego. Aby złośliwy użytkownik mógł to wykorzystać, musiałaby istnieć jakaś inna luka w zabezpieczeniach, aw tym momencie uprawnienie 777 jest prawdopodobnie dyskusyjne. Jeśli jednak korzystasz z serwera współdzielonego z innymi użytkownikami, którym nie ufasz, musisz przyjrzeć się bardziej skomplikowanym uprawnieniom lub sprawdzić, czy dostawca hostingu zapewnił już izolację.
Powinni naprawdę umieścić to w dokumentacji szybkiego startu i podać przykłady dla różnych konfiguracji. Może być również konieczne ponowne uruchomienie go po pierwszym załadowaniu, ponieważ więcej katalogów jest tworzonych automatycznie. Poszukaj w swoich dziennikach błędów zapisu.
Również twój DocumentRoot powinien być / path / to / laravel-project / public
źródło
Usunąłem stare sesje w
app/storage/sessions
folderze i dałem775
pozwolenie, abyapp/storage
potem działało jak ogień!Powodzenia!
źródło
Moda na to przeszła już dawno temu, ale wciąż mam kolejną radę dotyczącą „Błąd obsługi wyjątków”.
Przydarzyło mi się to, gdy uruchomiłem „php artisan”, co jest dobrym sposobem na ocenę, czy Twoje środowisko ogólnie działa.
Uruchomiłem go i dostałem ten błąd i nie mogłem wskazać problemu, dopóki nie wyedytowałem pliku rzemieślnika w katalogu głównym mojego projektu i nie dodałem instrukcji try catch:
W tym momencie w końcu zobaczyłem pouczającą wiadomość:
co w moim przypadku było złą konfiguracją redis, ale w twoim przypadku może to być wszystko.
Mam nadzieję, że to komuś pomoże, a przynajmniej gdy następnym razem tu dotrę, znajdę własną odpowiedź.
źródło
could not find driver
. A potem dowiedziałem się, że zainstalowałemphp-mysql
, gdyphp7.0-mysql
było to wymagane. Ten link pomógł mi również - digitalocean.com/community/tutorials/...Najkrótszym sposobem rozwiązania tego problemu jest rozpoczęcie pracy rzemieślniczej z sudo. Zapewni to rzemieślnikowi wszystkie potrzebne uprawnienia i nie spowoduje żadnych problemów z bezpieczeństwem.
więc zamiast początkującego rzemieślnika serwuj z:
spróbuj użyć:
dzięki temu nie będziesz musiał dokonywać żadnych zmian uprawnień
źródło
Mam ten sam problem, po prostu zmieniam uprawnienia z katalogu app / storage na 775 za pomocą wiersza poleceń chmod
źródło