@ 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.phpque normal, comentando a quatro (4) define DB_NAME, DB_USER, DB_PASSWORDe DB_HOSTe, em vez registrar os padrões para webhosts e, em seguida, registrar informações sobre cada própria hospedagem. Aqui está a wp-config.phpaparê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 .devdomí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.phpser chamado.
Depois de atualizar o seu wp-config.php, você pode simplesmente usar o atalho do URL wp-migrate-webhostspara 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_webhostsaçã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, domainetc. Um exemplo perfeito pode estar googlemaps_apikeyonde 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_apikeyelemento em sua matriz register_webhost () e um pequeno migrate_webhostsgancho 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.