web-dev-qa-db-ja.com

テーマをインストールできません

drupalを初めて使用し、問題に直面していますが、インストールしようとしたテーマは次のメッセージで失敗します。

Installing light_skeleton
An error has occurred.
Please continue to the error page

An AJAX HTTP error occurred.
HTTP Result Code: 403
Debugging information follows.
Path: /core/authorize.php/core/authorize.php?batch=1&id=4&op=do_nojs&op=do
StatusText: Forbidden
ResponseText: 
403 Forbidden
403 Forbidden
nginx/1.9.10

ルートフォルダーはwww-data:www-dataが所有しており、775の権限を付与しています。また、777でフルアクセスできるようにしましたが、成功しませんでした。 nginxとphpのログを確認しましたが、エラーは表示されません。標準テーマのサイト自体は問題なく動作します。

エラーが発生した後、次のようになります。

Notice: Undefined index: log in update_authorize_install_batch_finished() (line 291 of core/modules/update/update.authorize.inc).
Warning: Invalid argument supplied for foreach() in update_authorize_install_batch_finished() (line 291 of core/modules/update/update.authorize.inc).
Notice: Undefined index: log in update_authorize_install_batch_finished() (line 332 of core/modules/update/update.authorize.inc).
Notice: Undefined index: tasks in update_authorize_install_batch_finished() (line 333 of core/modules/update/update.authorize.inc).
Installation failed! See the log below for more information.
6

これはnginx構成の問題であり、 このページ で激しく議論されていますが、不思議なことに、解決策はありませんでした。他のページのある人が solution を提案しました。私はその提案された解決策を適用し、それが動作していることを確認できます!

提案されたソリューションを適用するには、nginx configuration ファイルに移動します

/ etc/nginx/sites-available /Ubuntuのディレクトリに追加して

rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1;

のすぐ上

location ~ \..*/.*\.php$ {
    return 403;
}

ブロック。場所は重要です!..サーバーを再起動します。

Sudoサービスnginxの再起動

以上です。問題は解決しました!

13
salihcenap

403を取得しているため、Drupalが何らかの理由でアクセスを許可していないようです。これについて実際的な経験はありませんが、autorize.phpファイルを確認します私はこれを見つけました:

function authorize_access_allowed(Request $request) {
  $account = \Drupal::service('authentication')->authenticate($request);
  if ($account) {
    \Drupal::currentUser()->setAccount($account);
  }
  return Settings::get('allow_authorize_operations', TRUE) && \Drupal::currentUser()->hasPermission('administer software updates');
}

次の場合、アクセスが拒否される可能性があります。

  • administer software updates権限がありません
  • allow_authorize_operationsはfalseに設定されています。これはsettings.phpファイルAS $settings['allow_authorize_operations'] = FALSE;に存在します

おそらく、後者が問題である可能性があります。

0
googletorp