Thực tiễn của tôi về việc tạo một trang web Drupal mới trên máy chủ là có một người dùng là một phần của nhóm máy chủ web (thường là Apache) và người dùng đó sở hữu tất cả các tệp Drupal. Trên Ubuntu, đây là các lệnh để thiết lập:
# 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
Khi tôi đã thiết lập xong, tôi sẽ đăng nhập với tư cách là người dùng đó và cài đặt Drupal tại / var / www / example / docroot hoặc tương tự, sau đó tạo thư mục tệp bằng tay và sao chép tệp cài đặt.php. Vì chúng tôi đăng nhập với tư cách là người dùng mẫu trước khi sao chép trong Drupal, quyền sở hữu và quyền của tệp của chúng tôi sẽ tự động được cấu hình đúng trên tất cả các tệp và tập lệnh Drupal cốt lõi (bao gồm các tệp .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
Bây giờ hãy thiết lập thư mục tập tin.
# 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
Tiếp theo, chúng tôi sẽ thiết lập quyền để máy chủ web luôn có thể ghi vào bất kỳ tệp nào trong thư mục này. Chúng tôi làm điều này bằng cách sử dụng 2775 trong lệnh chmod của chúng tôi. 2 có nghĩa là id nhóm sẽ được giữ nguyên cho bất kỳ tệp mới nào được tạo trong thư mục này. Điều đó có nghĩa là www - dữ liệu sẽ luôn là nhóm trên bất kỳ tệp nào, do đó đảm bảo rằng máy chủ web và người dùng sẽ luôn có quyền ghi vào bất kỳ tệp mới nào được đặt trong thư mục này. 7 đầu tiên có nghĩa là chủ sở hữu (ví dụ) có thể R (Đọc) W (Viết) và X (Thực thi) bất kỳ tệp nào ở đây. 7 thứ hai có nghĩa là nhóm (dữ liệu www) cũng có thể RW và X bất kỳ tệp nào trong thư mục này. Cuối cùng, 5 có nghĩa là những người dùng khác có thể tệp R và X, nhưng không thể ghi.
chmod 2775 sites/default/files
Nếu có bất kỳ tệp nào trong thư mục này, hãy chắc chắn rằng máy chủ web đã ghi perms vào chúng.
chmod g+w -R sites/default/files
Bây giờ Drupal đã sẵn sàng để được cài đặt. Khi kết thúc, điều rất quan trọng là quay lại cài đặt.php và đảm bảo rằng tất cả người dùng chỉ có quyền đọc.
chmod 444 sites/default/settings.php
Đó là nó! Việc thiết lập này đảm bảo bạn tránh mọi tình huống trong đó người dùng sở hữu thư mục hoặc máy chủ web không thể ghi / thay đổi / xóa tệp trong thư mục tệp.