Mudar um site entre servidores Linux e Windows: as diferenças que o partem

Um site só de HTML, CSS e JavaScript muda de Linux para Windows (ou o contrário) sem problemas. Um site com PHP ou base de dados costuma funcionar, mas parte em meia dúzia de pontos sempre iguais: maiúsculas e minúsculas nos nomes dos ficheiros, barras nos caminhos, o ficheiro de configuração do servidor e a base de dados. Quem conhece esses pontos resolve a mudança numa tarde.

Este artigo é para quem já tem o site e vai mudá-lo de sistema. Se ainda está a decidir qual escolher, leia antes hospedagem Linux ou Windows.

Onde costuma partir

Ponto No Windows No Linux O que se vê
Maiúsculas nos nomes Logo.PNG e logo.png são o mesmo ficheiro. São dois ficheiros diferentes. Imagens e estilos que desaparecem só depois da mudança.
Barra nos caminhos Aceita \ e /. Só /. Erro de ficheiro não encontrado em código com \.
Configuração do servidor IIS lê o ficheiro web.config. Apache e LiteSpeed leem o .htaccess. Regras de URLs amigáveis e redireccionamentos deixam de funcionar.
Nomes de tabelas Não distinguem maiúsculas. Distinguem, por omissão. Uma consulta a Users falha se a tabela se chama users.
Fim de linha CRLF. LF. Scripts de shell que recusam correr.
Permissões Por listas de acesso. Por números (por exemplo 644 e 755). Erro 403 ou 500 em ficheiros que existem.

A ordem para mudar sem sustos

1 Copie ficheiros e base de dados para o destino, sem mexer no site que está no ar. Veja mudar um site à mão: ficheiros por FTP e a base de dados.
2 Teste antes de mudar o DNS. O ficheiro hosts do seu computador deixa-o ver o site novo com o domínio verdadeiro. Veja testar o site migrado antes de mudar o DNS.
3 Percorra o site com o registo de erros aberto. Cada imagem em falta, cada «página não encontrada» e cada erro 500 aponta para um dos pontos da tabela. Veja erros de sites explicados.
4 Reescreva as regras de URLs. As regras do web.config não se copiam: traduzem-se para o .htaccess (ou o contrário). Veja o .htaccess em projectos PHP.
5 Acerte as permissões. Em Linux, a regra de partida é 644 para ficheiros e 755 para pastas. Veja o erro 403 e as permissões.

O que não atravessa a fronteira

Há tecnologias ligadas ao sistema. O ASP e o ASP.NET clássico correm em Windows; o ASP.NET Core corre nos dois, mas tem de ser publicado para o sistema de destino. Bases de dados em SQL Server ou Access têm de ser convertidas para MariaDB ou PostgreSQL antes de passarem para uma conta em Linux. As tarefas agendadas do Windows passam a cron no Linux. Se o seu site depende de uma destas, o caminho para Windows é um VPS: veja publicar um site no Windows Server com o IIS.

Vindo do Windows, o problema das maiúsculas é o mais traiçoeiro. No seu computador tudo funciona, porque o sistema não distingue. No Linux, uma ligação para Imagens/Logo.png não abre uma pasta que se chama imagens. Procure no código as referências a ficheiros e compare com os nomes reais.
Ponha tudo em minúsculas. Nomes de ficheiros, pastas e tabelas em minúsculas, sem espaços nem acentos, funcionam em qualquer sistema. É a melhor prevenção para a próxima mudança.

Vai mudar um site de Windows para Linux e quer uma segunda opinião? Diga-nos o que ele usa.

Abrir um pedido de suporte

VEJA TAMBÉM

Hospedagem Linux ou Windows: qual precisa o seu site

Testar um site migrado antes de mudar o DNS

O .htaccess em projectos PHP: URLs amigáveis e redireccionamentos

Migração de hospedagem

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 321,75 MT/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?