Impossible d'enregistrer les modifications de la configuration générale

From Joomla! Documentation

This page is a translated version of the page Cannot save Global Configuration changes and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎हिन्दी • ‎Nederlands • ‎русский

Après vous être connecté à l'espace de configuration en “backend” et avoir cliqué sur le bouton “Enregistrer” ou “Enregistrer & Fermer” pour sauvegarder votre choix de paramètres du site, le message d'erreur suivant s'affiche : “Une erreur s'est produite. Impossible d'enregistrer le fichier de configuration.php”, éventuellement accompagné du message : “JFTP::write: Mauvaise réponse”, si vous travaillez avec la couche FTP activée.

Raison de cette erreur

Le script de mise à jour de la configuration dans Joomla! n'a pas été en mesure de changer le contenu du fichier “configuration.php” afin de refléter toute modification que vous auriez faite sur la page de configuration. Joomla! n'a pas été en mesure d'écrire dans le fichier et/ou n'a pas pu rendre le fichier accessible en écriture (c'est à dire R/W). Depuis Joomla! 1.5.x, le fichier "configuration.php” est censé être accessible en écriture avant l'enregistrement de la configuration, ce qui est le cas la plupart du temps. La raison la plus commune est que le fichier “configuration.php” est détenu par un utilisateur différent de celui tentant de le modifier. Si vous essayez de modifier la configuration avec la couche FTP activée, l'utilisateur sera généralement l'ID de votre connexion FTP ; si la couche FTP est désactivée, ce sera l'identité du serveur web (souvent nommé “apache” ou “www-data” ou similaire). (Vous pouvez généralement vérifier le propriétaire d'un fichier en vous connectant à votre site via un logiciel FTP. Vous pouvez également utiliser eXtplorer - voir ci-dessous). Malheureusement, le changement au mode approprié va être verrouillé, ne permettant donc pas la mise à jour de la configuration, puisque l'activation et la désactivation de la couche FTP (et donc le changement de l'identité souhaitant modifier la configuration) est déterminée par les données de configuration contenue dans ce fichier.

Solutions suggérées

Ne rendez pas le fichier “configuration.php” accessible en écriture à tous les utilisateurs. Vous ne seriez alors en mesure d'appliquer la mise à jour de la configuration qu'une seule fois. Après l'enregistrement initial, Joomla! va remettre ce fichier en lecture seule pour tous les utilisateurs et le problème persistera.

Propriétaire

Changer le propriétaire du fichier “configuration.php” afin qu'il corresponde soit à l'ID de connexion FTP si la couche "FTP est activée" soit à l'identité du serveur web si la couche "FTP est désactivée".

Ce n'est pas quelque chose que vous pouvez faire dans Joomla. Si vous avez un contrôle total du serveur (par exemple, serveur local ou serveur virtuel), alors vous devriez être en mesure de le faire à l'aide d'un utilitaire approprié (tel que “chown” pour un serveur Linux).

Sur un serveur mutualisé, vous devriez contacter le support technique de votre organisation ou de votre hébergeur, leur expliquer le problème et leur demander de modifier le propriétaire du fichier de manière appropriée.

Utiliser une extension

Si ce n'est pas déjà fait, installez le composant eXtplorer (que vous trouverez sur le Joomla! Extensions Directory à la catégorie gestion de fichiers). Il vous permettra de visualiser et manipuler les fichiers, au mode “fichier” (utilisant l'identité du serveur web) ou au mode “ftp” utilisant vos éléments de connexion FTP. Bien que vous ne serez probablement pas en mesure de changer le propriétaire du fichier avec cet outil, vous pourrez utiliser un des modes pour rendre le fichier "configuration.php" accessible en écriture pour tous les utilisateurs. Cela vous permettra de modifier en une fois la configuration – ou plus si vous incluez un changement du mode FTP afin qu'il corresponde à la propriété de votre fichier "configuration.php" (attention - voir la remarque ci-après).
REMARQUE: modifier le mode FTP va affecter la propriété appliquée aux fichiers chargés sur le site selon le nouveau paramètre (par exemple, lors de l'installation d'extensions). Conseil sur la propriété de fichier par ianmac

Vérifier la propriété PHP

Votre serveur web doit pouvoir exécuter PHP avec CGI ou FastCGI. Cela garantit que le code PHP s'exécute en utilisant le même ID d'utilisateur que celui utilisé lors du chargement par FTP du code Joomla. Ainsi, il n'y aura pas de conflit puisque l'ID du processus PHP modifiant le fichier “configuration.php” est le même que le propriétaire du site. Si vous ne savez pas comment paramétrer CGI ou Fast CGI, contactez votre administrateur de serveur ou votre hébergeur pour des conseils.

Contexte

Ceci est une explication simplifiée, mais ce qui suit peut intéresser tout le monde et peut également aider les utilisateurs experts à formuler leur propre solution.

  • Le fichier “configuration.php” est généré automatiquement à la racine du site (à partir du “configuration.php-dist”) pendant l'installation du site et y sont intégrées les informations spécifiques au site indiquées lors du processus d'installation. Les modifications effectuées sur la page de configuration en “backend” sont écrites dans le ficher “configuration.php” lorsque vous cliquez sur le bouton “Enregistrer” ou “Enregistrer & Fermer”.
  • A chaque Fois que Joomla! tente de mettre à jour le fichier “configuration.php”, il tente d'abord de le rendre accessible en écriture, et suite à la mise à jour du fichier, il le ferme en écriture (le fichier est alors en lecture seule) pour des raisons de sécurité.
  • Les fichiers sur le serveur web d'hébergement de votre site Joomla! sont détenus par l'une des entités, selon la façon dont ils ont été placés ou créés sur le serveur. Généralement, les fichiers d'un site Joomla! sont détenus par l'une de ces deux identités d'utilisateur :
    1. Les fichiers que vous chargez par FTP ou installez par FTP, si la couche est activée, seront généralement attribués à l'utilisateur correspondant à votre ID de connexion FTP,
    2. Les fichiers installés depuis Joomla!, avec la couche FTP désactivée, seront généralement attribués à l'utilisateur “fantôme” qui est utilisé pour exécuter le processus du serveur web principal ainsi que vos scripts Joomla! (souvent dénommé “apache” ou “www-data” ou similaire).