Ich habe Laravel viele Male unter Windows installiert, aber dieses Problem ist nie aufgetreten. Dieser 500 interne Server tritt normalerweise auf, wenn das Modul "mod_rewrite" nicht aktiviert ist.
Auf Ubuntu 14.04 bereitet mir dieses Problem jedoch Kopfschmerzen. Ich habe rewrite_mod installiert, funktioniert aber auch nicht. Ich habe Zugriff auf alle meine Ordner und Dateien erhalten, d. H.
/ var/www/html/laravel_project
Trotzdem funktioniert es nicht. Auch .htaccess vom Original zu diesem 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 etwas, was ich nicht getan habe?
Endlich das Problem überwunden
Zur Lösung des Problems habe ich die folgenden Befehle über das Terminal ausgeführt.
Sudo chmod -R 755 laravel_blog
geben Sie dann unten ein, damit laravel Dateien in den Speicherordner schreiben kann
chmod -R o+w laravel_blog/storage
Diese beiden Befehle lösten das Problem.
Nach der Installation führen Sie den folgenden Befehl aus
Sudo chmod 755 -R laravel
chmod -R o+w laravel/storage
hier ist "Laravel" der Name des Verzeichnisses, in dem Laravel installiert wurde
Ich habe mit diesem Befehl 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
Starten Sie dann einen Server oder XAMPP oder einen anderen neu und das sollte funktionieren.
Ich bin mit einem ähnlichen Fehler konfrontiert. Ich habe das Login in /var/log/Apache2/error.log
geprüft und eine UnexpectedValueException gefunden.
Ich habe den Besitzer zu meinem Apache-Benutzer des Speicherordners unter dem Projektverzeichnis geändert.
Sudo chown -R www-data:www-data ./storage
In meinem Fall ist der Apache2-Prozessbesitzer www-data
. Ändern Sie diesen Wert in Ihren, dies befindet sich in der Apache2-Konfigurationsdatei. Hoffe das ist nützlich für dich.
Kann eine andere Lösung für dieses Problem sein:
Installieren Sie die erforderlichen Pakete, indem Sie den Composer-Befehl im Stammverzeichnis des Projekts ausführen:
Sudo composer install
AKTUALISIEREN:
Ein Neuling, aber das ist, was ich getan habe, weil ich keinen Schlüssel hatte
Die .env-Datei erstellt und auch ausgeführt
php artisan key:generate
Das funktionierte für mich, nachdem ich ein Git-Projekt gezogen hatte
Versuchen Sie zu überprüfen, ob Sie eine .env
-Datei haben.
Meistens kann dieses Ding so etwas bewirken. Versuchen Sie, eine Datei zu erstellen, kopieren Sie dann alles aus .env.example
, fügen Sie es in Ihre erstellte Datei ein und nennen Sie es .env
. oder jsut benennen Sie einfach die .env.example
-Datei in .env
um und führen Sie php artisan key:generate
aus.
Manchmal gibt es Probleme mit der PHP-Version. Wir müssen die PHP-Version vom Server ändern. Schreiben Sie einfach die Zeichenfolge in .htaccess file auf:
AddHandler application/x-httpd-php5 .php
Ich hatte PHP 7.0 und PHP 7.1 installiert und ich hatte PHP 7.1 in der Befehlszeile verwendet und PHP 7.0 war auf Apache aktiviert. Diese Unordnung kann bei der Verwendung Probleme verursachen Laravel Framework und localhost Apache2 mit Laravel.
Überprüfen Sie zuerst Ihre Composer-Datei, um Ihre PHP -Version anzuzeigen.
"php": "^7.1.3",
"laravel/framework": "5.6.*",
Überprüfen Sie Ihre aktuelle PHP-Version in der Befehlszeile
php -v
Überprüfen Sie Ihre aktuell installierte PHP-Version in Apache. Ich habe den Browser verwendet.
http://localhost
Ist dies nicht der Fall, deaktivieren Sie die aktuelle Version und aktivieren Sie die neueste Version.
Sudo a2dismod php7.2
Sudo a2enmod php7.1
Sudo service Apache2 restart
Danach die Ordnerberechtigungen ändern
Sudo chmod 755 -R blog
für Speicherordner
chmod -R o+w blog/storage
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
Dann den Cache leeren und das automatische Laden sichern:
php artisan cache:clear
composer dump-autoload
Ich habe dieses Problem viele Male gegenübergestellt. Versuchen Sie einen dieser Schritte, es hat mir sehr geholfen. Vielleicht hilft es dir auch.
Neben den oben genannten Gründen gibt es noch andere Gründe, aus denen Laravel 500 Serverfehler verursachen kann. Einschließlich fehlender oder alter CSRF, Syntaxfehler, .htaccess-Miss-Konfiguration usw. Hier ist eine vollständige Liste enthalten https://abbasharoon.me/how-to-fix-laravel-ajax-500-internal-server-error/
Ein häufiges Problem bei der Verwendung von git:
Laravel's .gitignore ignores the .env file which when missing generates this error
Dies wurde durch manuelles Hinzufügen einer .env-Datei auf dem Server oder durch Hochladen über FTP erreicht
Führen Sie diese beiden Befehle auf der Wurzel von Laravel aus
find * -Typ d -print0 | xargs -0 chmod 0755 # für Verzeichnisse
finden . -type f -print0 | xargs -0 chmod 0644 # für Dateien
Für diejenigen unter Ihnen, die wie ich immer noch Fehler hatten, nachdem Sie alle anderen Antworten ausprobiert hatten:
Überprüfen Sie die von Apache verwendete Version von php. Die neueste Version funktioniert nur mit php7.1 . Sie müssen also:
Sudo a2dismod php[yourversion]
Sudo a2enmod php7.1
Sudo systemctl restart Apache2
hoffe das hilft
Ich habe ein ähnliches Problem mit einem Share-Host. Ich hatte 500 Fehler. Ich habe nur die Laravel-Version und die Version von PHP überprüft. Der Fehler war, weil Laravel 5.6 nicht unter PHP 7.0.x ausgeführt wird. Sobald ich das weiß, muss ich das Projekt auf Laravel 5.5 umkonfigurieren, das mit PHP 7.0.x kompatibel ist. Jetzt ist alles richtig. Ein anderer Grund, warum ich Probleme habe, ist manchmal das FTP, bei dem ich beschädigte Dateien bekomme und das Projekt mehr als einmal hochladen muss. Ich hoffe, diese Hilfe in der Zukunft habe ich nicht so viele Informationen in diesem Thema gefunden.
Erlauben Sie zunächst alle Berechtigungen für Ihren Projektordner (beispielsweise Laravel genannt), für den Unterordner "Speicher" und dessen Unterordner "Protokolle" sowie für den Unterordner "Hersteller" ("Laravel/Speicher", "Laravel/Speicher/Protokolle" und "Laravel/Hersteller").
Dann prüfen Sie, ob Ihre .env-Datei vorhanden ist. Wenn nicht, können Sie Folgendes ausführen:
$ mv .env.example .env
um das eingebaute .env.example in das benötigte .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.
Ich stellte mich diesem Problem und behebte ein Update meiner PHP-Version in Apache auf 5.6.x
Ich habe alle Kommentare und Vorschläge gelesen. 500 - HTTP-FEHLERCODE steht für 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 aus php artisan key:generate
php artisan cache:clear
php artisan config:clear
composer dump-autoload
apt-get install php7.2-[extension-name]
.env
. Gewähren Sie dem Datenbankbenutzer Berechtigungen für diese Datenbank.Dies sind einige der häufigsten Probleme, mit denen Sie wahrscheinlich konfrontiert werden, wenn Sie Ihre laravel App bereitstellen. Wenn Sie alle diese Befehle abrufen, sollten Sie ein Skript erstellen, mit dem Sie Zeit sparen.
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 mich über meine API anmelden wollte, bekam ich den Fehler. Nachdem Sie den Befehl ausgeführt und client_id und client_secret in meinen Laravel Dateien aktualisiert und dann die neuen Updates auf den Live-Server übertragen haben, 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 Passport-Befehl Ihnen zwei Client-Schlüssel gibt:
1) Client mit persönlichem Zugriff (client_id & client_secret)
2) Client mit Kennwortgewährung (client_id & client_secret)
Ich habe den Password Grant Client verwendet. Hoffe das hilft jemandem da draußen :)
Kein Recht, das Protokollverzeichnis zu schreiben.
chmod 755 lagerung -R
Laut 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
Beim Öffnen von Dateien im Ordner/vendor treten einige Fehler auf.
Durch die Installation und Aktualisierung per Composer konnte ich das Problem endlich lösen.
Sudo composer install
Sudo composer update
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
Stellen Sie sicher, dass Speicherordner mit Schreibberechtigung (chmod o + w) für mich wie ein Zauber arbeiten.
Ändern Sie die Webordnerberechtigung nur über diesen Befehl:
Sudo chmod 755 -R your_folder