我正在用 symfony 制作一个小型投资组合网站。一切都在我的本地机器上运行,我可以上传投资组合项目等。
然而,在我的 droplet 上(Ubuntu 16.04.1 x64,运行 Nginx)
所以我按照http://symfony.com/doc/current/controller/upload_file.html上传文件的指南
一切都在本地工作,但我的生产液滴出现 500 错误。我检查了日志中的错误,似乎是我在参数中设置的路径:
( portfolio_directory: '%kernel.root_dir%/../web/images/portfolio'
)
给出以下错误
[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)"}
现在整个图像文件夹的权限设置为 777(我为此使用了 chmod -R 777)所以我认为问题实际上不是权限,而是路径不正确?不确定但 app/../web 不是有效路径,它似乎从字面上复制路径,因为根目录是应用程序目录?而不是使用 /../ 提升一级
似乎无法弄清楚这一点。