Faça o Linux e o Windows compartilharem arquivos e banco de dados de localhost (webserver)

1

Eu gostaria de ter o Ubuntu e o Windows compartilhando meus bancos de dados htdocs e mysql para desenvolvimento local. Este não é um site voltado para a Web, apenas para uso em desenvolvimento pessoal. Existe uma maneira de fazer isso? Esta é uma ideia terrível?

    
por Josiah 11.01.2015 / 00:09

1 resposta

2

Quando fiz isso pela primeira vez, tive muitos problemas para fazer com que minha pilha LAMP funcionasse bem com minha pilha WAMP - recebi muitos erros "você não tem permissão para acessar este" quando naveguei para o localhost.

Eu tentei várias configurações de host virtual do Apache, nenhuma das quais me permitia acessar os arquivos.

O que funcionou foi usar mount --bind para colocar minhas pastas do windows nas pastas linux correspondentes. Se isso funcionar, você perceberá que a página de destino padrão do ubuntu para localhost foi substituída pelo "funciona" do Windows. Note que qualquer arquivo linux será escondido pelos arquivos do windows com o mesmo nome.

Eu tenho uma entrada fstab que monta minha partição do windows em /media/windows .

A solução foi para

Monte e ligue os arquivos nos locais corretos:

Primeiro, crie um "arquivo upstart" com esses conteúdos como mencionado aqui.

Execute isso no terminal:

gksu gedit /etc/init/mount-bind.conf

Cole isso, alterando o ... para o caminho para seus htdocs. Obviamente, teste esses comandos no terminal para ter certeza de que os caminhos estão corretos. As localizações dos arquivos linux são o bit importante.

#
# bind mounts
#

description "bind"

start on stopped mountall 

script 

   mount --bind '/media/windows/.../htdocs' /var/www/html
   mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysql

end script

Com esses dois comandos eu cheguei perto, mas o InnoDB estava impedindo o mysql de iniciar. O problema é a verificação do tamanho do arquivo de log do InnoDB. Uma solução fácil é ter um sistema operacional usando um arquivo de log diferente do outro. Caso contrário, somente o sistema operacional mais recente iniciará o mysql. Você também pode excluir os arquivos toda vez que iniciar ou desligar, mas é mais fácil manter registros separados. Eles compartilham alterações muito bem, apenas não os arquivos de log.

Alterar a localização do arquivo de log do MySQL

No Ubuntu, em /etc/mysql/my.cnf , adicione esta linha na seção InnoDB:

innodb_log_group_home_dir = /var/log/mysql

Isso resolveu para mim.

Advertência: o linux é mais "sensível a maiúsculas e minúsculas" que o Windows. Onde o Windows vai alegremente pegar uma imagem com capitalização diferente e servir, o Linux não. Naturalmente, os desenvolvedores da Web reais sempre são exatos em sua capitalização.

    
por Josiah 11.01.2015 / 01:17