Configurações Magento 2 para o Google Cloud
Com este guia você será capaz de configurar o Google Cloud Compute Engine para instalação do Magento 2.
Google Cloud Platform é conhecida como uma plataforma como serviço (paas) que nos fornece um ambiente para construir e rodar aplicações com baixa complexidade e boa manutenção.
O primeira coisa que você precisa fazer é criar uma conta no Google Cloud Platform (https://cloud.google.com).
Inicialmente você ganha $300 de crédito para teste, para isso você só precisa se cadastrar usando um cartão de créditpo válido.
Não se preocupe, você não será cobrado ao final do período de teste, a menos que ative o faturamento.
Uma vez cadastrado basta seguir os passos na sequência.
Baixe o Google Cloud SDK
O SDK pode ser baixado em: https://cloud.google.com/sdk/?hl=pt-br
Dentro da pasta do Google Cloud SDK rode:
Instalar o python: `brew install python`
./install.sh
Reinicie o terminal ou rode: `source ~/.`
source ~/.zshrc
gcloud init
Se o comando de inicialização do gcloud não funcionar
É preciso adicionar ao PATH
Este comando atualiza o PATH para o Google Cloud SDK
source '/yourhomedir/google-cloud-sdk/path.bash.inc'
Este comando habilita o bash completion para o gcloud.
source '/yourhomedir/google-cloud-sdk/completion.bash.inc'
Ao final da instalação do google cloud SDK ele informa os caminhos corretos para o commando source
Seguir os comandos descritos no link: https://kadirsert.blogspot.com.br/2014/09/gcloud-command-not-found-error.html
Crie uma VM
Crie uma instância de VM.
Configure sua máquina
Habilite http e https
Rede VPC
Endereço de IP Externo
Firewall Rules - criar regra - default-allow-mysql / tcp:3306
- Compute Engine
Se você possui mais de uma conta google cloud e/ou não está logado, primeiro você precisa se autenticar com o google cloud rodando:
gcloud auth login
gclou command (depends on your case):
run command in terminal
ssh - gcloud command line: `gcloud compute --project "just-camera-182519" ssh --zone "us-central1-c" "ecommerce"` Seu comando gcloud será diferente. Vá até SSH tab e clique em 'Visualizar comando gcloud'.
<img src="/images/img2.png" width="1000">
- Configure Linux Machine:
`sudo su`
`apt-get update -y`
`apt-get upgrade -y`
`apt-get install build-essential -y`
`apt-get install -y git vim curl`
`curl -sSL get.docker.com | sh`
`usermod -aG docker your-user` (e.g. Mac 127)
`run:` ``` curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose ```
`chmod +x /usr/local/bin/docker-compose`
`reboot`
Rode o seu comando se acesso do gcloud: `gcloud compute --project "just-camera-182519" ssh --zone "us-central1-c" "ecommerce"`
Verifique a versão do Docker instalada: `docker version`
- Instâncias de VM
Abra a VM na janela do navegador.
Comprima a pasta do Magento
Faça o Upload
- Terminal
Acesse: `gcloud compute --project "just-camera-182519" ssh --zone "us-central1-c" "ecommerce"`
`sudo su`
`cd /home/yourdir/`
`apt-get install zip`
`unzip file`
Agora o arquivo foi descomprimido e você pode acessar a pasta do Magento em sua VM.
- Dentro da pasta raíz do Magento
Como neste projeto é utilizado o Docker foi montado um Docker Compose com tudo que é preciso para rodar a aplicação. Baixe este Docker Compose do GitHub, faça o upload para a pasta raíz e descomprima:
[Baixar o docker-compose](https://github.com/pedromazala/magento2-docker-compose)
Este docker-compose vem com Nginx, PHP5.6, Mysql and Phpmyadmin.
`cd magento2-docker-compose`
`docker-compose up -d`
Agora o Magento está rodando utilizando estes containers.
- Acesse sem https
youripaddress/phpmyadmin -> crie um banco de dados patra a instalação
- Se ocorrer forbidden
`docker-compose exec magento bash`
`chown www-data:www-data ../html/ -R`
Isso muda o root para: www-data
-> Na instalação Magento o host do bando de dados não será `localhost` mas sim `mysql`.
- Se o seu mysql não conectar altere o proprietário do dos diretórios.
`docker-compose exec mysql bash`
`cd /var/lib/mysql`
`chown mysql:mysql ../mysql/ -R`
`exit`
Acessa mysql dentro do container e altera o proprietário.
- Acessar Servidor
comando gcloud: `gcloud compute --project "just-camera-182519" ssh --zone "us-central1-c" "ecommerce"`
`sudo su`
`/home/yourdir/`
- Instalando o Composer
Primeiro entre no container docker do PHP: `docker-compose exec magento bash`
Vá até [Composer Download](https://getcomposer.org/download/)
Rode o comando que está dentro da caixa de texto.
Então rode o comando: `mv composer.phar /usr/local/bin/composer`
OBS: Um alternativa é instalar o Magento no localhost e então subir para o servidor já com todos os módulos instalados.
Exporte o banco de dados e importe dentro do phpmyadmin.
- Para resolver alguns problemas
`php bin/magento setup:upgrade`
`php bin/magento setup:static-content:deploy`
`chmod 777 -R var/ pub/`
- FTP
O acesso FTP é importante para alterar arquivos diretamente no servidor e fazer alterações. Para ter acesso FTP pelo filezilla siga os seguintes passos:
Crie uma chave ssh local para o usuário `root`
`ssh-keygen -t rsa -f ~/.ssh/root-ssh-key -C root`
Dê a permissão
`chmod 400 ~/.ssh/root-ssh-key`
Copie e adicione ao gcloud metadata no site
`cat ~/.ssh/root-ssh-key.pub`
Clique em `Editar` e `+ Adicionar Item` e cole o código que copiou no terminal.
Importe a chave para o Filezilla
`vá até settings/SFTP e adicione o seu .ssh/root-ssh-key`
Se o openssh não estiver instalado
`sudo apt-get install openssh-server`
Configure o arquivo
`sudo vi /etc/ssh/sshd_config`
pressione i para o INSERT command
encontre a linha que contém `"PermitRootLogin no"` e modifique para `"PermitRootLogin yes"`
Para salvar e sair do vi / vim, pressione [Esc] e ZZ (uppercase)
Agora basta reiniciar o servidor ssh.
`sudo service ssh restart`
Faça conexão usando o endereço de IP como host e `root` como nome de usuário e o protocolo será SFTP
Filezilla funcionando para o seu servidor!
Links úteis:
https://askubuntu.com/questions/400858/how-to-configure-sftp-to-login-in-the-directory
https://torbjornzetterlund.com/using-filezilla-google-cloud-platform-osx/