web-dev-qa-db-fra.com

Hôte non approuvé "localhost" dans

De Drupal 8 beta 6 (sorti aujourd'hui), j'ai cette erreur:

Message d'erreur Exception inattendue de valeur: hôte non approuvé "localhost" dans Symfony\Component\HttpFoundation\Request-> getHost () (ligne 1221 de core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php).

J'utilise cette URL locale pour appeler mon site: http://theming.dev

Dans mon fichier de configuration, j'ai:

     $settings['trusted_Host_patterns'] = array(
        'theming\.dev$',
     );

Remarque, cette erreur s'affiche uniquement lorsque je décommente ces lignes:

 if (file_exists(__DIR__ . '/settings.local.php')) {
   include __DIR__ . '/settings.local.php';
 }

Quel est le problème s'il vous plait? Merci.

19
Axel Briche

Ce problème s'est produit pour moi lors de la construction d'un site de test 8.0.0-beta6 sur mon ordinateur portable Ubuntu 14.04. J'ai un serveur Web Apache fonctionnant localement, avec le site de test défini à l'aide d'une directive VirtualHost. J'ajoute le nom de domaine du site de test ("example.com") à mon /etc/hosts fichier, pointant vers 127.0.2.1, pour contourner la nécessité d'utiliser de vraies entrées DNS.

Après l'installation du site, tout allait bien. Cependant, j'ai remarqué un message d'avertissement sur la page Rapport d'état indiquant que trusted_Host_patterns set, donc je suis allé dans mon /sites/default/settings.php fichier et a ajouté ces lignes:

$settings['trusted_Host_patterns'] = array(
  '^example\.com$',
  '^www\.example\.com$',
);

Lors de l'enregistrement du fichier et du rechargement de mon navigateur, j'ai obtenu une page d'erreur très générique et, après avoir commenté les nouvelles lignes, j'ai remarqué le Untrusted Host "localhost"... message de journal.

Il semble que parce que je navigue sur le Web à partir du même ordinateur sur lequel le serveur Web fonctionne, l'hôte est à un moment donné converti en localhost, et ne parvient donc pas à correspondre à l'ensemble de modèles que j'avais spécifié. J'ai pu résoudre ce problème en modifiant ces lignes en:

$settings['trusted_Host_patterns'] = array(
  '^example\.com$',
  '^www\.example\.com$',
  '^localhost$',
);

Sur un site destiné à être mis en production, vous souhaiterez peut-être utiliser un settings.local.php fichier pour spécifier ^localhost$ en tant que modèle d'hôte valide à des fins de test uniquement. Notez que si vous souhaitez effectuer cette opération, vous devrez décommenter ces lignes dans la valeur par défaut settings.php, et déplacez-les au bas du settings.php fichier:

if (file_exists(__DIR__ . '/settings.local.php')) {
  include __DIR__ . '/settings.local.php';
}

Dans ce cas, le settings.php le fichier ne contiendrait que les noms de domaine réels:

$settings['trusted_Host_patterns'] = array(
  '^example\.com$',
  '^www\.example\.com$',
);

et settings.local.php contiendrait:

<?php
$settings['trusted_Host_patterns'][] = '^localhost$';

pour ajouter localhost à la liste des hôtes valides. Avec cette configuration, vous ne copieriez pas le settings.local.php fichier lors de la copie du site sur le serveur de production.

26
hampercm