10 réponses
45 vues
Problème d'Upload de fichier en Production
**Bonsoir les dev’s j’ai un soucis. **
En local j’arrive à upload des fichiers et les enregistrer dans mon dossier public/storage/photo mais en production l’image n’est pas sauvegardée.
Je suis sur Cpanel
if ($request->hasFile('photo')) {
$photoPath = $request->file('photo')->store('photos', 'public'); $depot->photo = basename($photoPath); $depot->save();}
Verifie les droits de ton dossier public et si il ne sont pas correct tu donnes lui donne le droit d'ecriture tu peux le faire depuis le terminal avec la commande chmod chmod -R 775 public/storage ou depuis l'interface. et verifie le lien symblolique du dossier storage si il est bon dans le cas contraire tu le supprime et il faut faire un php artisan storage:link depuis le terminal.
ma formule Cpanel ne dispose pas d'accès SSH et le site est déjà en production comment faire?
Sur Cpanel y'a un terminal, losrque tu te connectes a ton compt; dans la barre de recherche tape terminal (si la langue en francais), puis tu vas naviguer vers le dossier de ton projte de ton projet, tu veux dire que tu as upload avec les dependencies (vendor)
?
Tu n'as pas necessairement besoin de SSH. Fais une recherche sur le mot terminal depuis ton cpanel, je pense que tu devrais l'avoir. Au pire, pour les droits, tu peux passer par un logiciel FTP tel que FileZilla ou WinSCP et tu fais un clic droit sur le dossier en question pour attribuer les droits, mais après il te faut faire un PHP artisan storage:link. et n'oublie pas si le lien storage n'est pas bon tu le supprime avant de faire un php artisan storage:link. normalement la recherche globale sur le mot "terminal" dans le cpanel devrait etre Ok
Généralement ce que moi je fais
public_html
Uploader tes fichiers laravel a la racine de ton serveur. Normalement tu dois avoir cette architecture de fichiers.
.htaccess
à la racine de ton public_html
Maintenant tu dois créer un fichier <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L]</IfModule>
permet de rediriger tes requêtes dans ton dossier public de laravel
storage
contenu dans ton dossier public
supprime le dossier php artisan storage:link
via ton terminal. s'il n est pas activer contacte ton service client ils le font facilement
Maintenant tu peux lancer ta commande NB: si dans ton compte d'hébergement du gère plusieurs domaine dans un seul compte d'hébergement ta commande devrait normalement fonctionner now.
Donc a la place de
php artisan storage:link
tu tapeln -s chemin_de_storage chemin_de_public
c'est le meme cas ici https://laravel.cm/forum/hebergement-de-votre-site-laravel-en-...
Il faut Se connecter ou Créer un compte pour participer à cette conversation.