Laravel 5 – Cache im Shared-Hosting-Server löschen

Lesezeit: 9 Minuten

Laravel 5 – Cache im Shared Hosting Server loschen
Rinto George

Die Frage ist ziemlich klar.

php artisan cache:clear

Gibt es eine Problemumgehung, um den Cache wie den obigen Befehl zu löschen, jedoch ohne CLI. Ich verwende einen beliebten Shared-Hosting-Service, aber gemäß meinem Plan habe ich keinen Zugriff auf das Control Panel.

Ich möchte den Views-Cache löschen.

Ich habe eine ähnliche Frage gesehen, aber sie hilft mir nicht.

  • Das Ausführen von Laravel auf Shared Hosting ist meiner Meinung nach aus genau diesem Grund verrückt. Wie führen Sie Migrationen durch?

    – ceejayoz

    16. Juli 2015 um 15:01 Uhr

  • @ceejayoz .. Eigentlich habe ich gerade mit diesem Projekt begonnen, und es ist auch mein erstes Laravel-Projekt. Zu dieser Migrationssache bin ich noch nicht gekommen..

    – Rinto George

    19. Juli 2015 um 7:58 Uhr


  • “Laravel auf Shared Hosting zu betreiben ist verrückt” @ceejayoz … Aber das ist die reale Welt. Manchmal muss man, weil man keine Wahl hat.

    – elb98rm

    1. September 2016 um 8:47 Uhr

  • und das hat in laravel 8 funktioniert

    – Azade

    1. Dezember 2021 um 15:31 Uhr

1646180650 960 Laravel 5 – Cache im Shared Hosting Server loschen
Marco Pallante

Sie können einen Artisan-Befehl außerhalb der CLI aufrufen.

Route::get('/clear-cache', function() {
    $exitCode = Artisan::call('cache:clear');
    // return what you want
});

Sie können das offizielle Dokument hier einsehen
http://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli


Aktualisieren

Es gibt keine Möglichkeit, den View-Cache zu löschen. Weder php artisan cache:clearmacht das.

Wenn Sie den View-Cache wirklich löschen möchten, müssen Sie meiner Meinung nach einen eigenen schreiben artisan Befehl und rufe es auf, wie ich zuvor sagte, oder überspringe es ganz artisan path und leeren Sie den View-Cache in einer Klasse, die Sie von einem Controller oder einer Route aufrufen.

Aber meine eigentliche Frage ist Müssen Sie wirklich den View-Cache löschen?? In einem Projekt, an dem ich gerade arbeite, habe ich fast 100 zwischengespeicherte Ansichten und sie wiegen weniger als 1 MB, während meine vendor Verzeichnis ist > 40 MB. Ich glaube nicht, dass der View-Cache ein echter Engpass bei der Festplattennutzung ist und nie wirklich nötig war, ihn zu löschen.

Wie für die Anwendungscachees wird in der gespeichert storage/framework/cache Verzeichnis, aber nur wenn Sie das konfiguriert haben file Fahrer ein config/cache.php. Sie können viele verschiedene Treiber auswählen, wie z Redis oder Zwischengespeichertum die Leistung gegenüber einem dateibasierten Cache zu verbessern.

  • Was Zwischenspeicher versuchst du zu löschen? Die cache:clear Befehl funktioniert mit dem Anwendungscachediejenige, auf die über die zugegriffen wird Cache Fassade.

    – Marco Pallante

    16. Juli 2015 um 15:19 Uhr

  • Ich möchte den View-Cache leeren, es sind viele Seiten im View-Cache-Ordner gespeichert. Eine weitere Frage, wann der Anwendungscache sagt, auf welche Verzeichnisse er abzielt.

    – Rinto George

    19. Juli 2015 um 4:47 Uhr


  • Danke für die Erklärung!. Ich mache mir keine Sorgen um den Speicherplatz 🙂 Aber eine Frage, wenn der Ansichts-Cache nicht gelöscht wird, wie wirken sich dann die neuen Änderungen in der Ansicht auf die Website aus? Findet in Laravel eine E / A-Prüfung statt?

    – Rinto George

    19. Juli 2015 um 6:48 Uhr


  • Ich denke, es führt eine Zeitstempelprüfung für Dateien durch, was schneller ist als die Neuerstellung der Blade-Vorlage

    – Marco Pallante

    19. Juli 2015 um 8:02 Uhr

  • “Es gibt keine Möglichkeit, den View-Cache zu löschen” Das ist einfach nicht wahr. Sie können verwenden php artisan view:clear genau das zu tun.

    – jfadich

    7. November 2018 um 21:42 Uhr

Laravel 5 – Cache im Shared Hosting Server loschen
Der Milliardär

Gehe zu laravelFolder/bootstrap/cache dann umbenennen config.php zu allem, was Sie wollen, z. config.php_old und lade deine Seite neu. Das sollte wie Voodoo wirken.

  • Ich bestätige. Funktioniert in Laravel 5.4. Ich verbeuge mich.

    – Simon

    31. Mai 2017 um 1:14 Uhr

  • Die einzige Lösung! Wenn Sie sich fragen, warum funktioniert? das weiß nur Gott

    – Luis Contreras

    27. Juni 2017 um 21:03 Uhr

  • Bestätigt, dass es den Schmerz in der A ** beseitigt, während Laravel 5.4 von Windows auf Shared Hosting gehostet wird …. DANKE !!!

    – Rikudo-Schmerz

    3. Juli 2017 um 17:52 Uhr

  • Es scheint, dass dies in einigen Szenarien die einzige Lösung ist, die funktioniert. Wenn Sie über eine zwischengespeicherte Konfiguration verfügen und dann eine Facade oder einen Dienstanbieter entfernen, wird beim Ausführen des Befehls zum Erstellen der neuen zwischengespeicherten Konfiguration die vorhandene zwischengespeicherte Konfiguration verwendet und versucht, auf die Facade- und/oder Dienstanbieterklassen zu verweisen existiert nicht mehr und fällt aus. Die andere Option wäre, die Verweise aus der Konfigurationsdatei zu entfernen, Ihre zwischengespeicherte Konfiguration neu zu generieren und dann die eigentlichen Fassaden- und/oder Dienstanbieterklassen zu entfernen.

    – Jason Wheeler

    28. September 2017 um 2:08 Uhr


  • Für Laravel 6.6 habe ich gerade entfernt, um das Caching zu entfernen cache Ordner & hinein .env Standard-Cache-Wert der Datei. Aber nach dem Löschen dieses ganzen Problems wieder .. wann php artisan optimize. Schließlich hat dieser mein Problem gelöst, nicht durch Umbenennen, sondern durch Ändern des Schlüsselwerts in der Datei config.php. Danke @DeadGuy

    – Chandan Sharma

    18. Dezember 2019 um 10:48 Uhr


Laravel 5 – Cache im Shared Hosting Server loschen
Francesco

Wie ich sehen kann: http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-from-applicationexample.html

ist es möglich, den folgenden Code mit den neuen Befehlen zum Löschen des Caches zu verwenden:

//Clear Cache facade value:
Route::get('/clear-cache', function() {
    $exitCode = Artisan::call('cache:clear');
    return '<h1>Cache facade value cleared</h1>';
});

//Reoptimized class loader:
Route::get('/optimize', function() {
    $exitCode = Artisan::call('optimize');
    return '<h1>Reoptimized class loader</h1>';
});

//Route cache:
Route::get('/route-cache', function() {
    $exitCode = Artisan::call('route:cache');
    return '<h1>Routes cached</h1>';
});

//Clear Route cache:
Route::get('/route-clear', function() {
    $exitCode = Artisan::call('route:clear');
    return '<h1>Route cache cleared</h1>';
});

//Clear View cache:
Route::get('/view-clear', function() {
    $exitCode = Artisan::call('view:clear');
    return '<h1>View cache cleared</h1>';
});

//Clear Config cache:
Route::get('/config-cache', function() {
    $exitCode = Artisan::call('config:cache');
    return '<h1>Clear Config cleared</h1>';
});

Es ist nicht notwendig, jedem die Möglichkeit zu geben, die Caches zu löschen, insbesondere in einer Produktionsumgebung, daher schlage ich vor, diese Routen zu kommentieren und, wenn nötig, den Code zu de-kommentieren und die Routen auszuführen.

  • Ich fand diesen Ausschnitt am hilfreichsten.

    – Haseeb Zulfiqar

    28. November 2017 um 7:20 Uhr

  • Ich habe ein Problem mit config:cache, es funktioniert nicht in Route oder Controller, aber andere funktionieren. Was wäre ein Problem?

    – neindev

    6. Februar 2020 um 13:12 Uhr


1646180651 641 Laravel 5 – Cache im Shared Hosting Server loschen
Maulik

Konfigurations-Caching
Die Laravel-Konfiguration verteilt sich über Dutzende von Dateien und including Jeder von ihnen für jede Anfrage ist ein kostspieliger Prozess. Um alle Ihre Konfigurationsdateien zu einer zu kombinieren, verwenden Sie:

php artisan config:cache

Denken Sie daran, dass Änderungen an der Konfiguration keine Auswirkungen haben, sobald Sie sie zwischenspeichern. Führen Sie den obigen Befehl erneut aus, um den Konfigurationscache zu aktualisieren. Falls Sie den Konfigurationscache vollständig löschen möchten, führen Sie ihn aus

php artisan config:clear

Zwischenspeichern von Routen
Routing ist auch eine teure Aufgabe in Laravel. Führen Sie den folgenden Befehl aus, um die Datei “routes.php” zwischenzuspeichern:

php artisan route:cache

Beachten Sie, dass es nicht mit Schließungen funktioniert. Falls Sie Closures verwenden, ist dies eine großartige Gelegenheit, sie in einen Controller zu verschieben, da der Befehl artisan eine Ausnahme auslöst, wenn Sie versuchen, Routen zu kompilieren, die an Closures gebunden sind, anstatt an die richtigen Controller-Methoden. Genau wie beim Config-Cache haben Änderungen an der routes.php keine Auswirkungen mehr. Um den Cache zu aktualisieren, führen Sie den obigen Befehl jedes Mal aus, wenn Sie eine Änderung an der Routendatei vornehmen. Führen Sie den folgenden Befehl aus, um den Routen-Cache vollständig zu löschen:

php artisan route:clear

Classmap-Optimierung

Es ist nicht ungewöhnlich, dass ein mittelgroßes Projekt auf Hunderte von PHP-Dateien verteilt ist. Wie es uns gutes Programmierverhalten vorschreibt, hat alles seine eigene Datei. Das geht natürlich nicht ohne Nachteile. Laravel muss für jede Anfrage Dutzende verschiedener Dateien einbinden, was eine kostspielige Sache ist.

Eine gute Optimierungsmethode ist daher, für jede Anfrage zu deklarieren, welche Dateien verwendet werden (das sind beispielsweise alle Ihre Dienstanbieter, Middlewares und einige mehr) und sie in nur einer Datei zusammenzufassen, die anschließend für jede Anfrage geladen wird. Dies unterscheidet sich nicht vom Kombinieren aller Ihrer Javascript-Dateien zu einer, sodass der Browser weniger Anfragen an den Server stellen muss.

Die zusätzlichen Kompilierdateien (wiederum: Dienstanbieter, Middleware usw.) sollten von Ihnen in der Datei config/compile.php im Schlüssel files deklariert werden. Sobald Sie alles Wesentliche für jede Anfrage an Ihre App dort abgelegt haben, verketten Sie sie in einer Datei mit:

php artisan optimize --force

Optimierung des Composer-Autoloads

Dieser ist nicht nur für Laravel, sondern für jede Anwendung, die Composer verwendet.

Ich werde zuerst erklären, wie das automatische Laden von PSR-4 funktioniert, und dann zeige ich Ihnen, welchen Befehl Sie ausführen sollten, um es zu optimieren. Wenn Sie nicht wissen möchten, wie Composer funktioniert, empfehle ich Ihnen, direkt zum Konsolenbefehl zu springen.

Wenn Sie den Komponisten nach dem fragen App\Controllers\AuthController Klasse sucht es zunächst nach einer direkten Assoziation in der Klassenzuordnung. Die Klassenzuordnung ist ein Array mit 1-zu-1-Zuordnungen von Klassen und Dateien. Da Sie die Login-Klasse und die zugehörige Datei natürlich nicht manuell zur Klassenzuordnung hinzugefügt haben, fährt Composer fort und sucht in den Namespaces. Da App ein PSR-4-Namespace ist, der standardmäßig mit Laravel geliefert wird und mit dem verknüpft ist app/ -Ordner versucht Composer, den PSR-4-Klassennamen mit grundlegenden Zeichenfolgenbearbeitungsverfahren in einen Dateinamen umzuwandeln. Am Ende ahnt es das App\Controllers\AuthController muss sich in einer AuthController.php-Datei befinden, die sich in einem befindet Controllers/ Ordner, der sich glücklicherweise im Namespace-Ordner befinden sollte, nämlich app/.

All diese harte Arbeit, nur um das zu bekommen App\Controllers\AuthController Klasse besteht in der app/Controllers/AuthController.php Datei. Führen Sie den folgenden Befehl aus, damit Composer Ihre gesamte Anwendung scannt und direkte 1-zu-1-Zuordnungen von Klassen und Dateien erstellt:

composer dumpautoload -o

Denken Sie daran, dass Sie, wenn Sie bereits php artisan optimize –force ausgeführt haben, dieses nicht mehr ausführen müssen. Da der Optimize-Befehl Composer bereits anweist, ein optimiertes Autoload zu erstellen.

1646180652 498 Laravel 5 – Cache im Shared Hosting Server loschen
Afraz Ahmad

Dieses Paket ist für PHP ^7.0 und ^laravel5.5.

Verwenden Sie dieses Paket in Cron-Job die ich nur zu diesem Zweck erstellt habe. Ich stand auch vor der gleichen Situation.
https://packagist.org/packages/afrazahmad/clear-cached-data
Installieren Sie es und führen Sie es aus:

php artisan clear:data

und es werden die folgenden Befehle automatisch ausgeführt

php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan clear-compiled
php artisan config:cache

Ich hoffe es hilft.

Wenn Sie es automatisch zu einer bestimmten Zeit ausführen möchten, müssen Sie zuerst Cronjob einrichten. z.B

 in app/console/kernel.php

In Zeitplanfunktion:

$schedule->command('clear:data')->dailyAt('07:00');

1646180652 924 Laravel 5 – Cache im Shared Hosting Server loschen
Laurenz

Grundsätzlich möchte ich den Views-Cache löschen.

Dafür gibt es jetzt einen Befehl in Laravel 5.1

php artisan view:clear

1646180652 639 Laravel 5 – Cache im Shared Hosting Server loschen
Christian Gupponi

Sie können sich per FTP verbinden und löschen storage\framework\views Ordner für laravel 5 oder app\storage\views zum laravel 4.

906420cookie-checkLaravel 5 – Cache im Shared-Hosting-Server löschen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy