Wiele razy instalowałem Laravel w systemie operacyjnym Windows, ale nigdy nie wystąpił tego typu problem. Ten wewnętrzny serwer 500 zwykle występuje, gdy moduł "mod_rewrite" nie jest włączony.
Jednak w Ubuntu 14.04 ten problem przyprawia mnie o ból głowy. Zainstalowałem rewrite_mod, ale też nie działa. Dałem dostęp do wszystkich moich folderów i plików wewnątrz tj
/ var / www / html / laravel_project
Wciąż nie działa. Zmieniono również .htaccess z oryginalnego na ten.
+FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Posiadam również wszystkie niezbędne rozszerzenia potrzebne do Laravel 5+. Czy zostało coś, czego nie zrobiłem?
+FollowSymLinks
na górze? Powinien byćOptions +FollowSymLinks
.AllowOverride
w konfiguracji twojego serwera?Odpowiedzi:
Wreszcie rozwiązałem problem
Aby rozwiązać problem, uruchomiłem następujące polecenia przez terminal.
sudo chmod -R 755 laravel_blog
a następnie wpisz poniżej, aby umożliwić laravel zapisywanie pliku w folderze przechowywania
Te dwa polecenia rozwiązały problem.
źródło
Utwórz plik .env i uruchom:
To zadziałało dla mnie po ściągnięciu projektu git.
Po utworzeniu pliku .env i wygenerowaniu klucza, uruchom poniższy kod:
źródło
php artisan cache:clear php artisan config:clear
działa dla mojej sprawyPo zainstalowaniu uruchom poniższe polecenie
sudo chmod 755 -R laravel chmod -R o+w laravel/storage
tutaj "laravel" to nazwa katalogu, w którym zainstalowano laravel
źródło
composer install
sudo chmod -R 755 laravel
lokalizacja -R jest nieprawidłowaSpróbuj sprawdzić, czy masz
.env
plik.Przeważnie ta rzecz może spowodować coś takiego. Spróbuj utworzyć plik, a następnie skopiuj wszystko z
.env.example
, wklej go do utworzonego pliku i nadaj mu nazwę.env
. lub jsut po prostu zmień nazwę.env.example
pliku na.env
i uruchomphp artisan key:generate
źródło
Upewnij się, że plik .env zawierający APP_KEY istnieje w katalogu głównym.
To, co powinno znajdować się w .env, nie zostało wyraźnie określone w innych rozwiązaniach i pomyślałem, że sprowadzę to do powyższego zdania.
To naprawiło mój błąd 500 podczas nowej instalacji Laravel.
Kroki:
touch .env
)APP_KEY=
php artisan key:generate
Uwagi:
Moja konkretna instalacja nie zawierała żadnego pliku .env (przykład lub inaczej)
Po prostu posiadanie pustego pliku .env nie działa.
Plik env zawierający parametry, ale bez
APP_KEY
parametru, nie działa.Błąd ?: Podczas generowania klucza aplikacji w terminalu może się to udać, jednak żaden klucz nie zostanie umieszczony w pliku .env, jeśli plik nie ma wcześniej istniejącej
APP_KEY=
linii.Jako odniesienie, oto oficjalny plik .env z przydatnymi parametrami bazowymi. Skopiuj i wklej to, czego potrzebujesz:
https://github.com/laravel/laravel/blob/master/.env.example
źródło
Napotkałem podobny błąd. Sprawdziłem dane logowania
/var/log/apache2/error.log
i znalazłem wyjątek UknownValueExceptionZmieniłem właściciela na mojego użytkownika Apache folderu przechowywania w ramach projektu reż.
W moim przypadku właścicielem procesu apache2 jest
www-data
, więc zmień to na swoje, można to znaleźć w pliku konfiguracyjnym apache2. Mam nadzieję, że to ci się przyda.źródło
Naprawiłem za pomocą tego polecenia:
rm -rf app/storage/logs/laravel.logs chmod -R 777 app/storage, php artisan cache:clear, php artisan dump-autoload OR composer dump-autoload
Następnie zrestartuj serwer, a XAMPP lub inny i to powinno działać.
źródło
Niech inne rozwiązanie tego problemu:
Zainstaluj wymagane pakiety, uruchamiając polecenie composer z katalogu głównego projektu:
AKTUALIZACJA:
EDYTOWAĆ:
źródło
Miałem zainstalowane PHP 7.0 i PHP 7.1 i używałem PHP 7.1 w linii poleceń, a PHP 7.0 było włączone na Apache, co może powodować problemy, gdy używasz Laravel Framework i lokalnego hosta Apache2 z laravelem.
Najpierw sprawdź plik kompozytora, aby zobaczyć wersję PHP.
"php": "^7.1.3", "laravel/framework": "5.6.*",
Sprawdź swoją aktualną wersję php w linii poleceń
Sprawdź swoją aktualnie włączoną wersję php na Apache, zrobiłem za pomocą przeglądarki.
http://localhost
Jeśli to nie to samo, wyłącz aktualną wersję i włącz najnowszą.
sudo a2dismod php7.2 sudo a2enmod php7.1 sudo service apache2 restart
Następnie zmień uprawnienia do folderu
sudo chmod 755 -R blog
do folderu przechowywania
źródło
Częsty problem podczas korzystania z git:
Laravel's .gitignore ignores the .env file which when missing generates this error
Rozwiązano to, ręcznie dodając plik .env na serwerze lub przesyłając go przez FTP
źródło
Czasami jest problem z wersją php. Musimy zmienić wersję php z serwera. Po prostu zapisz poniżej ciąg w pliku .htaccess :
źródło
Najpierw zezwól na wszystkie uprawnienia dla folderu projektu (powiedzmy, że nazywa się laravel), dla podfolderu przechowywania i jego podfolderu logów oraz dla podfolderu dostawcy (laravel / storage, laravel / storage / logs i laravel / vendor).
Następnie sprawdź, czy masz plik .env - jeśli nie, możesz uruchomić:
aby zmienić nazwę pliku wbudowanego .env.example na wymagany .env.
W przeciwnym razie włącz tryb debugowania - otwórz plik .env i ustaw
APP_DEBUG=true
i otwórz laravel / config / app.php i zmień
'debug' => env('APP_DEBUG', false),
do
'debug' => env('APP_DEBUG', true),
aby dowiedzieć się, jaki jest powód Twojego błędu.
źródło
Uruchom te dwie komendy w katalogu, w którym zainstalowano Laravel:
sudo chmod 755 -R DIRECTORY_NAME chmod -R o+w DIRECTORY_NAME/storage
Następnie wyczyść pamięć podręczną i zrzuć automatyczne ładowanie:
źródło
Wielokrotnie miałem do czynienia z tym problemem. Wypróbuj jeden z tych kroków, który bardzo mi pomógł. Może ci też pomoże.
plik Composer dump-autoload
źródło
Przeczytałem wszystkie komentarze i sugestie. 500 - KOD BŁĘDU HTTP reprezentuje wewnętrzny błąd serwera.
Przyczyny tego błędu:
.env
nie znaleziono pliku w katalogu głównymNaprawić:
find /path/to/your/root/dir/ -type f -exec chmod 644 {} \; find /path/to/your/root/dir/ -type d -exec chmod 755 {} \; chown -R www-data:www-data /path/to/your/root/dir/ chgrp -R www-data storage bootstrap/cache chmod -R ug+rwx storage bootstrap/cache
touch .env
i wklej zmienne środowiskowe, a następnie uruchomapt-get install php7.2-[extension-name]
.env
pliku. I przyznaj uprawnienia użytkownikowi bazy danych do tej bazy danych.Są to typowe problemy, z którymi prawdopodobnie napotkasz podczas wdrażania aplikacji laravel, i jeden, od którego zaczniesz otrzymywać wszystkie te polecenia. Proponuję stworzyć skrypt, który zaoszczędzi Twój czas.
źródło
Jeśli używasz włóczęgi, spróbuj tego:
Najpierw usuń config.php z katalogu current / vendor.
Uruchom następujące polecenie:
NIE URUCHAMIAJ konfiguracji php artisan: cache.
Mam nadzieję, że to pomoże.
źródło
Uruchom te dwie komendy w katalogu głównym laravel
znajdź * -type d -print0 | xargs -0 chmod 0755 # dla katalogów
odnaleźć . -type f -print0 | xargs -0 chmod 0644 # dla plików
źródło
Mam podobny problem ze współdzielonym hostem. Miałem błąd 500. Właśnie naprawiłem, sprawdzając wersję Laravel i wersję PHP. Błąd był spowodowany tym, że Laravel 5.6 nie działa na PHP 7.0.x Kiedy już to wiem, po prostu rekonfiguruję projekt na Laravel 5.5, który jest kompatybilny z PHP 7.0.x, teraz wszystko jest w porządku. Innym powodem, dla którego czasami mam problemy, jest uszkodzenie FTP. Pliki są uszkodzone i muszę przesłać projekt więcej niż raz. Mam nadzieję, że ta pomoc w przyszłości nie znalazłem tylu informacji w tym temacie.
źródło
Dla tych z Was, którzy tak jak ja nadal mają błędy po wypróbowaniu wszystkich innych odpowiedzi:
Sprawdź wersję używaną przez apache php, najnowszy laravel działa tylko z php7.1. Więc musisz:
sudo a2dismod php[yourversion] sudo a2enmod php7.1 sudo systemctl restart apache2
mam nadzieję że to pomoże
źródło
jeśli jest na serwerze rzeczywistym, spróbuj tego
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> Options +FollowSymLinks RewriteEngine On RewriteBase / # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
następnie upewnij się, że wersja php w twoim pliku composer.json jest taka sama, jak na serwerze.
Sprawdź swoją wersję php w swoim terminalu za pomocą
php -v
źródło
Upewnij się, że uruchomiłeś
composer update
swoją instancję serwera.źródło
Po pierwsze, jeśli w repozytorium laravel nie ma pliku .env. Skopiuj i wklej plik .env.example i zmień jego nazwę na .env. następnie otwórz plik .env iw części bazy danych podaj opis bazy danych. Uruchom: php artisan klucz: wygeneruj pamięć podręczną php artisan: wyczyść php artisan config: cache php artisan config: wyczyść kompozytor dump-automatyczne ładowanie php artisan serv
źródło
Według logów:
[06-Feb-2016 22:38:48 Europe/Berlin] PHP Warning: require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17 [06-Feb-2016 22:38:48 Europe/Berlin] PHP Fatal error: require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17 [06-Feb-2016 22:43:37 Europe/Berlin] PHP Warning: require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17 [06-Feb-2016 22:43:37 Europe/Berlin] PHP Fatal error: require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
Podczas otwierania plików do folderu / vendor występują pewne błędy.
Instalując i aktualizując za pomocą narzędzia Composer, udało mi się ostatecznie rozwiązać problem.
źródło
Upewnij się, że folder przechowywania z previlege (chmod o + w), działa dla mnie jak urok.
źródło
Z powodu braku prawa do zapisywania katalogu logów.
chmod 755 przechowywanie -R
źródło
Napotkałem ten problem i naprawiłem go, aktualizując moją wersję php w Apache do 5.6.x.
źródło
Zmień uprawnienia do folderu internetowego tylko za pomocą tego polecenia:
sudo chmod 755 -R your_folder
źródło
Właśnie uruchomiłem następujące polecenie:
php artisan passport:install
Używałem paszportu, aby uruchomić moją aplikację całkowicie opartą na API i Vue.js. Laravel działał dobrze, ale za każdym razem, gdy próbowałem zalogować się przez moje API, otrzymywałem błąd. Po uruchomieniu polecenia i zaktualizowaniu client_id i client_secret w moich plikach Laravel, a następnie przesłaniu nowych aktualizacji na serwer live, problem został rozwiązany. W moim modelu użytkownika mam następujący skrypt:
public function generateToken($request) { $http = new \GuzzleHttp\Client(); $response = $http->post(URL::to('/').'/oauth/token', [ 'form_params' => [ 'grant_type' => 'password', 'client_id' => '6', 'client_secret' => 'x3yhgWVqF8sSaMev4JI3yvsVxfbgkfRJmqzlpiMQ', 'username' => $this->email, 'password' => $request->input('password'), 'scope' => '', ], ]); // Lets get an array instead of a stdObject so that we can return without errors $response = json_decode($response->getBody(), true); return oq_api_notify([ 'auth' => $response, // API ACCESS TOKEN 'user' => $this->load(['settings'])->toArray(), ], 201); }
Właśnie zaktualizowałem client_id i client_secret dopiero potem zapisałem. Ponieważ polecenie paszport daje dwa klucze klienta:
1) Klient dostępu osobistego (client_id i client_secret)
2) Przyznanie hasła klientowi (client_id i client_secret)
Użyłem klienta nadania hasła. Mam nadzieję, że to komuś pomoże :)
źródło