Utilizando o Docker para seu projetos Laravel com Laradock


O laradock é um ambiente de desenvolvimento PHP completo para o docker, contendo algumas imagem docker pré-configuradas. Inicialmente o projeto foi focado em rodar os projetos Laravel no docker, mas veio evoluindo e agora começou a suportar outros projetos PHP como Symfony, CodeIgniter, WordPress, Drupal e outros.

Neste post vamos deixar-lo pronto para utilizar um projeto docker. Primeiramente para que possamos dar seguimento precisamos ter o docker e Git instalado e funcionando na máquina.

O primeiro passo agora é baixar o repositório do laradock no github com o seguinte comando:

$ git clone https://github.com/Laradock/laradock.git laradock

Esse comando baixará o conteúdo para uma pasta chamada laradock. O próximo passo é criar um arquivo .env espelhado pelo env-exemple (Copiando o env-exemple e colando com o nome de .env).

Realizado o passo anterior vamos subir o serviço com o seguinte comando:

$ docker-compose up -d nginx

Quando subimos o nginx automaticamente o PHP sobe pois o servidor web necessita dele.

Pronto o serviço está funcionando e agora podemos testar acessando:

http://localhost

ou no caso de quem estiver usando docker no  OSx acessando:

http://192.168.99.100

Antes de prosseguirmos é importante vermos um pouco sobre algumas configurações no arquivo .env. Algumas mais importantes são:

NGINX_HOST_HTTP_PORT=Porta que vai rodar
NGINX_HOST_HTTPS_PORT=Porta SSL

Existem outras configurações e possibilidades, mas não serão abordadas neste post. Agora vamos rodar uma arquivo teste de php para vermos se vai rodar e qual procedimento devemos tomar para funcionar.

O que vamos fazer primeiramente é criar uma pasta no mesmo nível que a pasta laradock, como mostra a imagem abaixo.

 

 

 

 

Agora que criamos as pasta vamos criar um arquivo chamado index.php dentro da pasta app/ com o seguinte conteúdo:

<?php
 
echo 'Teste laradock';

 

Depois de salvo o arquivo vamos abrir o arquivo default.conf que fica dentro da pasta laradock/nginx/sites/. Altere a linha  root /var/www/app;

Salve o arquivo e volte para a pasta laradock/ e digite os seguintes comando:

$ docker-compose down
 
$ docker-compose up

Pronto podemos testar acessando  http://localhost ou http://192.168.99.100 e verificando que funcionou corretamente.

Exibir branch atual GIT no terminal Linux

Já perdeu em qual branch estava enquanto utilizava o terminal para realizar algum procedimento? Então, a dica de hoje

é bastante simples. Vamos mostrar no nosso terminal em qual branch estamos. Para isso basta entrar no seu arquivo .bashrc que fica no seu diretório padrão, com o seguinte comando:  nano ~/.bashrc e adicionar as seguintes linhas no final do arquivo:

Pronto. Salve o arquivo, reabra o terminal e pronto.

Caso queira ver o resultado sem ter que fechar e abrir o terminal basta digitar o comando: source ~/bashrc

 

Compactando e Descompactando com tar no Linux

O comando tar é uma ferramenta utilizada para compactar e descompactar arquivos, diretórios, discos inteiros, etc. Ele consegue aguentar trabalho pesado, ou seja, compactar arquivos e volumes grandes com responsabilidade. Vamos ver neste post alguns comandos que podemos usar para criar arquivos compactados e descompactar arquivos de diversos formatos.

Primeiro vamos ver algumas opções importantes que o comando possui.

  • -c: (create) cria um novo arquivo tar;
  • -v: (verbose) detalha o procedimento que está acontecendo;
  • -f: define o nome do arquivo;
  • -j ou –bzip2: compacta/descompacta os arquivos usando o bzip2;
  • -J ou –xz: descompacta os arquivos .xz e .Izma;
  • -x: extrai o conteúdo do arquivo;
  • -z ou –gzip ou –gunzip: compacta/descompacta os arquivos usando o compress;
  • -C: diretório onde será descompactado o arquivo.

 

Compactando arquivo

No código abaixo vamos realizar a compactação .tar a parti do diretório arquivos/

$ tar -cvf arquivos.tar arquivos/

 

Descompactando Arquivo

No código abaixo vamos descompactar um arquivo .tar especificando o diretório que o mesmo irá ficar.

$ tar -xvf arquivos.tar -C /opt/

 

Instalando Docker no Centos 6

Docker e CentOS

O Centos 6 e o Docker não se dão bem, isso já vem sendo discutido a algum tempo, mas em uma situação bem especifica precisei instalá-lo nesta distribuição em sua versão 6. O que precisei realizar ante de fato instalar o Docker no Centos foi atualizar o Kernel através de uma variante o Xen4CentOS mantida pela Special Interest Group ( um grupo de interesse especial da virtualização do CentOS).

Vamos então utilizar os seguintes comandos:

Depois de realizado estes passo rode o hello-world:

# docker run hello-world

Pronto Docker instalado.

Fazendo deploy com Deployer

deployer

 

Deployer é um pacote em PHP que tem como características realizar o deploy de aplicações e como principal vantagem a economia de tempo, melhor desempenho e desenvolvimento.

Neste post vamos desde do primeiro passo a instalação ate a execução do deploy em um servidor, tudo em um ambiente linux, no meu caso a distribuição Debian. Primeiramente precisamos baixar o arquivo .phar disponível no site do projeto.

Download do deployer.phar

Depois de realizado o download vamos move-lo e para a pasta /usr/local/bin e conceder permissão de execução com o seguinte comando:

$ mv deployer.phar /usr/local/bin/dep
$ chmod +x /usr/local/bin/dep

Depois deste passo teste o comando dep no terminal e veja se aparece mais ou menos como a tela abaixo.

Comando dep

O próximo passo é a criação do arquivo deploy.php onde setaremos algumas configurações para que possamos executar nosso delpoy da melhor maneira. No nosso casso vamos realizar o acesso via identityFile a um servidor e passar os arquivos de uma branch especifica de um repositório git.

<?php require 'recipe/symfony.php'; 
server('prod', '10.10.10.213')->user('byteslv')
->identityFile('/home/btllv/.ssh/id_rsa.pub', '/home/btllv/.ssh/id_rsa')
->env('deploy_path', '/var/www/html')
->stage('production');
 
set('repository', 'git@github.com:usuario/tests.git');
env('branch', 'master');
 
task('deploy:vendors', function () {
});
 
task('deploy:assetic:dump', function () {
});
 
task('deploy:cache:warmup', function () {
});

Pronto agora podemos executar nosso comando pra realizar o deploy na nossa maquina de production. Para rodar basta utilizar o seguinte comando:

$ dep deploy production

O processo começara, e tudo dando certo aparecerá  uma tela mais ou menos como esta abaixo.

dep

Processo realizado com sucesso!

É possível ir bem alem do que mostrei aqui. Entre no site do projeto e veja sua documentação e veja como o que mais pode se fazer com o Deployer.

http://deployer.org/

 

Otimizando MySQL no CentOS 6

Depois de instalar o MySQL em um servidor centOS o mesmo vem com suas configurações padrões. Nesse post vamos ver como otimizar e melhorar um pouco o nosso banco de dados.

O primeiro passo é abrir o arquivo de configuração com um editor de texto preferido. Por padrão este arquivo vem dentro do diretório /etc com o nome de my.cnf .

# vim /etc/my.cnf

Depois de aberto o arquivo vamos inserir estas linhas, salvar o arquivo e fecha-lo.

set-variable = key_buffer=312M
set-variable = max_allowed_packet=1M
set-variable = table_cache=20000
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
set-variable = thread_concurrency=8
set-variable = max_connections=10000
set-variable = net_write_timeout=30
set-variable = connect_timeout=2
set-variable = wait_timeout=30

Depois de realizado o processo citado acima execute o comando para reiniciar o MySQL, ou para iniciar.

# service mysqld restart

ou

# service mysqld start

Pronto agora é só parti para o abraço.

Removendo Varios Arquivos Linux (ARGUMENT LIST TOO LONG)

Quando se tem varios arquivos indesejáveis ou que so estão tomando espaço em alguma pasta do seu Linux e se decide apaga-los não adianta usar o comando rm ja conhecido, pois ele apresentara um erro mais ou menos mostrando isso: ARGUMENT LIST TOO LONG.

Como remover então estes arquivos? eis o X da questão. Precisamos utilizar alternativas para este comando. No caso aqui utilizaremos o comando for, um comando de repetição. Sua clausula consiste em:

for "iteração" in "lista"; do 
  bloco de código/ comando...
done

Vamos utilizar uma forma mais enxuta junto com o nosso comando rm. Ficando desta maneira:

$ for g in *.log; do rm $g; done

No caso deste código acima excluímos todos arquivos que termina com a extensão  .log. Lembre de ter permissão para excluir estes arquivos.

No código acima ele vai te perguntar se deseja excluir de arquivo em arquivo, mais podemos adicionar uma opção interessante neste comando, o -f.

$ for g in *.log; do rm  -f $g; done

Neste caso ele apaga sem pedir confirmação.

SSH Server Linux

Para se conseguir acessar via terminal um computador ou servidor em LINUX, devemos primeiro instalar o SSH na maquina que queremos acessar.

Primeiramente devemos utilizar o comando apt-get update:

# apt-get update

ou

# yum update

Depois de terminado este processo utilizaremos o seguinte comando para instalar o SSH:

# apt-get install openssh-server

ou

# yum install openssh-server

Depois de instalado devemos iniciar o serviço, com o seguinte comando:

# /etc/init.d/ssh start

ou

# service sshd start

Caso esteja instalando o SSH no centOS deveremos utilizar este outro comando também, para que o serviço possa iniciar junto ao sistema:

# chkconfig sshd on

Configurar IP fixo e DNS no CentOS 6.x

Neste post vou mostrar como configurar um IP fixo e o DNS no CentOS.

Primeiro passo é descobrir o nome da placa de rede, utilizando o seguinte comando:

# ifconfig -a

Depois de identificado o nome placa de rede vamos agora configurar o IP valido. Primeiro vamos abrir o arquivo com o seguinte comando:

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

No meu caso o nome da placa e eth0

Agora alterando o arquivo para:

DEVICE=eth0
TYPE=Ethernet
IPADDR=192.168.1.198
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes

depois salve o arquivo e saia do mesmo ( :wq ).

Feito isto reinicie o serviço network:

# service network restart

Ou:

# /etc/init.d/network restart

Agora vamos verificar o IP:

# ifconfig -a

Agora vamos configurar o DNS para que possamos acessar sites pelo domínio. Para isso basta modificar o arquivo colocando as seguintes linhas:

#vi /etc/resolv.conf

coloque as seguintes linhas:

nameserver 8.8.8.8
nameserver 8.8.4.4

Salve o arquivo ( :wq ), e reinicie o serviço network

# service network restart

Ou:

# /etc/init.d/network restart