Symfony 3.4 Apache Permission WebServer не может записать файл в папку, недоступную для записи

Я использую Symfony, используя Apache WebServer вместо встроенного веб-сервера, чтобы переключиться с среды разработки на рабочую среду, следуя этим официальным инструкциям: https://symfony.com/doc/current/setup/web_server_configuration.html

Когда я пытаюсь загрузить изображение в папку своего сайта, я получаю

Unable to write in the 
"/var/www/html/site/src/../public/front/cms/explanatory_rubric" directory

Когда я работал со встроенным сервером Symfony, используя порт 8000, он работал, и моя папка была доступна для записи. Я знаю, что это проблема с разрешениями Apache. Есть много вопросов по этому поводу, и я внимательно прочитал каждый из них, особенно этот, объясняющий передовой опыт в отношении прав доступа к файлам в Apache и этот, вот этот, этот и этот и т. д.

Когда я проверяю недоступную для записи папку владельца chmod, я получаю:

ls -l
total 4
drwxr-xr-x 3 root www-data 4096 Jun  1 11:38 explanatory_rubric

Я изменил владельца папки chmod с www-data на root, чтобы дать разрешение на запись.

Я также пытался дать разрешение через мой файл конфигурации Apache.

Это моя конфигурация Apache для SSL:

<IfModule mod_ssl.c>
<VirtualHost *:443>

    ServerName www.mysite.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    <Directory /var/www/html/site/public>
         AllowOverride All
         Order Allow,Deny
         Allow from All
    </Directory>


    <Directory /var/www/html/site/public/front/cms/explanatory_rubric>
        AllowOverride All
        Order Allow,Deny
        Allow from All
    </Directory>

person Al Ex    schedule 01.06.2018    source источник
comment
Привет, я считаю, что Apache всегда использует www-данные в качестве пользователя при посещении приложения через браузер, поэтому www-данные должны иметь доступ для записи в папку вашего приложения.   -  person Dexter0015    schedule 01.06.2018
comment
Итак, я должен объявить каталог в моей конфигурации Apache? Почему моя конфигурация на самом деле не работает, чтобы дать доступ для записи в папку? Спасибо за поддержку   -  person Al Ex    schedule 01.06.2018


Ответы (1)


Решено: я обновил chown от ubuntu до www-data и дал разрешение chmod на определенные папки: я также заметил, что в index.php из symfony/apache-pack пакет, мы можем найти umask(000), который может быть причиной моих проблем

Моя команда для ее решения была:

chown www-data:www-data -R /my/folder # with Apache2
chown apache:apache -R /my/folder # with Apache
chmod -R 777 /my/folder
person Al Ex    schedule 01.06.2018