Недавно я переместил веб-сайт Symfony 1.3.2 (веб-фреймворк PHP) с компьютера Windows на Linux (Ubuntu 9.10).
С тех пор у меня были всевозможные проблемы, связанные с правами доступа к файлам (хотя приложение работало без этих проблем в Windows).
Я запускаю symfony fix-perms, который применяет маску 777 к веб-каталогу (предположительно, включая его подпапки) - (в стороне) я думаю, что это потенциальная дыра в безопасности ... Я хотел зайти сюда, чтобы спросить как правильно выставить разрешения.
В настоящее время при попытке сохранить файл с моего веб-сайта я получаю следующую ошибку:
Предупреждение PHP: imagejpeg () [0function.imagejpeg0]: невозможно открыть '/home/morpheous/work/webdev/frameworks/symfony/sites/project1/web/uploads/../images/thumbnail/959cd604cf6115014a3703beapg520a50 для записи : В доступе отказано в / home / morpheous / work / webdev / frameworks / symfony / sites / project1 / apps / frontend / lib
Вот разрешения для папок:
web
drwxr-xr-x 16 morpheous morpheous 4096 2010-02-24 21:01 web
web/uploads/../images
drwxr-xr-x 13 morpheous morpheous 12288 2010-04-09 15:25 images
web/uploads/../images/thumbnail
drwxr-xr-x 3 morpheous morpheous 4096 2010-02-24 20:44 thumbnail
Может ли кто-нибудь любезно сказать мне, как установить разрешения, чтобы мой веб-сайт (предположительно работающий как демон Apache) мог записывать файлы в каталог, указанный выше?
Прежде всего, файлы, к которым веб-сервер должен получить доступ для чтения или записи, обычно должны принадлежать пользователю и группе, на которой веб-сервер работает как (apache:apache
или nobody:nobody
, не уверен в точных значениях в Ubuntu).
Оттуда пользователь должен иметь r
по файлам и rx
в каталогах, за исключением случаев, когда требуются разрешения на запись. Группа обычно должна соответствовать разрешениям пользователя. Все остальные должны иметь доступ только для чтения. Это означает 0444
или 0664
для файлов и 0555
или 0775
для справочников.
Конечно, у вас могут быть причины для нарушения этой схемы в определенных местах, но это базовые значения, которые у вас должны быть.
Для ubuntu пользователем apache и PHP являются www-data.
Бегать sudo chown www-data:www-data web/uploads/ -R
и посмотрите, решит ли это вашу проблему.
Также не используйте 777 для прав доступа к файлам, поскольку Игнасио Васкес-Абрамс заявил: «0444 или 0664 для файлов и 0555 или 0775 для каталогов».