@ Insanity5902 : A implantação de um site WordPress de uma caixa para outra é uma PITA desde o primeiro dia em que comecei a trabalhar com o WordPress. (Verdade seja dito que foi uma PITA com Drupal por 2 anos antes de eu começar com o WordPress, então o problema certamente não é exclusivamente com o WordPress.)
Incomodou-me o fato de que, toda vez que eu precisava mudar um site, eu gastava tanto esforço duplicado e me impedia de implantar para testar com a frequência que preferia. Então, cerca de 4-6 meses atrás, comecei a trabalhar em um plug-in para resolver o problema de migração de host da web e mencionei minhas idéias no fórum do WP Tavern .
Avanço rápido de hoje e eu praticamente consegui funcionar e estou convenientemente chamando de " WP Migrate Webhosts ". Mesmo que o plug-in ainda seja muito beta (provavelmente até alfa), dada a sua pergunta, acho que estou pronto para permitir que as pessoas comecem a bater nele.
O caso de uso previsto é o seguinte:
- primeiro, o desenvolvedor lida com o upload de todos os temas alterados e arquivos de plug-in via FTP,
- então carrega o banco de dados MySQL de desenvolvimento para o servidor de teste na sua totalidade e finalmente
- em seguida, executa o plug-in para migrar quaisquer referências do domínio anterior para o novo. (Meu plug-in não tenta resolver a mesclagem de novos campos ou tabelas de banco de dados com dados ativos ; esse é um problema muito maior que não tenho certeza de como resolver.)
Você pode fazer o download do plug-in do meu site e descompacte em seu diretório de plugins (se você não sabe como fazer isso, então este plugin não é para você, porque requer alguém que sabe o que estão fazendo para usá-lo.) Eu vou mantenha este plugin on-line até que eu o libere no WordPress.org, após o qual você deve procurá-lo lá.
Para usá-lo você tomar uma abordagem diferente em sua wp-config.php
que normal, comentando a quatro (4) define DB_NAME
, DB_USER
, DB_PASSWORD
e DB_HOST
e, em vez registrar os padrões para webhosts e, em seguida, registrar informações sobre cada própria hospedagem. Aqui está a wp-config.php
aparência desse segmento (observe que a primeira seção é o código desnecessário comentado e observe também que eu configurei meu arquivo de hosts na minha máquina local com .dev
domínios de nível superior não roteáveis para facilitar o desenvolvimento do dia a dia. No Mac, o VirtualHostX facilita isso):
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
//define('DB_NAME', 'wp30');
/** MySQL database username */
//define('DB_USER', 'wp30_anon');
/** MySQL database password */
//define('DB_PASSWORD', '12345');
/** MySQL hostname */
//define('DB_HOST', '127.0.0.1:3306');
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/wp-webhosts.php');
register_webhost_defaults(array(
'database' => 'example_db',
'user' => 'example_user',
'password' => '12345',
'host' => 'localhost',
'sitepath' => '', // '' if WordPress is installed in the root
));
register_webhost('dev',array(
'name' => 'Example Local Development',
'host' => '127.0.0.1:3306',
'domain' => 'example.dev',
'rootdir' => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
'name' => 'Example Test Server',
'rootdir' => '/home/example/public_html/test',
'domain' => 'test.example.com',
));
register_webhost('stage',array(
'name' => 'Example Staging Server',
'rootdir' => '/home/example/public_html/stage',
'domain' => 'stage.example.com',
));
register_webhost('live',array(
'name' => 'Example Live Site',
'rootdir' => '/home/example/public_html/',
'password' => '%asd59kar12*fr',
'domain' => 'www.example.com',
));
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/set-webhost.php');
Espero que isso seja (principalmente) auto-explicativo. Tentei tornar o código o mais limpo possível, mas infelizmente isso requer essas duas require_once()
linhas enigmáticas antes e depois do bloco do código de registro do host da web, pois não havia como " enganchar " o WordPress antes de wp-config.php
ser chamado.
Depois de atualizar o seu wp-config.php
, você pode simplesmente usar o atalho do URL wp-migrate-webhosts
para ir para a tela de administração da seguinte forma:
http://example.com/wp-migrate-webhosts
O acima irá levá-lo para uma tela de administrador como o seguinte, que tem um pouco de descrição de texto e permite migrar DE qualquer um dos outros domínios de host com um único clique depois de selecionar os domínios para migrar a partir de ( NOTA : este exemplo mostra vai BAIXO do estágio servidores de teste / / ao vivo para o desenvolvimento local, mas a certeza de que pode migrar TO qualquer domínio onde acontece a ser localizado. Isto também significa o plugin será ótimo para tirar um site ao vivo existente e rapidamente obter um ambiente de desenvolvimento local de trabalho! ):
Se não estiver claro, a " migração " nesse contexto significa atualizar todas as referências no banco de dados atual para serem apropriadas para o host definido atualmente (e " atual " é detectado pela inspeção $_SERVER['SERVER_NAME']
).
O interessante do plug-in é que ele implementa algumas migrações básicas, mas qualquer pessoa pode conectá-lo e executar suas próprias migrações . Por exemplo, se você adicionar um plug-in de galeria que armazene caminhos completos para imagens no banco de dados, poderá conectar a migrate_webhosts
ação à qual serão transmitidos o host " from " e o host " to " como uma matriz de metadados, e você poderá para executar o que você precisa fazer no banco de dados usando SQL ou qualquer função aplicável da API do WordPress para fazer a migração. Sim, qualquer um de nós poderia fazer isso sem o plug-in, mas sem o plug-in, achei que escrever todo o código necessário era mais esforço do que valia. Com o plugin, é mais fácil escrever esses pequenos ganchos e acabar logo com isso.
Você também pode achar que minhas migrações falham em casos extremos que eu não testei e talvez você possa me ajudar a melhorar o plug-in? Quem quiser pode me enviar um e-mail por meio da minha conta do Gmail (meu apelido é "mikeschinkel").
Além disso, o plugin foi projetado para aceitar metadados webhost definir pelo usuário em adição aos que ele reconhece como database
, user
, password
, host
, domain
etc. Um exemplo perfeito pode estar googlemaps_apikey
onde você pode armazenar uma das diferentes chaves de API para cada domínio do seu Google Mapa necessidades de plugin para operar corretamente (quem dentre você que usou um plug-in do Google Maps não implantou um aplicativo em um servidor ativo e esqueceu de alterar o código para a chave de API correta? Vamos lá, seja honesto ... :) Com este plug-in, um googlemaps_apikey
elemento em sua matriz register_webhost () e um pequeno migrate_webhosts
gancho personalizado, você pode efetivamente eliminá-lo como uma preocupação!
Bem, é isso. Estou iniciando este plug-in aqui no Exchange Answerer's WordPress porque a pergunta do @ Insanity5902 o acionou. Informe-me se for útil, aqui, se for o caso, ou por e-mail, se não.
PS Se você decidir usar isso, lembre-se de que é alfa / beta e isso significa que ele será alterado. Portanto, esteja preparado para uma pequena cirurgia, se você quiser usá-la agora e depois usar a versão lançada, uma vez que tenha sido derrotada por muitas mãos.
PPS Quais são meus objetivos com isso? Adoro ver isso migrar para o núcleo do WordPress, para que todos tenham acesso a ele. Mas antes que isso possa ser considerado, muitas pessoas precisam se interessar em usá-lo para garantir que ele realmente resolva mais problemas do que poderia criar. Então, se você gosta da idéia, use-a de todos os modos e me ajude a ganhar impulso para uma eventual inclusão esperançosa no núcleo do WordPress.