O documento resume conceitos sobre desenvolvimento web multiplataforma, incluindo ambientes de desenvolvimento como WAMP e LAMP, metodologia DevOps, sistemas operacionais Windows e Linux, servidores Apache e Nginx, bancos de dados MySQL e MariaDB, linguagem PHP e ferramentas como XDebug e Phalcon.
2. Ambientes de desenvolvimento, prontos:
WAMP
Windows - Apache - MySQL - PHP
LAMP
Linux - Apache - MySQL - PHP
WINGINX
Windows - PHP - Node.js - Nginx - MySQL - MongoDB - Redis -
memcached
3. DevOps
DevOps (amálgama de Desenvolvedor e Operações) é uma
metodologia de desenvolvimento de software que explora a
comunicação, colaboração e integração entre desenvolvedores de
software e outros pro ssionais de TI (Tecnologia da Informação).
DevOps é a reação à interdependência entre desenvolvimento de
software e operações de TI. Pretende ajudar organizações a produzir
software e serviços rapidamente.
DevOps
4. Windows / Linux
Sistema Operacional é um programa ou conjunto de programas que
gerencia os recursos do sistema, entre eles: memória, processador,
sistema de arquivo, sistema de armazenamento, softwares. Possuindo
uma interface de comunicação entre o usuário e o computador.
Sistemas Operacionais
5. Apache
É o servidor web livre mais utilizado do mundo.
Servidor Apache - Wikipédia
Servidor Web
É um software, que serve páginas da web. Aguarda pedidos de
navegadores de internet (clientes) e responde enviando os dados
solicitados/necessários. Essa interação cliente-servidor é a marca
registrada de como a web funciona.
Servidor Web - Wikipédia
6. Nginx
Nginx [engine x] é um servidor proxy HTTP e reverso, bem como um
servidor de proxy de email, escrito por Igor Sysoev desde 2005.
O Nginx é um servidor web rápido, leve, e com inúmeras possibilidades
de con guração para melhor performance.
Nginx - Wikipédia
7. MySQL
É um sistema de gerenciamento de banco de dados (SGBD), que utiliza
a linguagem SQL como interface. É atualmente um dos bancos de
dados mais populares, com mais de 10 milhões de instalações pelo
mundo.
MySQL - Wikipédia
8. MariaDB
MariaDB é um banco de dados que surgiu como fork do MySQL, criado
pelo próprio fundador do projeto após sua aquisição pela Oracle.
Maria DB - Wikipédia
9. PHP
PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor",
originalmente Personal Home Page) é uma linguagem interpretada
livre, usada originalmente apenas para o desenvolvimento de
aplicações presentes e atuantes no lado do servidor, capazes de gerar
conteúdo dinâmico na World Wide Web.
PHP - Wikipédia
10. XDebug
Uma das ferramentas mais úteis no desenvolvimento de software é um
depurador apropriado. Ele permite que você trace a execução do seu
código e monitore os itens na pilha de execução. XDebug, um
depurador de PHP, pode ser utilizado por várias IDEs para prover
breakpoints e inspecionar a pilha. Ele também lhe permite que
ferramentas como PHPUnit e KCacheGrind realizem análise de
cobertura e per s de código.
PHP Right Way - XDebug
14. Instalação do Apache
Download do Apache (httpd-2.4.25-x64-vc14-r1.zip)
Descompactar no diretório E:/apache
Criar serviço para o Apache iniciar com o Windows, na linha de
comando dentro da pasta de instalação E:/apache , digite
httpd.exe -k install -n "Apache 2.4"
Arquivo principal de con guração do Apache: httpd.conf
15. Instalação do PHP
Download do PHP 7.1.2 (VC14 x64 Thread Safe)
Descompactar no diretório E:/apache/php
Copiar o arquivo php.ini-development para php.ini
Arquivo principal de con guração do PHP: php.ini
16. Con guração do PHP no Apache
Arquivo htttp.conf (E:/apache/conf)
182 LoadModule php7_module "E:/apache/php/php7apache2_4.dll"
184 PHPIniDir "E:/apache/php"
284 DirectoryIndex index.php index.html
436 AddHandler application/x-httpd-php .php
437 AddType application/x-httpd-php .php .html
17. Con guração do XDebug no PHP
Download php_xdebug-2.5.0-7.1-vc14-x86_64.dll
Mover para a pasta de extensões do PHP (E:apachephpext)
Copiar o arquivo php.ini-development para php.ini
Adicionar a linha abaixo no arquivo php.ini
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
zend_extension = E:apachephpextphp_xdebug-2.5.0-7.1-vc14-x86_64.dll
18. Instalação do MySQL
Download do MySQL (mysql-installer-community-5.7.17.0)
Instalar o componente MySQL Server
Utilizar a opção Development Machine
21. Instalação do Nginx
Download NGINX 1.10.3, descompactar em E:/nginx
Pela linha de comando entrar na pasta E:/nginx
Digitar o comando start nginx
Pode-se adicionar o caminho E:/nginx na variável de ambiente PATH
Comandos NGINX
nginx -s stop > fast shutdown
nginx -s quit > graceful shutdown
nginx -s reload > starting new worker processes with a new configuration
nginx -s reopen > re-opening log files
Apache e NGINX utilizam a mesma porta para funcionamento 80
22. Con guração do PHP no Nginx
Download PHP 7.1 TS, descompactar em E:/nginx/php
Copiar arquivo php.ini-production ou php.ini-development para
php.ini
Diferença entre PHP e PHP CGI
23. Con guração do PHP no Nginx
Alterar o arquivo nginx.conf (E:/nginx/conf)
45 index index.php index.html index.htm;
Descomentar e alterar
65 location ~ .php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 fastcgi_param SCRIPT_FILENAME E:/nginx/html$fastcgi_script_name;
70 include fastcgi_params;
71 }
24. Con guração do PHP no Nginx
Criar arquivo para iniciar o Nginx e PHP
@ECHO OFF
start E:nginxnginx.exe
start E:nginxphpphp-cgi.exe -b 127.0.0.1:9000 -c E:nginxphpphp.ini
echo .
echo ..
echo ...
echo Starting nginx
EXIT
25. Con guração do PHP no Nginx
Criar arquivo para parar o Nginx e PHP
@ECHO OFF
taskkill /f /IM nginx.exe
taskkill /f /IM php-cgi.exe
EXIT
26. MariaDB
Download do MariaDB (mariadb-10.1.21-winx64.msi)
Instalação padrão
MySQL e MariaDB utilizam a mesma porta para funcionamento 3306
27. Servidor Web (Linux)
Distribuições (https://pt.wikipedia.org/wiki/Distribuição_Linux)
Comandos básicos do linux (https://goo.gl/CXbi0w)
Debian
Slackware
Red Hat
28. Servidor Web (Debian)
Atualizar repositórios
apt-get update
Apache
apt-get install apache2 apache2-doc -y
Arquivo de con guração do Apache "/etc/apache2/apache2.conf"
Liberar acesso para root conectar
nano /etc/ssh/sshd_config
PermitRootLogin yes
30. Servidor Web (Debian)
Deixando o Terminal colorido
Editar o arquivo ~/.bashrc
Descomentar as linhas
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
31. Servidor Web (Debian)
Deixando o Terminal colorido
Alterar a linha
PS1='${debian_chroot:+($debian_chroot)}[033[01;32m]u@h
[033[00m]:[033[01;34m]w[033[00m]$ '
Executar o comando exec bash
35. Servidor Web (Debian)
Instalação do MySQL
apt-get install mysql-server -y > quando solicitar senha utilizar
<enter>
Via linha de comando entrar no mysql, com o comando mysql e
executar a query
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '';
Alterar o arquivo /etc/mysql/my.cnf
47 #bind-address = 127.0.0.1
Reiniciar o serviço do mysql com o comando service mysql restart
36. Instalação do Composer
Instalar o CURL apt-get install curl
Instalar o Composer
curl -sS https://getcomposer.org/installer | sudo php -- --install-
dir=/usr/local/bin --filename=composer
41. Git
Sistema de Controle de Versão
Organização
Trabalho em equipe
Segurança
Release (http://semver.org/)
Criado por Linus Torvalds (2005)
Sistema descentralizado
Github - Git Cheat Sheet
42. Con gurando Git
Instalação (https://git-scm.com/ - Git-2.12.1-64-bit)
git config --global user.name "Nome do usuário"
git config --global user.email "email@usuario.com"
git config --global color.ui true
Criando um repositório:
mkdir <diretorio>
cd <diretorio>
git init
43. Usando Git
Criar um arquivo <arquivo>
Primeiro estágio - Untracked Files
git status
Segundo estágio - Changes to be committed
git add <arquivo>
git add .
Terceiro estágio - Committed
git commit -m "<mensagem>"
Veri cando histórico de commits
git log
45. Git - ignore
Ignorando arquivos
Criar um arquivo .gitignore na pasta raiz do projeto e adicionar todos
os arquivos ou pastas, que deverão ser ignorados no versionamento.
.idea/
gitignore.txt
/tmp/cache/persistent/*
!/tmp/cache/persistent/empty
46. Git - checkout e HEAD
O reset HEAD serve para voltar untracked les e o checkout para voltar
arquivos que já foram adicionados e estão modi cados.
git reset HEAD arquivo2.txt
git checkout a1e8fb5 arquivo3.txt
47. Git - HEAD
git reset HEAD~1-n
git reset HEAD~1 --soft
git reset HEAD~1 --hard
Soft: remove todos os commits posteriores voltando os para o
estágio anterior que é changed to be commited, mas ele os mantem
na pasta para que possa ser adicionado novamente.
Hard: remove todos os commits posteriores a versão acessada e
também os arquivos que a eles perteciam.
51. Git - branch
Veri cando branches: git branch
Veri cando branches (locais e remotos): git branch -a
Criando branch: git checkout -b <branch>
Trocando de branch: git checkout <branch>
Enviar branch para origem: git push -u origin <branch>
Ligando branch remoto com local:
git checkout -b <branch> origin/<branch>
52. Git - push / pull
Atualizar arquivos locais: git pull
Enviar commits para servidor remoto: git push
Antes de enviar commits, sempre atualizar arquivos locais antes
Indicando repositório e branch: git pull origin master
53. Git - Gerando chave
Gerar chave com o comando ssh-keygen (*não utilizar senha)
Abrir o arquivo id_rsa.pub e copiar o conteúdo
No Github: Settings > SSH and GPG keys
Clique no botão New SSH Key
Colocar um título e colar o conteúdo
55. Git - remote
Adicionando repositório remoto
git remote add <nomecurto> git@github.com:<usuario>/<repositorio>.git
Geralmente se usa o nome curto: upstream
56. Git - Sincronizando com remote
Atualizar seu repositório com alterações de remoto
git fetch upstream
git checkout <branch>
git merge upstream/<branch>
Veri car se ocorreram erros no merge
57. Git - tag
Geração de tags
Gerar uma tag git tag <tag> (0.1.0)
Listar tags git tag -l
Enviar para repositório git push origin master --tags
Versionamento semântico