it-swarm.com.de

Erhalten eines 500 internen Serverfehlers unter Laravel 5+ Ubuntu 14.04

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? 

51
DpEN

Endlich das Problem überwunden

  • Das Problem war weder die .htaccess-Datei noch die index.php. Das Problem bestand darin, auf die Dateien zuzugreifen und Berechtigungen zu benötigen.

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. 

174
DpEN

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

22
Sujendra Kumar

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.

11
Atdhe Kurteshi

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.

11
Snriud

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:

  • Sie sollten diesen Befehl nicht auf einem Produktionsserver ausführen, aber einige Probleme mit Composer können hiermit auf lokalen Umgebungen behoben werden.
9

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

7
Goodlife

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.

5
Lesther Bualan

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
4
Riyan Sheikh

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
3
Saulo Campos

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
3
Ayman

Ich habe dieses Problem viele Male gegenübergestellt. Versuchen Sie einen dieser Schritte, es hat mir sehr geholfen. Vielleicht hilft es dir auch. 

  1. Überprüfen Sie zunächst Ihre Dateiberechtigungen. 
  2. So richten Sie Dateiberechtigungen ein Sudo chmod 755 -R Ihr_Projekt
  3. Dann chmod -R o + Ihr Projekt/Speicher , um die Datei in den Speicherordner zu schreiben.
  4. PHP-Handwerker-Cache: clear
    composer dump-autoload
  5. PHP Handwerksschlüssel: generieren
  6. Dann Serveranforderungen prüfen gemäß der Laravel-Anforderung. 
  7. Viele Male Sie haben diesen Fehler wegen der PHP-Version bekommen. Versuchen Sie, Ihre PHP-Version zu ändern in Cpanel.
  8. Dann konfigurieren Sie Ihre .htaccess -Datei richtig
1
Anand Mainali

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/

1
Meta Pakistani

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

1
Maroun Melhem

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

1
Davinder Singh

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

1
Ika Tobihi

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. 

1
Josean Maya

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.

1
tsveti_iko

Ich stellte mich diesem Problem und behebte ein Update meiner PHP-Version in Apache auf 5.6.x

0
Mahmoud Niypoo

Ich habe alle Kommentare und Vorschläge gelesen. 500 - HTTP-FEHLERCODE steht für einen internen Serverfehler.

Gründe für diesen Fehler:

  • Es liegt hauptsächlich an Berechtigungsproblemen
  • Umgebungsvariablen nicht gefunden oder .env Datei nicht in Ihrem Stammverzeichnis gefunden
  • PHP-Erweiterungsproblem
  • Datenbankproblem

Fix:

  • Stellen Sie die richtigen Berechtigungen ein:
    • Führen Sie diese Befehle aus (Ubuntu/Debian)
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
  • Wenn die Datei .env nicht vorhanden ist, erstellen Sie eine mit 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
  • Überprüfen Sie Ihre php.ini-Datei und kommentieren Sie die benötigten Erweiterungen aus (In einigen Fällen müssen Sie die Erweiterung installieren, indem Sie den folgenden Befehl ausführen: apt-get install php7.2-[extension-name]
  • Überprüfen Sie Ihre Datenbankanmeldeinformationen und -werte in der Datei .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.

0
Smit Patel

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 :)

0
Julian Tabona

Kein Recht, das Protokollverzeichnis zu schreiben.
chmod 755 lagerung -R

0
George Peter

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
0
tomsihap

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

0
The Dead Guy

Stellen Sie sicher, dass Speicherordner mit Schreibberechtigung (chmod o + w) für mich wie ein Zauber arbeiten.

0
user3619249

Ändern Sie die Webordnerberechtigung nur über diesen Befehl:

Sudo chmod 755 -R your_folder

0
Muhammad Shoaib