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 • ‎Nederlands • ‎español • ‎français • ‎русский • ‎हिन्दी • ‎中文(台灣)‎

Après être entré dans la zone de Configuration Globale sur l'interface d'administration du site, et avoir cliqué sur le bouton Enregistrer ou Enregistrer et Fermer pour sauvegarder le choix actuel de configuration du site, le message d'erreur suivant apparaît : "Une erreur est survenue ! Impossible d'écrire dans le fichier configuration.php !" accompagné éventuellement de "JFTP::write: Mauvaise réponse" si vous travaillez en mode FTP activé.

Raison de cette erreur

Le script de mise à jour de la configuration dans Joomla! n'a pas pu modifier le contenu du fichier configuration.php pour refléter les modifications que vous avez apportées sur la page de Configuration Globale. Joomla! n'a pas pu soit écrire dans le fichier, soit le rendre inscriptible (c'est-à-dire en lecture/écriture). Depuis Joomla! 1.5.x, les tentatives de rendre configuration.php inscriptible se produisent avant la sauvegarde de la configuration, donc c'est plus souvent le deuxième cas qui se présente.

La raison la plus courante est que le fichier configuration.php appartient à un utilisateur logique différent de celui qui tente d'effectuer la modification. Si vous essayez de modifier la Configuration Globale avec FTP activé, ce sera généralement votre identifiant de connexion FTP ; avec FTP désactivé, ce sera l'identité d'un processus du serveur web (souvent nommé apache ou www-data).

(En général, vous pouvez vérifier la propriété des fichiers en vous connectant à votre site avec un programme FTP. Alternativement, vous pouvez utiliser eXtplorer - voir ci-dessous). Malheureusement, vous serez bloqué pour passer au mode approprié pour mettre à jour la Configuration Globale, car l'activation et la désactivation du mode FTP (et donc le changement de l'identité logique tentant de modifier la configuration) sont déterminées par les données de Configuration Globale contenues dans ce fichier.

Solutions suggérées

Ne rendez pas le fichier configuration.php inscriptible pour tous les utilisateurs. Le résultat est que vous ne pourrez mettre à jour la Configuration Globale qu'une seule fois. Après la sauvegarde initiale, Joomla! rendra ce fichier en lecture seule pour tous les utilisateurs et le problème se posera à nouveau.

Propriétaire

Modifiez la propriété du fichier configuration.php pour correspondre soit à votre identifiant de connexion FTP si vous utilisez le mode "FTP activé" pour le site, soit à l'identité du processus du serveur web si vous utilisez "FTP désactivé".

C'est quelque chose que vous ne pouvez pas faire dans Joomla. Si vous avez un contrôle total sur le serveur (par exemple, un serveur local ou un serveur virtuel), alors vous devriez être en mesure de le faire en utilisant 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

Installez le composant eXtplorer (disponible sur le Répertoire des Extensions Joomla! - Catégorie File Management) - s'il n'est pas déjà en place. Cela vous permettra de visualiser et de manipuler des fichiers à la fois en mode "fichier" (en utilisant l'identité de l'utilisateur du processus du serveur web) ou en mode "ftp" en utilisant l'identité de votre utilisateur de connexion FTP. Bien que vous ne puissiez probablement pas modifier la propriété du fichier avec cet outil, vous pouvez utiliser l'un des modes pour rendre configuration.php inscriptible pour tous les utilisateurs. Cela vous permettra de modifier la Configuration Globale une fois - ou plus si vous incluez un changement de mode FTP pour qu'il corresponde à la propriété de votre fichier configuration.php (mais voir la Note ci-dessous).

REMARQUE : Changer le mode FTP affectera la propriété appliquée aux fichiers téléchargés sur le site sous 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

Faites en sorte que votre serveur web exécute PHP en tant que CGI ou FastCGI. Cela garantit que le code PHP est exécuté en utilisant le même identifiant d'utilisateur que celui utilisé lors du téléchargement du code Joomla via FTP. Ainsi, il n'y a pas de conflit car l'identifiant du processus PHP modifiant le fichier configuration.php est le même que celui du propriétaire du fichier. Si vous ne savez pas comment configurer CGI ou FastCGI, contactez votre administrateur de serveur ou votre fournisseur d'hébergement pour obtenir 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 dans le dossier racine du site (à partir de configuration.php-dist) lors de l'installation du site et intègre les informations spécifiques au site fournies lors du processus d'installation. Les modifications apportées dans la zone de Configuration Globale de l'interface d'administration du site sont écrites dans configuration.php lorsque le bouton Enregistrer ou Enregistrer et Fermer est utilisé.
  • Chaque fois que Joomla! tente de mettre à jour le fichier configuration.php, il essaie d'abord de le rendre inscriptible, puis, après la mise à jour du fichier, de le rendre inscriptible (c'est-à-dire en lecture seule) par mesure 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! et avec le mode FTP désactivé seront généralement attribués à la propriété de l'utilisateur "fantôme" qui est utilisé pour exécuter les principaux processus du serveur web ainsi que vos scripts Joomla! (souvent nommé apache ou www-data).