web-dev-qa-db-fra.com

Impossible d'installer un thème

Je suis nouveau sur drupal et je suis confronté à un problème alors que tout thème que j'essaie d'installer échouera avec le message suivant:

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

Le dossier racine appartient à www-data:www-data et j'ai accordé 775 autorisations. J'ai également essayé de lui donner un accès complet au 777 mais sans succès. J'ai vérifié les journaux de nginx et de php mais aucune erreur ne s'affiche. Le site lui-même avec le thème standard fonctionne sans aucun problème.

Après avoir obtenu l'erreur, j'obtiens:

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
Fabrizio Mazzoni

Il s'agit d'un problème de configuration de nginx et discuté en profondeur sur cette page Pourtant, curieusement, aucune solution solide n'a pu être proposée. Un gars sur une autre page a proposé une solution . J'ai appliqué cette solution proposée et je peux le confirmer dans les travaux!

Pour appliquer la solution proposée, allez dans votre fichier nginx configuration sous

/etc/nginx/sites-available/ sous Ubuntu et ajoutez

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

juste au-dessus de

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

bloquer. L'emplacement importe! .. Redémarrez votre serveur:

Redémarrage du service Sudo Nginx

et c'est tout. Le problème résolu!

13
salihcenap

Puisque vous obtenez un 403, il semble que Drupal ne vous donne pas accès pour une raison quelconque. Je n'ai aucune expérience pratique avec cela, mais en regardant dans le autorize.php fichier j'ai trouvé ceci:

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');
}

Il semble que vous pourriez vous voir refuser l'accès si:

  • Vous n'avez pas administer software updates autorisation
  • allow_authorize_operations est défini sur false. Cela existerait dans votre settings.php fichier AS $settings['allow_authorize_operations'] = FALSE;

La meilleure supposition est que c'est ce dernier qui pourrait être votre problème.

0
googletorp