Meine Praxis beim Erstellen einer neuen Drupal-Site auf einem Server besteht darin, einen Benutzer zu haben, der Teil der Webserver-Gruppe (normalerweise Apache) ist und dem alle Drupal-Dateien gehören. Unter Ubuntu sind dies die Befehle, um dieses Setup zu erhalten:
# 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
Sobald ich das eingerichtet habe, melde ich mich als dieser Benutzer an und installiere Drupal unter / var / www / example / docroot oder ähnlichem. Dann erstelle ich das Dateiverzeichnis von Hand und kopiere die settings.php-Datei. Da wir uns vor dem Kopieren in Drupal als Beispielbenutzer anmelden, sollten unser Dateibesitz und unsere Berechtigungen für alle wichtigen Drupal-Dateien und -Skripten (einschließlich .htaccess-Dateien) automatisch ordnungsgemäß konfiguriert werden.
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
Nun richten wir das Dateiverzeichnis ein.
# 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
Als Nächstes richten wir Berechtigungen ein, damit der Webserver immer in jede Datei in diesem Verzeichnis schreiben kann. Wir tun dies, indem wir 2775 in unserem Befehl chmod verwenden. Die 2 bedeutet, dass die Gruppen-ID für alle in diesem Verzeichnis erstellten neuen Dateien erhalten bleibt. Das bedeutet, dass www - data immer die Gruppe für alle Dateien ist, wodurch sichergestellt wird, dass sowohl der Webserver als auch der Benutzer immer Schreibberechtigungen für alle neuen Dateien haben, die in diesem Verzeichnis abgelegt werden. Die erste 7 bedeutet, dass der Eigentümer (Beispiel) beliebige Dateien hier in R (Lesen) W (Schreiben) und X (Ausführen) kann. Die zweite 7 bedeutet, dass die Gruppe (www-data) auch beliebige Dateien in diesem Verzeichnis rw und x kann. Schließlich bedeutet die 5, dass andere Benutzer R- und X-Dateien können, aber nicht schreiben.
chmod 2775 sites/default/files
Wenn in diesem Verzeichnis Dateien vorhanden sind, vergewissern Sie sich, dass der Webserver über Schreibrechte verfügt.
chmod g+w -R sites/default/files
Jetzt kann Drupal installiert werden. Wenn Sie fertig sind, ist es SEHR wichtig, zu settings.php zurückzukehren und sicherzustellen, dass alle Benutzer nur Leseberechtigungen haben.
chmod 444 sites/default/settings.php
Das ist es! Diese Einstellung stellt sicher, dass Sie Situationen vermeiden, in denen entweder der Benutzer, dem das Verzeichnis gehört, oder der Webserver keine Dateien im Dateiverzeichnis schreiben / ändern / entfernen können.