0
votes

Déployez une application laravel sur un hébergement partagé et obtenez «Aucune clé de chiffrement d'application n'a été spécifiée». Erreur

J'essaie de déployer mon application laravel 5.7 sur un hébergement partagé, mais j'obtiens "Aucune clé de chiffrement d'application n'a été spécifiée.". J'exécute php artisan key: generate sur mon hôte local et après avoir redéployé l'application, mais cela n'a pas fonctionné.

Quel pourrait être le problème?


0 commentaires

3 Réponses :


1
votes

Si vous avez déjà exécuté php artisan key: generate , exécutez php artisan config: clear pour vider le cache de configuration.


2 commentaires

(Et assurez-vous que php artisan key: generate a fonctionné correctement - il devrait y avoir une entrée APP_KEY dans le fichier .env .


Quel hébergement utilisez-vous? S'il est basé sur git, pourrait-il ignorer .env ?



0
votes

J'exécute php artisan key: generate sur mon hôte local et après avoir redéployé l'application, mais cela n'a pas fonctionné.

.env n'est généralement pas (ni ne devrait jamais être) déployé dans le cadre du code source. Le .gitignore de Laravel empêche .env d'être archivé dans le contrôle de code source, car il peut contenir des informations très sensibles qui ne devraient pas, par exemple, être archivées dans Github.

Vous devez exécuter php artisan key: generate sur votre hébergement (ou y télécharger un fichier .env ). Vous devrez également remplir le fichier .env sur votre hébergement avec d'autres détails clés tels que les mots de passe de la base de données - tout ce que vous avez défini sur localhost devra être défini sur votre hébergement aussi.


4 commentaires

Oui, d'accord ... mais l'hébergement mutualisé a plusieurs limitations. La plupart, par exemple, ne fournissent pas un moyen d'utiliser cmd, il est donc hors de question d'exécuter des commandes artisanales.


@clesmalo C'est pourquoi (ou y télécharger un fichier .env) est dans ma réponse.


Oui, vous l'avez fait, cependant, télécharger le fichier lui-même n'est pas suffisant car (d'après ce que j'ai lu), vous auriez toujours besoin de vider le cache de configuration avec php artisan config: clear. Au cas où quelqu'un trouverait cela utile, vous pouvez exécuter des commandes artisanales via php. Par exemple, vous pouvez créer cette route et la visiter exécutera la commande config: clear: Route :: get ('/ artisan', function () {Artisan :: call ('config: clear'); return ' Le cache de configuration a été effacé! ';});


Vous n'avez besoin de vider le cache de configuration que si vous avez mis en cache la configuration. Si vous ne pouvez pas SSH dans l'hébergement partagé, vous n'avez probablement pas non plus mis en cache la configuration, car cela nécessite l'exécution d'une commande.



0
votes

Je suis confronté au même problème, mais j'ai trouvé une solution pendant de nombreuses recherches.
Je ne suis pas sûr que ce soit une bonne solution ou non car je ne suis pas développeur web, de toute façon mettre le code suivant dans nom-projet \ config \ app.php

‘key’ => env(‘APP_KEY’, ‘base64:insert key here’),

copier la clé du fichier .env


0 commentaires