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.
これは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の再起動
以上です。問題は解決しました!
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;
に存在しますおそらく、後者が問題である可能性があります。