У меня есть форма, которая загружает фотографию. Первоначально я получил ошибку, потому что symfony не смог создать директиву, поэтому я создал их вручную.
Теперь я получаю эту ошибку:
Unable to write in the "/home/crixi/projects/symfony/src/Acme/TestBundle/Entity/../../../../web/uploads/picture" directory
Я использую ubuntu.
Есть ли какие-то настройки, которые я должен был бы назначить symfony, чтобы писать в этой папке?
Если вы используете Ubuntu, то ваш веб-пользователь будет www-data
, а не apache
. Поэтому, если вы изменили разрешения apache, это не сработало. Вы можете сделать это правильно, выполнив следующие действия:
sudo chgrp -R www-data/home/crixi/projects/symfony/web/uploads
sudo chmod -R g+rwx/home/crixi/projects/symfony/web/uploads
Это позволит веб-пользователю (www-data
) предоставить надлежащие разрешения для записи в ваш каталог и подгружаемые файлы. Это лучше, чем давать каждому разрешение на запись, потому что всегда хорошо делать что-то прямо в dev env, поэтому у вас нет проблем при подключении.
ИЛИ, как предлагает @Wrikken, просто используйте chown
так:
sudo chown -R www-data/home/crixi/projects/symfony/web/uploads
Это зависит от того, как вы хотите управлять своими разрешениями.
chown
каталог для пользователя веб - сервера, илиchgrp
его в группе и дать групповые права на чтение / запись / листинг на этой директории (g+rwx
).root