Existe-t-il une bonne pratique pour inclure votre wp-config.php
fichier dans votre référentiel de contrôle de version?
J'envisage de créer un nouveau site avec ce type de configuration (similaire à Alex King et Mark Jaquith ):
/index.php
/local-config.php
/wp-config.php
/wp/ (core)
/wp-content/ (plugins, themes, etc.)
Comment puis-je faire cela sans exposer mes mots de passe à git, au cas où ce dépôt deviendrait public?
En particulier dans le message de Mark, il semble que le fichier local-config.php puisse stocker les informations de la base de données locale et les mots de passe, mais ceux de production restent dans le fichier wp-config.php. Est-ce trop de problèmes et devrais-je simplement laisser wp-config.php sans version?
wp-config
version-control
Jeaton
la source
la source
Réponses:
Voici comment je le fais et je n'ai rien trouvé de mieux que cela. Je garde une version différente du fichier wp-config.php sous contrôle de version, puis je garde un fichier dans le répertoire ci-dessus qui contient toutes les informations d'identification de la base de données et les sels / clés. De cette manière, je peux également faire la distinction entre le type d’installation que j’utilise et faire les choses différemment en fonction de cela.
Voici le
wp-config.php
je garde sousgit
( https://gist.github.com/1923821 ):Et voici le fichier de configuration local dans lequel je conserve un répertoire au-dessus de la racine WordPress, ce qui le rend également en dehors du répertoire accessible par le Web. Ainsi, si Apache cesse d’analyser les fichiers PHP et commence à les jeter, nos informations de connexion à la base de données sont toujours sûres ( https: / /gist.github.com/1923848 ):
Ainsi, si le fichier ci-dessus est nommé
local-config.php
, mon système se comporte comme une installation locale. Si son nom est nomméstaging-config.php
, il se comporte comme une installation intermédiaire et s’il est nomméproduction-config.php
. Cela m'aide à avoir différentes valeurs de certaines constantes, comme le débogage, différentes valeurs dans différents environnements et toujours sous SCM (git). Les possibilités sont infinies et aucun piratage n'est requis pour différents environnements.Cela garantit que vous ne divulguez jamais aucune information sensible au public de toute façon et que je l'utilise simplement pour démarrer tout projet sur lequel je travaille. J'ai des clés plus fortes en place par défaut et dès que je les ajoute au deuxième fichier de configuration dans le répertoire ci-dessus, ceux-ci sont utilisés à la place de ceux définis ici. Félicité!
la source
../
(../filename
quelque part)? - Je n'en ai trouvé aucun../
dans lewp-config.php
fichier principal .DB_CREDENTIALS_PATH
fait que.Si votre
wp-config.php
fichier est sous contrôle de version, tous les mots de passe qu'il contient le seront également . Le seul moyen d'éviter cela est de ne pas placer le fichier dans le contrôle de version.Mon intuition serait de ne pas
wp-config.php
parler entièrement. Mais il existe des moyens de contourner le problème.Extrayez la partie
wp-config.php
qui contient vos mots de passe et les hachages dans un fichier séparé etinclude()
le dans lewp-config.php
fichier normal . Ensuite, placez-lewp-config.php
sous contrôle de version, mais gardez votreinclude()
fichier séparé.wp-config.php
:Vous pouvez voir maintenant que les mots de passe et les hachages ne sont pas inclus du
wp-config.php
tout.conf.php
:Mais honnêtement, à ce stade, vous ajoutez simplement un niveau d'abstraction redondant. La raison principale
wp-config.php
est distincte en premier lieu car elle est spécifique à l'environnement. Vous ne devriez pas du tout le copier d'un serveur local en production ... donc il ne devrait pas du tout être sous contrôle de version.la source
wp-config.php
a un avantage supplémentaire: vous pouvez inclureconf.php
dans un script non-WP sans charger tout WordPress.L'exemple de Mark suppose que vous travaillez avec un dépôt privé:
Au lieu de définir les informations d'identification, vous pouvez tout aussi facilement créer un fichier production-config.php et l'inclure dans la vérification conditionnelle:
Puis dans votre version non-production-config.php:
la source
Vous pouvez valider le
wp-config.php
fichier dans le référentiel sans vos chaînes secrètes, puis exécuter:Cela indiquera à git de supposer que le fichier n’est pas modifié.
la source
assume-unchanged
commutateur, mais voici mes deux points: (1) Si vous ajoutez le fichier directement, il sera ajouté à l’index. Il existe donc un risque que vous puissiez l'ajouter accidentellement à un moment donné. (2) La fusion d'un commit avec cet indicateur activé entraînera l'échec de la fusion, ce qui vous permettra de le gérer manuellement, ce qui en fait une solution peu élégante. Il ne peut être utilisé que pour ignorer temporairement les modifications lorsqu’il s’agit d’une session de développement. Ici, lisez plus - gitready.com/intermediate/2009/02/18/…