Моя практика створення нового сайту Drupal на сервері - це мати користувача, який є частиною групи веб-серверів (як правило, Apache), і мати цього користувача всі файли Drupal. У Ubuntu це команди, які потрібно налаштувати:
# Create a new example user, setting up /var/www/example as their home dir.
useradd -s /bin/bash -d /var/www/example -m example
# Now add that user to the Apache group. On Ubuntu/Debian this group is usually
# called www-data, on CentOS it's usually apache.
usermod -a -G www-data example
# Set up a password for this user.
passwd example
Після того, як я встановив це, я ввійду як цей користувач і встановлю Drupal за адресою / var / www / example / docroot або подібне, а потім створять каталог файлів вручну та скопіюйте файл settings.php. Оскільки ми входимо як наш приклад перед тим, як копіювати в Drupal, наші права власності на файли та дозволи повинні автоматично бути правильно налаштовані на всі основні файли та сценарії Drupal (включаючи файли .htaccess).
su - example
cd docroot
cp sites/default/default.settings.php sites/default/settings.php
# Temporarily give the web server write permissions to settings.php
chgrp www-data sites/default/settings.php
chmod g+w sites/default/settings.php
Тепер давайте налаштуємо каталог файлів.
# Create the directory.
mkdir sites/default/files
# Now set the group to the Apache group. -R means recursive, and -v means
# verbose mode.
chgrp -Rv www-data sites/default/files
Далі ми налаштуємо дозволи, щоб веб-сервер завжди міг записувати в будь-який файл, що знаходиться в цьому каталозі. Ми робимо це, використовуючи 2775 в нашій команді chmod. 2 означає, що ідентифікатор групи буде збережений для будь-яких нових файлів, створених у цьому каталозі. Це означає, що www - дані завжди будуть групою будь-яких файлів, забезпечуючи тим самим, що веб-сервер і користувач завжди матимуть дозволи на запис будь-яких нових файлів, розміщених у цьому каталозі. Перші 7 означають, що власник (приклад) може R (Read) W (Write) та X (Execute) будь-які файли тут. Друга 7 означає, що група (www-data) також може RW та X будь-які файли в цьому каталозі. Нарешті, 5 означає, що інші користувачі можуть R та X файли, але не писати.
chmod 2775 sites/default/files
Якщо в цьому каталозі є якісь наявні файли, переконайтеся, що веб-сервер має на них Perms для запису.
chmod g+w -R sites/default/files
Тепер Drupal готовий до встановлення. Закінчивши, ДУЖЕ важливо повернутися до settings.php і переконатися, що всі користувачі мають лише дозволи на читання.
chmod 444 sites/default/settings.php
Це воно! Цей параметр забезпечує уникнення будь-яких ситуацій, коли або користувач, який володіє каталогом, або веб-сервер не можуть записати / змінити / видалити файли в каталозі файлів.