Ich habe Laravel viele Male unter Windows installiert, aber es ist nie ein solches Problem aufgetreten. Dieser 500 interne Server tritt normalerweise auf, wenn Ihr "mod_rewrite" -Modul nicht eingeschaltet ist.
Unter Ubuntu 14.04 bereitet mir dieses Problem jedoch Kopfschmerzen. Ich habe rewrite_mod installiert, aber es funktioniert auch nicht. Ich habe Zugriff auf alle meine Ordner und Dateien innerhalb gegeben, dh
/ var / www / html / laravel_project
Trotzdem funktioniert es nicht. Auch .htaccess wurde vom Original in dieses geändert.
+FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Ich habe auch alle notwendigen Erweiterungen für Laravel 5+. Gibt es noch etwas, das ich nicht getan habe?
+FollowSymLinks
oben? Sollte seinOptions +FollowSymLinks
.AllowOverride
in Ihrer Serverkonfiguration zugelassen?Antworten:
Endlich das Problem überwunden
Um das Problem zu lösen, habe ich die folgenden Befehle über das Terminal ausgeführt.
sudo chmod -R 755 laravel_blog
und geben Sie dann unten ein, damit laravel eine Datei in den Speicherordner schreiben kann
Diese beiden Befehle lösten das Problem.
quelle
Erstellen Sie die .env-Datei und führen Sie Folgendes aus:
Dies funktionierte für mich nach dem Ziehen eines Git-Projekts.
Führen Sie nach dem Erstellen der ENV-Datei und dem Generieren des Schlüssels den folgenden Code aus:
quelle
php artisan cache:clear php artisan config:clear
arbeitet für meinen FallNach der Installation den folgenden Befehl ausführen
sudo chmod 755 -R laravel chmod -R o+w laravel/storage
hier ist "laravel" der Name des Verzeichnisses, in dem laravel installiert ist
quelle
composer install
sudo chmod -R 755 laravel
Die Lage der -R ist falschVersuchen Sie zu überprüfen, ob Sie eine
.env
Datei haben.Meistens kann dieses Ding so etwas verursachen. Versuchen Sie, eine Datei zu erstellen, kopieren Sie dann alles aus
.env.example
, fügen Sie es in die erstellte Datei ein und benennen Sie es.env
. oder jsut benenne die.env.example
Datei einfach um.env
und führe sie ausphp artisan key:generate
quelle
Stellen Sie sicher, dass eine .env-Datei mit einem APP_KEY im Stammverzeichnis vorhanden ist.
Was in der .env enthalten sein sollte, wurde in anderen Lösungen nicht explizit angegeben, und ich dachte, ich würde es auf den obigen Satz reduzieren.
Dies hat meinen 500er Fehler bei einer Neuinstallation von Laravel behoben.
Schritte:
touch .env
)APP_KEY=
php artisan key:generate
Anmerkungen:
Meine spezielle Installation enthielt keinerlei .env (Beispiel oder anderweitig)
Nur eine leere .env zu haben, funktioniert nicht.
Eine .env-Datei mit Parametern, aber ohne
APP_KEY
Parameter, funktioniert nicht.Fehler?: Beim Generieren eines App-Schlüssels im Terminal wird dieser möglicherweise als erfolgreich gemeldet. Es wird jedoch kein Schlüssel in der .env- Datei abgelegt, wenn in der Datei keine bereits vorhandene
APP_KEY=
Zeile vorhanden ist.Als Referenz finden Sie hier die offizielle .env mit nützlichen Basisparametern. Kopieren und einfügen, was Sie brauchen:
https://github.com/laravel/laravel/blob/master/.env.example
quelle
Ich habe einen ähnlichen Fehler gesehen. Ich habe die Anmeldung überprüft
/var/log/apache2/error.log
und eine UnexpectedValueException gefundenIch habe den Besitzer in meinen Apache-Benutzer des Speicherordners unter dem Projektverzeichnis geändert.
In meinem Fall ist der Eigentümer des Apache2-Prozesses.
www-data
Ändern Sie dies in Ihren. Dies befindet sich in der Apache2-Konfigurationsdatei. Hoffe das ist nützlich für dich.quelle
Ich habe mit diesem Befehl Folgendes behoben:
rm -rf app/storage/logs/laravel.logs chmod -R 777 app/storage, php artisan cache:clear, php artisan dump-autoload OR composer dump-autoload
Dann starten Sie einen Server über XAMPP oder einen anderen neu und das sollte funktionieren.
quelle
Möge eine andere Lösung für dieses Problem:
Installieren Sie die erforderlichen Pakete, indem Sie den Composer-Befehl im Stammverzeichnis des Projekts ausführen:
AKTUALISIEREN:
BEARBEITEN:
quelle
Ich hatte PHP 7.0 und PHP 7.1 installiert und ich habe PHP 7.1 in der Befehlszeile verwendet und PHP 7.0 wurde in Apache aktiviert. Dieses Chaos kann Probleme verursachen, wenn Sie Laravel Framework und localhost Apache2 mit Laravel verwenden.
Überprüfen Sie zuerst Ihre Composer-Datei, um Ihre PHP-Version zu sehen.
"php": "^7.1.3", "laravel/framework": "5.6.*",
Überprüfen Sie Ihre aktuelle PHP-Version in der Befehlszeile
Überprüfen Sie Ihre derzeit auf Apache aktivierte PHP-Version. Ich habe den Browser verwendet.
http://localhost
Wenn dies nicht der Fall ist, deaktivieren Sie die aktuelle Version und aktivieren Sie die neueste.
sudo a2dismod php7.2 sudo a2enmod php7.1 sudo service apache2 restart
Danach ändern Sie die Ordnerberechtigungen
sudo chmod 755 -R blog
für Speicherordner
quelle
Ein häufiges Problem bei der Verwendung von Git:
Laravel's .gitignore ignores the .env file which when missing generates this error
Dies wurde behoben, indem manuell eine .env-Datei auf dem Server hinzugefügt oder über FTP hochgeladen wurde
quelle
Manchmal gibt es ein Problem mit der PHP-Version. Wir müssen die PHP-Version vom Server ändern. Schreiben Sie einfach die folgende Zeichenfolge in die .htaccess- Datei:
quelle
Erlauben Sie zunächst alle Berechtigungen für Ihren Projektordner (beispielsweise Laravel genannt), für den Unterordner "Speicher" und seine Unterordner "Protokolle" und für den Unterordner "Vendor" (Laravel / Speicher, Laravel / Speicher / Protokolle und Laravel / Vendor).
Überprüfen Sie dann, ob Ihre .env-Datei vorhanden ist. Andernfalls können Sie Folgendes ausführen:
um Ihr eingebautes .env.Beispiel in das erforderliche .env umzubenennen.
Andernfalls aktivieren Sie den Debug-Modus - öffnen Sie .env und stellen Sie ein
APP_DEBUG=true
und öffne laravel / config / app.php und ändere
'debug' => env('APP_DEBUG', false),
zu
'debug' => env('APP_DEBUG', true),
So können Sie herausfinden, was der Grund für Ihren Fehler ist.
quelle
Führen Sie diese beiden Befehle in dem Verzeichnis aus, in dem Laravel installiert ist:
sudo chmod 755 -R DIRECTORY_NAME chmod -R o+w DIRECTORY_NAME/storage
Leeren Sie dann den Cache und sichern Sie das automatische Laden:
quelle
Ich habe dieses Problem viele Male konfrontiert. Versuchen Sie einen dieser Schritte, es hat mir sehr geholfen. Vielleicht hilft es dir auch.
Composer Dump-Autoload
quelle
Ich habe alle Kommentare und Vorschläge gelesen. 500 - HTTP ERROR CODE repräsentiert einen internen Serverfehler.
Gründe für diesen Fehler:
.env
Datei nicht in Ihrem Stammverzeichnis gefundenFix:
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
fügen Sie Ihre Umgebungsvariablen ein und führen Sie sie ausapt-get install php7.2-[extension-name]
.env
Datei. Gewähren Sie dem Datenbankbenutzer Berechtigungen für diese Datenbank.Dies sind einige häufige Probleme, mit denen Sie wahrscheinlich konfrontiert werden, wenn Sie Ihre Laravel-App bereitstellen. Wenn Sie alle diese Befehle erhalten, sollten Sie ein Skript erstellen, das Ihre Zeit spart.
quelle
Wenn Sie Vagabund verwenden, versuchen Sie Folgendes:
Entfernen Sie zuerst config.php in current / vendor.
Führen Sie diesen Befehl aus:
NICHT LAUFEN PHP Artisan Config: Cache.
Ich hoffe das hilft.
quelle
Führen Sie diese beiden Befehle auf der Wurzel von Laravel aus
find * -type d -print0 | xargs -0 chmod 0755 # für Verzeichnisse
finden . -Typ f -print0 | xargs -0 chmod 0644 # für Dateien
quelle
Ich habe ein ähnliches Problem mit einem Share-Host. Ich hatte 500 Fehler. Ich habe es gerade behoben, indem ich die Laravel-Version und die PHP-Version überprüft habe. Der Fehler war, dass Laravel 5.6 nicht unter PHP 7.0.x läuft. Sobald ich das weiß, konfiguriere ich das Projekt einfach auf Laravel 5.5 neu, das mit PHP 7.0.x kompatibel ist. Jetzt ist alles in Ordnung. Ein weiterer Grund, warum ich manchmal Probleme habe, ist das FTP. Ich bekomme beschädigte Dateien und muss das Projekt mehr als einmal hochladen. Hoffe diese Hilfe in der Zukunft Ich habe nicht so viele Informationen in diesem Thema gefunden.
quelle
Für diejenigen unter Ihnen, die mich mögen, sind nach dem Ausprobieren aller anderen Antworten immer noch Fehler aufgetreten:
Überprüfen Sie die Version von PHP Apache verwendet, die neueste Laravel funktioniert nur mit PHP7.1. Also musst du:
sudo a2dismod php[yourversion] sudo a2enmod php7.1 sudo systemctl restart apache2
hoffe das hilft
quelle
Wenn es auf einem Live-Server ist, versuchen Sie dies
<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]
Stellen Sie dann auch sicher, dass die PHP-Version in Ihrer composer.json mit der Ihres Servers übereinstimmt.
Überprüfen Sie Ihre PHP-Version in Ihrem Terminal mit
php -v
quelle
Stellen Sie sicher, dass Sie
composer update
auf Ihrer Serverinstanz ausgeführt haben.quelle
Erstens, wenn sich in Ihrem Laravel-Repository keine .env-Datei befindet. Kopieren Sie die .env.example-Datei, fügen Sie sie ein und benennen Sie sie in .env um. Öffnen Sie dann die ENV-Datei und geben Sie im Datenbankteil Ihre Datenbankbeschreibung an. Ausführen: PHP Artisan Schlüssel: PHP Artisan Cache generieren: PHP Artisan Konfiguration löschen: Cache PHP Artisan Konfiguration: Composer löschen Dump-Autoload PHP Artisan Serve
quelle
Nach den Protokollen:
[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
Es gibt einige Fehler beim Öffnen von Dateien im Ordner / vendor.
Durch die Installation und Aktualisierung über Composer konnte ich das Problem endlich lösen.
quelle
Stellen Sie sicher, dass der Speicherordner mit Schreibvoraussetzung (chmod o + w) für mich wie ein Zauber funktioniert.
quelle
Da kein Recht besteht, das Verzeichnis des Protokolls zu schreiben.
chmod 755 Speicher -R
quelle
Ich war mit diesem Problem konfrontiert und habe es durch ein Upgrade meiner PHP-Version in Apache auf 5.6.x behoben
quelle
Ändern Sie die Berechtigung für den Webordner nur über diesen Befehl:
sudo chmod 755 -R your_folder
quelle
Ich habe gerade den folgenden Befehl ausgeführt:
php artisan passport:install
Ich habe Passport verwendet, um meine Anwendung vollständig basierend auf APIs und Vue.js auszuführen. Laravel hat gut funktioniert, aber jedes Mal, wenn ich versuchte, mich über meine API anzumelden, bekam ich den Fehler. Nachdem der Befehl ausgeführt und die client_id und client_secret in meinen Laravel-Dateien aktualisiert und die neuen Updates auf den Live-Server übertragen wurden, wurde das Problem behoben. In meinem Benutzermodell habe ich ein Skript wie folgt:
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); }
Ich habe gerade die client_id und client_secret aktualisiert und erst dann gespeichert. Da der Passpass-Befehl Ihnen zwei Client-Schlüssel gibt:
1) Client mit persönlichem Zugriff (client_id & client_secret)
2) Client zur Kennwortgewährung (client_id & client_secret)
Ich habe den Password Grant-Client verwendet. Hoffe das hilft jemandem da draußen :)
quelle