Грамотная настройка прав доступа к файлам и папкам
2 апреля 2013 в 21:23
Обновлял сайт на хостинге "Джинс" до версии 7.21 и напоролся на целую череду проблем:
При обновлении модулей:
Обновление модулей и тем требует FTP доступа на ваш сервер
Updating modules and themes requires FTP access to your server
Updating modules and themes requires FTP access to your server
При включении агрегации css/js:
Тех. поддержка была немногословной: https://www.jino.ru/support/faq/ftp/
Сверился с настройками прав на другом сайте (размещенном на ит-патрол), вроде все совпадает, но там все работает без ошибок.
Гугл говорит, что проблема с агрегацией решается установкой 777 на папку default/files. Но мнения о том, на сколько это безопасно - противоречивы.
Товарищи, подскажите, пожалуйста, правильные file permissions.
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Обычно папки 755, файлы 644
Алексей, спасибо за отклик! Именно такие и стоят, за исключением settings.php, для которого 444. Но обе проблемы остались
Дело в том что да некоторые хосты говорят ставьте 777 , но я бы казал им - сделайте чтобы работало на 755
а в install.txt написано :
"mkdir sites/default/files
chmod a+w sites/default/files"
На заборе тоже много чего написано ...
если не хотите следовать официальной документации ,то
вот здесь всё о правах грамотно расписано
У меня проблем нет
Все верно, проблемы у меня
drupby, спасибо за презентацию, очень интересно и весело, хотя вроде как и не до смеха. Вроде гуглил не один час, а на такую классную презентацию так и не наткнулся.
Попробовал установить на sites/default/files права 777 (а потом еще на всякий случай на sites/default/files/css и sites/default/files/js) - не помогло.
Заметил что не было временной папки. Указал в настройках admin/config/media/file-system путь /tmp. В корне появилась папка с правами 775. Опять попробовал вариант с 777 для files - все равно при включении агрегации вылетают ошибки записи файлов.
Очень смущает надпись "Обновление модулей и тем требует FTP доступа на ваш сервер." на странице /admin/modules/update. Может все из-за этого?
а я бы свалил от этого хостера - больше времени и нервов потратите на настройку , тем более совершенно не разбираетесь в администрировании
грамотная настройка описана тут:
https://drupal.org/node/244924
https://drupal.org/documentation/install/settings-file
Очень не плохой скрипт был дан в комментарии... https://www.drupal.org/node/244924#comment-6600078
Изменил и доработал его под себя:
echo "Начинаю изменение прав..."
echo "Устанавливаю владельца www-data для всех папок и файлов"
chown -R www-data:www-data './'
echo "Выставляю права 755 для всех папок"
find './' -type d -exec chmod 755 {} \;
echo "Выставляю права 644 для всех файлов"
find './' -type f -exec chmod 644 {} \;
echo "Выставляю права 440 для .htaccess"
chmod 440 './.htaccess'
echo "Выставляю права 775 для tmp"
chmod 775 './tmp'
echo "Выставляю права 440 для tmp/.htaccess"
chmod 440 './tmp/.htaccess'
echo "Выставляю права 775 для sites"
chmod 775 './sites'
echo "Выставляю права 775 для sites/default"
chmod 755 './sites/default'
echo "Выставляю права 775 для sites/default/files"
chmod 775 './sites/default/files'
echo "Корректирую права g+w для поддеррикторий sites/default/files"
chmod g+w -R './sites/default/files'
echo "Выставляю права 440 для sites/default/files/.htaccess"
chmod 440 './sites/default/files/.htaccess'
echo "Выставляю права 440 для sites/default/settings.php"
chmod 440 './sites/default/settings.php'
echo "Выставляю права 440 для sites/default/default.settings.php"
chmod 440 './sites/default/default.settings.php'
echo "Выставляю права 775 для sites/all/themes"
chmod 755 -R './sites/all/themes'
echo "Выставляю права 775 для sites/all/modules"
chmod 755 -R './sites/all/modules'
echo "Выставляю права 775 для sites/all/libraries"
chmod 755 -R './sites/all/libraries'
echo "Изменение прав закончил! Убедись, что всё верно..."
1. Скопируйте код скрипта и сохраните под названием "permissions.sh". Соблюдайте кодировку UTF-8 (для нормального отображения кириллических символов в комментариях echo командной строки) и UNIX формат окончания строк (иначе получите /R в конце каждой строки):
2. Скопируйте файл permissions.sh в корень вашего сайта Drupal 7:
3. Перейдите в корень вашего сайта:
4. Выполните команду:
PS: Если у вас "чистый" Drupal, то некоторые папки, например libraries или files, ещё могут быть не созданы. Так же если вы используете папку tmp вашей ОС, то в вашем Drupal её не будет. В этом случае выведется ошибка, что файла или папки не существует - это нормально. Рекомендую пользоваться скриптом на финальных этапах разработки или при переносе на хостинг, когда вся структура файлов и папок уже создана.
PSS: Работа скрипта многократно проверена на Drupal 7 сайтах в ОС Debian 7 Wheezy.