Moją praktyką związaną z tworzeniem nowej witryny Drupal na serwerze jest posiadanie użytkownika, który jest częścią grupy serwerów WWW (zazwyczaj Apache) i posiadanie przez niego wszystkich plików Drupal. W systemie Ubuntu są to polecenia umożliwiające skonfigurowanie:
# 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
Kiedy już skonfiguruję, zaloguję się jako ten użytkownik i zainstaluję Drupal na / var / www / example / docroot lub podobnym, a następnie ręcznie utworzę katalog plików i skopiuję plik settings.php. Ponieważ logujemy się jako nasz przykładowy użytkownik przed kopiowaniem w Drupal, nasza własność i uprawnienia do plików powinny być automatycznie skonfigurowane we wszystkich podstawowych plikach i skryptach Drupal (w tym .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
Teraz skonfigurujmy katalog plików.
# 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
Następnie skonfigurujemy uprawnienia, aby serwer sieciowy zawsze mógł zapisywać do dowolnego pliku znajdującego się w tym katalogu. Robimy to za pomocą 2775 w naszym poleceniu chmod. 2 oznacza, że identyfikator grupy zostanie zachowany dla wszystkich nowych plików utworzonych w tym katalogu. Oznacza to, że www - data zawsze będzie grupą na dowolnych plikach, zapewniając w ten sposób, że serwer WWW i użytkownik zawsze będą mieć uprawnienia do zapisu do wszystkich nowych plików umieszczonych w tym katalogu. Pierwsze 7 oznacza, że właściciel (przykład) może R (odczyt) W (zapis) i X (wykonać) dowolne pliki tutaj. Druga 7 oznacza, że grupa (www-data) może również RW i X dowolne pliki w tym katalogu. Wreszcie 5 oznacza, że inni użytkownicy mogą R i X plików, ale nie mogą pisać.
chmod 2775 sites/default/files
Jeśli w tym katalogu są jakieś pliki, upewnij się, że serwer WWW ma na nich uprawnienia do zapisu.
chmod g+w -R sites/default/files
Teraz Drupal jest gotowy do instalacji. Po zakończeniu BARDZO ważne jest, aby wrócić do settings.php i upewnić się, że wszyscy użytkownicy mają tylko uprawnienia do odczytu.
chmod 444 sites/default/settings.php
Otóż to! Ta konfiguracja pozwala uniknąć sytuacji, w których użytkownik będący właścicielem katalogu lub serwer WWW nie może zapisywać / zmieniać / usuwać plików w katalogu plików.