2016-09-20 1 views
0

Je crée un petit site Web avec symfony. Tout fonctionne sur ma machine locale, je peux télécharger des éléments de portefeuille, etc., etc.Symfony3 Le chemin de téléchargement de fichier ne fonctionne pas en production

Sur ma goutte cependant (x64 Ubuntu 16.04.1, en cours d'exécution Nginx)

Je suivre le guide pour le téléchargement de fichiers à http://symfony.com/doc/current/controller/upload_file.html

Tout fonctionne localement, mais j'obtiens une erreur 500 sur mon droplet de production. J'ai vérifié mes journaux pour l'erreur, et il semble que, le chemin que je mets dans mes paramètres:

(portfolio_directory: '%kernel.root_dir%/../web/images/portfolio')

donne l'erreur suivante

[2016-09-20 12:36:33] request.CRITICAL: Uncaught PHP Exception Symfony\Component\HttpFoundation\File\Exception\FileException: "Unable to write in the "/var/www/wsly/www/app/../web/images/portfolio" directory" at /var/www/wsly/www/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/File/File.php line 113 {"exception":"[object] (Symfony\\Component\\HttpFoundation\\File\\Exception\\FileException(code: 0): Unable to write in the \"/var/www/wsly/www/app/../web/images/portfolio\" directory at /var/www/wsly/www/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/File/File.php:113)"}

Maintenant, les autorisations pour le dossier entier des images est mis à 777 (j'ai utilisé chmod -R 777 pour cela) donc je ne pense pas que le problème est en fait que la permission, mais plutôt que le chemin est incorrect? Pas sûr mais app /../ web n'est pas un chemin valide, il semble littéralement copier le chemin comme le répertoire racine est le répertoire de l'application? au lieu de monter d'un niveau avec le /../

Impossible de comprendre cela.

+0

'/var/www/wsly/www/app/../web/images/portfolio' semble tout à fait valide pour moi. Que se passe-t-il lorsque vous vous connectez via le terminal et que vous tapez «ls -l/var/www/wsly/www/app /../web/images/ portfolio»? –

+0

Votre serveur Web est-il exécuté en tant qu'utilisateur différent de l'installation de Symfony? Si c'est le cas, l'internaute a besoin d'un accès sur tout le chemin du fichier! –

+0

@BenHillier Je reçois une liste de toutes les images dans le dossier (il y en a toujours là de chez dev, puisque j'utilise git pour le maintenir et j'ai apparemment oublié de l'ajouter au gitignore). Tout fonctionne sur l'utilisateur root, si je ne me trompe pas. – wesvb

Répondre

0

J'ai eu le même problème et a passé plusieurs jours à expérimenter j'ai finalement fixé en utilisant ce format pour la destination

upload_destination: ../web/images/profiles