これらの許可が正しいかどうかを知る必要があります:
site --> 775
site/default -->775
site/default/files --> 775
site/default/setting.php --> 555
これらの許可が正しいかどうかを知る必要があります:
site --> 775
site/default -->775
site/default/files --> 775
site/default/setting.php --> 555
回答:
実際には、権限は
sites -> 755
sites/default -> 755
sites/default/files -> 775
sites/default/settings.php -> 444
詳細については、この質問の上位3つの回答をご覧ください。
以下からのDrupalの公式ハンドブック:
これをファイルにコピーして、「fix-permissions.sh」という名前を付けます。
#!/bin/bash
if [ $(id -u) != 0 ]; then
printf "This script must be run as root.\n"
exit 1
fi
drupal_path=${1%/}
drupal_user=${2}
httpd_group="${3:-www-data}"
# Help menu
print_help() {
cat <<-HELP
This script is used to fix permissions of a Drupal installation
you need to provide the following arguments:
1) Path to your Drupal installation.
2) Username of the user that you want to give files/directories ownership.
3) HTTPD group name (defaults to www-data for Apache).
Usage: (sudo) bash ${0##*/} --drupal_path=PATH --drupal_user=USER --httpd_group=GROUP
Example: (sudo) bash ${0##*/} --drupal_path=/usr/local/apache2/htdocs --drupal_user=john --httpd_group=www-data
HELP
exit 0
}
# Parse Command Line Arguments
while [ $# -gt 0 ]; do
case "$1" in
--drupal_path=*)
drupal_path="${1#*=}"
;;
--drupal_user=*)
drupal_user="${1#*=}"
;;
--httpd_group=*)
httpd_group="${1#*=}"
;;
--help) print_help;;
*)
printf "Invalid argument, run --help for valid arguments.\n";
exit 1
esac
shift
done
if [ -z "${drupal_path}" ] || [ ! -d "${drupal_path}/sites" ] || [ ! -f "${drupal_path}/core/modules/system/system.module" ] && [ ! -f "${drupal_path}/modules/system/system.module" ]; then
printf "Please provide a valid Drupal path.\n"
print_help
exit 1
fi
if [ -z "${drupal_user}" ] || [ $(id -un ${drupal_user} 2> /dev/null) != "${drupal_user}" ]; then
printf "Please provide a valid user.\n"
print_help
exit 1
fi
cd $drupal_path
printf "Changing ownership of all contents of "${drupal_path}":\n user => "${drupal_user}" \t group => "${httpd_group}"\n"
chown -R ${drupal_user}:${httpd_group} .
printf "Changing permissions of all directories inside "${drupal_path}" to "rwxr-x---"...\n"
find . -type d -exec chmod u=rwx,g=rx,o= '{}' \;
printf "Changing permissions of all files inside "${drupal_path}" to "rw-r-----"...\n"
find . -type f -exec chmod u=rw,g=r,o= '{}' \;
printf "Changing permissions of "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"
cd sites
find . -type d -name files -exec chmod ug=rwx,o= '{}' \;
printf "Changing permissions of all files inside all "files" directories in "${drupal_path}/sites" to "rw-rw----"...\n"
printf "Changing permissions of all directories inside all "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"
for x in ./*/files; do
find ${x} -type d -exec chmod ug=rwx,o= '{}' \;
find ${x} -type f -exec chmod ug=rw,o= '{}' \;
done
echo "Done settings proper permissions on files and directories"
このスクリプトを次のように実行します:sudo bash fix-permissions.sh --drupal_path = your / drupal / path --drupal_user = your_user_name
ビオラ!アクセス許可は自動的に修正されます。
これが、Drupalインスタンスに権限を設定することを決定した方法です。
mkdir sites/default/files
chgrp -Rv apache sites/default/files
chmod 2775 sites/default/files
これを行うには、chmodコマンドで2775を使用します。2は、このディレクトリで作成された新しいファイルのグループIDが保持されることを意味します。つまり、Apacheは常にすべてのファイルのグループになるため、Webサーバーとユーザーの両方が、このディレクトリに配置されたすべての新しいファイルに対して常に書き込み権限を持つようになります。最初の7は、所有者(例)がR(読み取り)W(書き込み)およびX(実行)をここにあるすべてのファイルにできることを意味します。2番目の7は、グループ(www-data)もこのディレクトリ内の任意のファイルをRWおよびXできることを意味します。最後に、5は、他のユーザーがRおよびXファイルを作成できるが書き込みはできないことを意味します。
もう1つのポイントは、settings.phpに正しい権限を設定することです
chmod 444 sites/default/settings.php
その他の権限はデフォルトです。
完全なDrupalインストールガイド:http : //itvictories.com/node/21
選択された答えは正確ではありません。特に不明点が少ない場合は特にそうですが、Aleksはそれをかなり広範囲に説明しており、私がDrupalサイトで採用しているアプローチと非常によく似ています。
また、自分のスクリプトもここで共有したいと思いましたが、少し前に作成したDrupalモジュールとして使用しました。それを~/.drush
サブディレクトリに配置し、drush file-permissions
Drupalサイトの作業中のサブディレクトリで実行することができます。
Drupalサイトをブートストラップし、をチェックしてfile_private_path
、file_public_path
Apacheユーザーとグループを修正するように設定します。Apacheのユーザー/グループは自動的に決定されるため、ユーザーが手動で指定したり、スクリプトファイルにハードコードしたりする必要はありません。
モジュールページ:https : //www.drupal.org/project/file_permissions
他の人が述べたように正しい許可は
すべてのDrectories-> 755
すべてのファイル-> 755
サイト/デフォルト-> 755(これは、このディレクトリのルールをオーバーライドします)
sites / default / files- > 775(このディレクトリとそのコンテンツのルールをオーバーライドします)
sites / default / settings。 php-> 444(これはこのファイルのルールを上書きします)
上記のルールを達成するための適切なコマンドは、Drupal Webサイトのルートにあります。
find . -type f | xargs chmod 644
find . -type d | xargs chmod 755
chmod 444 sites/default/settings.php
chmod 775 -R sites/default/files