anúncios

segunda-feira, 18 de setembro de 2017

Git deploy na VPS

Considerando que já tenha configurado o ambiente e esteja funcionando na VPS, incluindo o GIT. Chegou a hora de automatizar o deploy da aplicação. Esse é o objetivo deste post.

Na VPS cria dois diretórios, uma para o repositório e outro para aplicação.
repositório: /var/repo/projeto.git
aplicação: /var/www/html/projeto

# mkdir /var/repo
# mkdir /var/repo/projeto.git
# cd /var/repo/projeto.git
# git init --bare
# cd hooks
# vim post-receive


#!/bin/bash
git --work-tree=/var/www/html/projeto --git-dir=/var/repo/projeto.git checkout -f

ESC +:wq

# chmod +x post-receive
# chown -R usuario:usuario /var/repo/projeto.git
# mkdir /var/www/html/projeto
# chown R www-data:www-data /var/www/html/projeto


Agora na máquina de desenvolvimento, adicione o remote do repositório do projeto criado na VPS
Acesse o diretório do projeto, execute
Adicionar o repositório deploy da VPS no remote
git remote add deploy ssh://usuario@IP_VPS/var/repo/projeto.git
No meu caso, tenho os seguintes remotes: upstream do repositório oficial, origin do fork do repositório e deploy do repositório da VPS.

git add .
git commit -m "primeiro commit"
git push origin master
git push deploy master

Para visualizar os commits
git log --all --graph --decorate --oneline
Caso ocorra algum erro de permissão, execute o hooks/post-receive manualmente
#cd /var/repo/projeto.git/hooks
#./post-receive

Feito!

sábado, 16 de setembro de 2017

Configurando ambiente de desenvolvimento PHP com framework CakePHP

O que é CakePHP ?

CakePHP é um framework PHP que tem os principais objetivos, oferecer uma estrutura que possibilite aos programadores PHP de todos os níveis desenvolverem aplicações robustas rapidamente, sem perder flexibilidade. O CakePHP utiliza conceitos de engenharia de software e padrões de projeto, tais como: ActiveRecord, Association Data Mapping, Front Controller e MVC (Model-View-Controller). Lançado em Abril de 2005, com licença MIT, até a data de publicação deste post, a versão estável é 3.5.

Requisitos para executar o CakePHP
Servidor HTTP Server, por exemplo: Apache, Nginx, com módulo rewrite habilitado
PHP >= 5.6.4
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
mbstring PHP Extension
Tokenizer PHP Extension
intl PHP Extension
simplexml PHP Extension
Caso não tenha o Apache, SGBD MySQL e PHP instalado, segue o howto Configurando ambiente PHP 7 no Debian e CentOS , se caso já tiver, vá para a próxima etapa.

Instalando os requerimentos
Mbstring PHP Extension
Debian:
PHP 5.6 # apt-get install php5-mbstring
PHP 7 # apt-get install php7.0-mbstring
CentOS:
PHP 5.6 # yum install php56w-mbstring
PHP 7 #yum install php7-mbstring
Debian: #apt-get install php-tokenizer
XML PHP Extension
Debian: #apt-get install php-xml

Instalando o Composer
Debian:
# apt-get install curl
CentOS:
# yum install curl
Download do Composer
# curl -sS https://getcomposer.org/installer | php
Setar permissão de execução
$ chmod +x composer.phar
Mover para o diretório local
# mv composer.phar /usr/local/bin/composer
Atualizar o Composer
# composer self-update

Instalação do CakePHP no Document Root do servidor HTTP
Nesse howto, é abordado o servidor HTTP Apache, no caso em Linux, o document root é /var/www/html É necessário executar para permissão no seu usuário
# chown -R usuario:usuario /var/www/html/projeto
Execute o comando no diretório correspondente ao document root
$composer create-project --prefer-dist cakephp/app projeto

Criar um VirtualHost para o projeto
# vim /etc/apache/sites-available/projeto.conf

ServerAdmin webmaster@localhost
DocumentRoot "/var/www/html/projeto/public"
ServerName http://projeto
ErrorLog "logs/projeto-error.log"
CustomLog "logs/projeto-access.log" common

DirectoryIndex index.php index.html index.htm
AllowOverride All
Order allow,deny
Allow from all


ESC +:wq (salva e sai do editor Vim)

Ativar o VirtualHost
# ae2nsite projeto.conf
Habilitar o módulo rewrite
# a2enmod rewrite
Reload das configurações feitas no Apache
# service apache2 reload
Após criar o VirtualHost do projeto, acessa pelo browser http://IP/projeto
Feito!

quarta-feira, 30 de agosto de 2017

Habilitar Conexão remota no MySQL

De acordo com as boas práticas de planejamento na arquitetura de infraestrutura do projeto, separar o servidor de BD do servidor da APP, por segurança, desempenho e escalabilidade. O presente post, explica os procedimentos necessários para que conecte remotamente ao servidor de BD no SGBD MySQL.

Estando com o MySQL instalado, segue os procedimentos abaixo>
# vim /etc/mysql/my.cnf
Alterar bind-address = 127.0.0.1 por bind-address = 0.0.0.0

Reiniciar o MySQL
# /etc/init.d/mysql restart

Conceder permissão para que o usuário acesse o BD a partir de qualquer IP
# mysql -u root -p
# GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
# FLUSH PRIVILEGES;


Feito!

segunda-feira, 28 de agosto de 2017

Criando database, usuário e permissão ao usuário no MySQL

No presente post, o objetivo é criar o banco de dados, usuário e permissão de acesso ao banco de dados criado, no SGBD MySQL via CLI (terminal).

Estando com o MySQL instalado, segue os procedimentos abaixo:
Logando como root
# mysql -u root -p
Enter password: < digite a senha de root que foi definida na instalação do MySQL >

Criando database
mysql> create database exemplo character set utf8;
Query OK, 1 row affected (0.00 sec)


Criando usuário para o database
mysql> create user 'usuario'@'localhost' IDENTIFIED BY 'password';

Criando privilégios de acesso ao database ao usuário
mysql> GRANT ALL PRIVILEGES ON exemplo.* TO usuario@localhost WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec)
mysql> quit

Bye

Com isso, preserva o usuário root do MySQL por segurança.

Feito!

segunda-feira, 21 de agosto de 2017

6 anos de blog

O blog esta completando hoje, 21 de Agosto de 2017, 6 anos!

Gostaria de agradecer a todos pelo prestígio e a paciência de ler os posts que são publicados. Espero continuar compartilhando conhecimentos no blog para nossos leitores. Continuem prestigiando e divulgando o blog Mundo da Computação Integral, assim aumentamos nossa comunidade.

sábado, 15 de julho de 2017

Guia prático GIT

O que é Git ?

Git é um sistema de controle de versão distribuído, desenvolvido por Linus Torvalds para o Kernel Linux, tem sido utilizado em diversos projetos pessoais e/ou por uma equipe de desenvolvedores.
Git tem ser tornado o melhor sistema de versionamento utilizado em projetos de software.
Depois de conhecer o Git, podemos instalar-lo no SO que usa, verificar a lista de comandos mais utilizadas do Git e praticá-lo.

Frontend do Git: Github, Bitbucket, Gitlab

Download do Git
Git Bash for Windows

No Linux
Debian: # apt-get install git-core

CentOS: # yum install git

Configurações

O local das configurações do Git são armazenadas no diretório de usuário do Sistema Operacional no arquivo .gitconfig
Ex: Windows: C:\Users\Reginaldo\.gitconfig e Linux: /home/reginaldo/.gitconfig

As informações armazenadas no comando seguinte são armazenadas no arquivo mencionado acima.
Setar usuário: git config --global user.name "Reginaldo"
Setar e-mail: git config --global user.email "usuario@dominio.com"
Setar editor: git config --global core.editor vim
Setar ferramenta de merge: git config --global merge.tool vimdiff
Setar arquivos a serem ignorados: git config --global core.excludesfile ~/.gitignore

Lista de comandos mais utilizados
git init : usado para iniciar um repositório local do git(Esse comando criar um diretório .git com vários arquivos de configuração).

git add ou git add . : Esse comando adiciona arquivos ao index, isso prepara os arquivos para um novo commit.
A diferença de um para outro é que o git add . adiciona todos os arquivos na index e o outro é individual.

git commit -m "comentário" : Adiciona uma mensagem ao commit do arquivo adicionado.

git remote add origin : Esse comando vincula o alias origin a um repositório remoto.

git push origin master : Esse comando enviar os arquivo que estão no estagio HEAD (arquivos comitados) para o servidor remoto.
No comando acima você deve ter notado ORIGIN e o MASTER, o origin é um alias para o repositório remoto ex: origin = https://github.com/user/repositorio.git e master é um alias para o branch local Eex: master = workdir/repositorio.

git pull ou git pull origin master : Esse comando obtém os atualizações do repositório remoto para o branch master ou um branch especifico. você deve usa-lo sempre antes de começar a alterar os arquivo para não ter conflito com a versão que está no repositório remoto.

git clone : Esse comando cria uma cópia no diretório atual do repositório local ou remoto.

git checkout -b : Esse comando cria uma nova branch com um nome especifico com ele você também pode navegar entre os branchs (Ex: git checkout master para voltar ao master). Você pode criar quantos branchs quiser e depois junta-los criando um merge.

git remote show origin : Esse comando lista a url do alias origin do repositório remoto.

git remote add origin (url) : Esse comando adiciona um novo repositório remoto ao alias origin.

git remote set-url origin (nova url) : Esse comando muda a url atual do alias origin para um novo repositório remoto.

git log --decorate --graph --oneline : Esse comando exibi um log detalhado e colorido com os commit realizados e o status das branchs.

git merge nomedobranch : Como o nome já sugere ese comando faz a junção de um branch em outro branch selecionado.

git checkout hashdocommit : Esse comando da um rollback para o commit especificado.

git reset –hard HEAD~1 : Um dos n comandos usados para revert um commit, similar ao rollback no svn.

git branch -d nomebranch : Esse comando deleta um branch local.

git push origin :nomebranch : Esse comando deleta um branch remoto.

git blame [caminho-arquivo-projeto] : Esse comando exibe a última modificação de quem escreveu.

git bisect start [--term-{old,good}= --term-{new,bad}=] : Esse comando pesquisa o commit que introduziu o bug.

Atualização do fork com o repositório oficial
git remote add upstream < end-oficial >: Adiciona a url do repositório oficial junto ao seu fork no repositório local

git fetch upstream: Atualiza o seu fork com o repositório oficial

git merge upstream/master master: Aplica o merge do fork com o oficial

Considerações finais
Caso ainda não tenha conta no Github ou Bitbucket ou Gitlab, cria uma conta, um repositório e os commits dos arquivos correspondente ao seu projeto. É bom ressaltar que esses citados são frontend do Git para gerenciar os versionamentos de arquivos do projetos pela interface web. Como o Git é um sistema de controle de versão distribuído, pode-se usar os protocolos SSH ou FTP ou HTTP como servidor que ficarão os arquivos do projeto.

Referência
https://git-scm.com/book/pt-br/v2
Feito!

domingo, 21 de maio de 2017

Configurando ambiente de desenvolvimento PHP com framework Laravel

O que é Laravel?

Laravel é um framework PHP criado por Taylor Otwell. Laravel foi lançado em 09 de Junho de 2011.

O Laravel permite que se mantenha o foco em um projeto, minimizando a quantidade de código necessário para uma dada tarefa.

Laravel foi desenvolvido sobre o paradigma da programação Orientada a Objetos sob o padrão de arquitetura de software MVC.

Depois de conhecer o Laravel e para que serve, podemos seguir os procedimentos de configuração no ambiente de desenvolvimento PHP com Laravel na distribuição Linux Debian e/ou CentOS/RHEL/Fedora.

Instalação dos pré-requisitos

Antes é necessário instalar o servidor Apache ou Nginx, PHP e SGBD MySQL ou PostgreSQL. No presente howto será instalado o Apache, PHP e SGBD MySQL/MariaDB.

Requerimentos do Laravel
  • PHP >= 5.6.4
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
Caso não tenha o Apache, SGBD MySQL e PHP instalado, segue o howto Configurando ambiente PHP 7 no Debian e CentOS , se caso já tiver, vá para a próxima etapa.

Instalando os requerimentos
Mbstring PHP Extension
Debian:
PHP 5.6 # apt-get install php5-mbstring
PHP 7 # apt-get install php7.0-mbstring

CentOS:
PHP 5.6 # yum install php56w-mbstring
PHP 7 #yum install php7-mbstring

Tokenizer PHP Extension
Debian: #apt-get install php-tokenizer
XML PHP Extension
Debian: #apt-get install php-xml

Instalando o Composer
Debian:
# apt-get install curl

CentOS:
# yum install curl

Download do Composer
$ curl -sS https://getcomposer.org/installer | php
Setar permissão de execução
$ chmod +x composer.phar Mover para o diretório local
# mv composer.phar /usr/local/bin/composer
Atualizar o Composer
# composer self-update

Modos de instalação do Laravel
Escolha um dos modos de sua preferência

1. Global
$ composer global require "laravel/installer"
Depois de instalado, execute o comando laravel new projeto

2. Create-projet
No diretório raiz do servidor web (Apache ou Nginx)
$ composer create-project --prefer-dist laravel/laravel projeto

Servidor PHP embutido
$ php artisan serve
Irá exibir server at http://localhost:8000
Abre no browser e irá aparecer a página de boas vindas default do Laravel.
Isso se o projeto não tiver no diretório raiz do servidor web (Apache, Nginx)
Caso queira executar o projeto no servidor web, colocar o projeto no diretório raiz do servidor web e startar o serviço do Apache ou Ngninx, por fim acessar no browser http://localhost/projeto

Referências
https://laravel.com/docs/5.4
Feito!