1

drupal 7 ブースト モジュールを使用して html キャッシュを生成しています。私はロード バランサー サーバーを使用しており、html キャッシュ ファイルはノード 1、ノード 2、およびノー​​ド 3 にあります。このキャッシュ フォルダーに、所有者が「ルート」、グループが「ルート」の 775 権限がある場合、ユーザーがページにアクセスすると、 drupal ログの権限の問題The file permissions could not be set on cache/normal/IP_ADDRESS/PATH_TO_FILE/NAME_OF_THE_FILE.html(& キャッシュ ファイルが再生成されない)

このキャッシュ フォルダーに 775 権限があり、所有者がapache、グループがapacheである場合、ユーザーがページにアクセスするとき、権限の問題はありません。ただし、ユーザーがページにアクセスするたびにキャッシュが再生成されます。

この問題はサーバーの許可が原因で発生していますか? またはdrupalブースト構成が原因です。

以下は、.htaccess ブースト設定です。

### BOOST START ###

# Allow for alt paths to be set via htaccess rules; allows for cached variants (future mobile support)
RewriteRule .* - [E=boostpath:normal]

# Caching for anonymous users
# Skip boost IF not get request OR uri has wrong dir OR cookie is set OR request came from this server OR https request
RewriteCond %{REQUEST_METHOD} !^(GET|HEAD)$ [OR]
RewriteCond %{REQUEST_URI} (^/vc/vacanze-in-montagna/(admin|cache|misc|modules|sites|system|openid|themes|node/add|comment/reply))|(/(edit|user|user/(login|password|    register))$) [OR]
RewriteCond %{HTTPS} on [OR]
RewriteCond %{HTTP_COOKIE} DRUPAL_UID [OR]
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [S=3]

# GZIP
RewriteCond %{HTTP:Accept-encoding} !gzip
RewriteRule .* - [S=1]
RewriteCond %{DOCUMENT_ROOT}/vc/vacanze-in-montagna/cache/%{ENV:boostpath}/LOAD_BALANCER_IP%{REQUEST_URI}_%{QUERY_STRING}\.html\.gz -s
RewriteRule .* cache/%{ENV:boostpath}/LOAD_BALANCER_IP%{REQUEST_URI}_%{QUERY_STRING}\.html\.gz [L,T=text/html,E=no-gzip:1]

# NORMAL
RewriteCond %{DOCUMENT_ROOT}/vc/vacanze-in-montagna/cache/%{ENV:boostpath}/LOAD_BALANCER_IP%{REQUEST_URI}_%{QUERY_STRING}\.html -s
RewriteRule .* cache/%{ENV:boostpath}/LOAD_BALANCER_IP%{REQUEST_URI}_%{QUERY_STRING}\.html [L,T=text/html]

### BOOST END ###
4

1 に答える 1

0

多くの情報を残していないため、いくつかの推測を以下に示します。

  1. Web サーバーのユーザーが「apache」と呼ばれていないか、グループが間違っていますか?
  2. mod_rewrite を有効にするのを忘れましたか? または、.htaccess の AllowOverride を許可するのを忘れましたか?
  3. .htaccess ファイルをめちゃくちゃにして、ブースト設定を間違った場所に貼り付けましたか? (私も一度ありました…)
  4. どういうわけか /var/www/mysite/SUBPATH/ のようなサブパスに drupal をインストールしましたが、URL を「mysite」パスに向けましたか? (それは書き換えルールを台無しにする可能性があると思います)
  5. そのディレクトリを「apache」ユーザーとして追加しようとしましたか? のように: runuser -l apache -c 'mkdir /your/drupal/dir/newdir'? ->それが機能しない場合は、許可の問題であることがわかります。
  6. アイデアが尽きた……。
于 2014-04-15T17:51:43.687 に答える