Existe uma prática recomendada para incluir seu wp-config.php
arquivo no repositório de controle de versão?
Estou pensando em criar um novo site com esse tipo de configuração (semelhante a Alex King e Mark Jaquith ):
/index.php
/local-config.php
/wp-config.php
/wp/ (core)
/wp-content/ (plugins, themes, etc.)
Como posso fazer isso sem expor minhas senhas ao git, caso esse repositório se torne público?
Especialmente no post de Mark, parece que o local-config.php pode armazenar detalhes e senhas do banco de dados local, mas os de produção permanecem no wp-config.php. Isso é demais e devo deixar o wp-config.php sem versão?
wp-config
version-control
jjeaton
fonte
fonte
Respostas:
Aqui está como eu faço isso e não encontrei nada melhor que isso. Eu mantenho uma versão diferente do arquivo wp-config.php sob controle de versão e, em seguida, mantenho um arquivo em um diretório acima, que contém todas as credenciais do banco de dados e sais / chaves. Também dessa maneira, sou capaz de distinguir entre o tipo de instalação que estou executando e fazer as coisas de maneira diferente com base nisso.
Aqui está o que
wp-config.php
eu mantenho emgit
( https://gist.github.com/1923821 ):E aqui está o arquivo de configuração local, que eu mantenho um diretório acima da raiz do WordPress, e isso também o torna fora do diretório acessível da Web. Portanto, caso o apache pare de analisar arquivos PHP e comece a jogá-los fora, nossas credenciais de banco de dados ainda estarão seguras ( https: / /gist.github.com/1923848 ):
Dessa forma, se o arquivo acima for nomeado
local-config.php
, meu sistema se comportará como uma instalação local. Se for nomeadostaging-config.php
, ele se comporta como uma instalação temporária e se for nomeadoproduction-config.php
. Isso me ajuda a ter diferentes valores de certas constantes, como a depuração tem valores diferentes em ambientes diferentes e ainda tem tudo no SCM (git). As possibilidades são infinitas e não há invasão necessária para diferentes ambientes.Isso garante que você nunca revele informações confidenciais ao público de qualquer maneira, e eu as uso apenas para iniciar qualquer projeto em que trabalho, tenho chaves mais fortes por padrão e assim que as adiciono ao segundo arquivo de configuração, um diretório acima, esses são usados em vez dos definidos aqui. Felicidade!
fonte
../
(ou seja../filename
) em algum lugar? - Não encontrei nenhum../
nowp-config.php
arquivo principal .DB_CREDENTIALS_PATH
faz isso.Se o seu
wp-config.php
arquivo estiver no controle de versão, as senhas que ele contiver também estarão no controle de versão. A única maneira de evitar isso é não colocar o arquivo no controle de versão.Meu pressentimento seria permanecer
wp-config.php
totalmente não versionado. Mas existem algumas maneiras de contornar isso.Extraia a parte
wp-config.php
que contém suas senhas e hashes em um arquivo separado einclude()
nowp-config.php
arquivo regular . Em seguida, coloque-owp-config.php
sob controle de versão, mas mantenha seuinclude()
arquivo separado.wp-config.php
:Agora você pode ver que senhas e hashes não estão incluídos
wp-config.php
.conf.php
:Mas, honestamente, neste momento você está apenas adicionando um nível redundante de abstração aqui. Todo o motivo
wp-config.php
é separado em primeiro lugar, porque é específico do ambiente. Você não deve copiá-lo de um servidor local para produção de todo ... portanto, não deve estar sob controle de versão.fonte
wp-config.php
tem um benefício extra: você pode incluirconf.php
em um script que não seja do WP sem carregar todo o WordPress.O exemplo de Mark supõe que você esteja trabalhando com um repositório particular:
Em vez de definir as credenciais, você pode facilmente criar um arquivo production-config.php e incluí-lo na verificação condicional:
Então, em seu production-config.php não-versionado:
fonte
Você pode confirmar o
wp-config.php
arquivo no repositório sem suas seqüências secretas e, em seguida, execute:Isso fará com que o git assuma que o arquivo está inalterado.
fonte
assume-unchanged
mudança, mas aqui estão meus dois pontos: (1) Se você adicionar o arquivo diretamente, ele será adicionado ao índice. Portanto, existe o risco de você acidentalmente adicioná-lo em algum momento. (2) A mesclagem de uma confirmação com esse sinalizador fará com que a mesclagem falhe normalmente, de modo que você possa manipulá-lo manualmente, o que torna a solução não elegante. Só pode ser usado para ignorar temporariamente as alterações enquanto algo como uma sessão de desenvolvimento. Aqui, leia mais - gitready.com/intermediate/2009/02/18/…