Praktik saya dalam membuat situs Drupal baru di server adalah memiliki pengguna yang merupakan bagian dari grup server web (biasanya Apache), dan memiliki pengguna itu yang memiliki semua file Drupal. Di Ubuntu, ini adalah perintah untuk mengaturnya:
# 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
Setelah saya mengaturnya, saya akan masuk sebagai pengguna itu dan menginstal Drupal di / var / www / example / docroot atau sejenisnya, dan kemudian membuat direktori file dengan tangan dan menyalin ke file settings.php. Karena kami masuk sebagai contoh pengguna sebelum menyalin di Drupal, kepemilikan dan izin file kami harus secara otomatis dikonfigurasi dengan benar pada semua file dan skrip Drupal inti (termasuk 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
Sekarang mari kita mengatur direktori 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
Selanjutnya kita akan mengatur izin agar server web selalu dapat menulis ke file apa pun yang ada di direktori ini. Kami melakukan ini dengan menggunakan 2775 dalam perintah chmod kami. Angka 2 berarti bahwa id grup akan disimpan untuk semua file baru yang dibuat dalam direktori ini. Artinya adalah bahwa www - data akan selalu menjadi grup pada file apa pun, sehingga memastikan bahwa server web dan pengguna akan selalu memiliki izin menulis untuk file baru apa pun yang ditempatkan di direktori ini. 7 yang pertama berarti bahwa pemilik (contoh) dapat R (Baca) W (Tulis) dan X (Jalankan) file apa pun di sini. 7 kedua berarti bahwa grup (www-data) juga dapat RW dan X file apa pun dalam direktori ini. Akhirnya, 5 berarti bahwa pengguna lain dapat file R dan X, tetapi tidak menulis.
chmod 2775 sites/default/files
Jika ada file yang ada di direktori ini, pastikan server web memiliki izin menulis pada mereka.
chmod g+w -R sites/default/files
Sekarang Drupal siap diinstal. Setelah selesai, SANGAT penting untuk kembali ke settings.php dan memastikan bahwa semua pengguna hanya memiliki izin baca.
chmod 444 sites/default/settings.php
Itu dia! Pengaturan ini memastikan Anda menghindari situasi apa pun di mana pengguna yang memiliki direktori atau server web tidak dapat menulis / mengubah / menghapus file di direktori file.