La mia pratica sulla creazione di un nuovo sito Drupal su un server è quella di avere un utente che fa parte del gruppo server Web (in genere Apache) e che quell'utente possieda tutti i file Drupal. Su Ubuntu, questi sono i comandi per ottenere quella configurazione:
# 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
Dopo averlo configurato, accederò come tale utente e installerò Drupal su / var / www / example / docroot o simili, quindi creerò manualmente la directory dei file e copierò il file settings.php. Poiché eseguiamo l'accesso come nostro utente di esempio prima di copiare in Drupal, la proprietà e le autorizzazioni dei nostri file dovrebbero essere automaticamente configurate correttamente su tutti i file e script Drupal principali (inclusi i file .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
Ora impostiamo la directory dei file.
# 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
Successivamente imposteremo le autorizzazioni in modo che il server Web possa sempre scrivere su qualsiasi file che si trova in questa directory. Lo facciamo usando 2775 nel nostro comando chmod. Il 2 significa che l'id del gruppo verrà conservato per tutti i nuovi file creati in questa directory. Ciò significa che i dati www saranno sempre il gruppo su tutti i file, garantendo in tal modo che il server Web e l'utente disporranno sempre delle autorizzazioni di scrittura per tutti i nuovi file inseriti in questa directory. Il primo 7 indica che il proprietario (esempio) può R (Leggi) W (Scrivere) e X (Esegui) tutti i file qui. Il secondo 7 indica che il gruppo (dati www) può anche RW e X qualsiasi file in questa directory. Infine, il 5 indica che altri utenti possono file R e X, ma non scrivere.
chmod 2775 sites/default/files
Se ci sono file esistenti in questa directory, assicurarsi che il server Web abbia dei permessi di scrittura su di essi.
chmod g+w -R sites/default/files
Ora Drupal è pronto per essere installato. Al termine, è MOLTO importante tornare a settings.php e assicurarsi che tutti gli utenti dispongano solo delle autorizzazioni di lettura.
chmod 444 sites/default/settings.php
Questo è tutto! Questa impostazione consente di evitare qualsiasi situazione in cui l'utente che possiede la directory o il server Web non è in grado di scrivere / modificare / rimuovere i file nella directory dei file.