41
Programação Multiplataforma em Ambiente Web

Programação Multiplataforma em Ambiente Web

Embed Size (px)

Citation preview

Page 1: Programação Multiplataforma em Ambiente Web

Programação Multiplataforma emAmbiente Web

Page 2: Programação Multiplataforma em Ambiente Web

Ambientes de desenvolvimento, prontos:

WAMP

Windows - Apache - MySQL - PHP

LAMP

Linux - Apache - MySQL - PHP

WINGINX

Windows - PHP - Node.js - Nginx - MySQL - MongoDB - Redis -memcached

Page 3: Programação Multiplataforma em Ambiente Web

DevOps

DevOps (amálgama de Desenvolvedor e Operações) é umametodologia de desenvolvimento de software que explora acomunicação, colaboração e integração entre desenvolvedores desoftware e outros pro ssionais de TI (Tecnologia da Informação).DevOps é a reação à interdependência entre desenvolvimento desoftware e operações de TI. Pretende ajudar organizações a produzirsoftware e serviços rapidamente.

DevOps

Page 4: Programação Multiplataforma em Ambiente Web

Windows / Linux Sistema Operacional é um programa ou conjunto de programas quegerencia os recursos do sistema, entre eles: memória, processador,sistema de arquivo, sistema de armazenamento, softwares. Possuindouma interface de comunicação entre o usuário e o computador.

Sistemas Operacionais

Page 5: Programação Multiplataforma em Ambiente Web

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 denavegadores de internet (clientes) e responde enviando os dadossolicitados/necessários. Essa interação cliente-servidor é a marcaregistrada de como a web funciona.

Servidor Web - Wikipédia

Page 6: Programação Multiplataforma em Ambiente Web

Nginx Nginx [engine x] é um servidor proxy HTTP e reverso, bem como umservidor de proxy de email, escrito por Igor Sysoev desde 2005.

O Nginx é um servidor web rápido, leve, e com inúmeras possibilidadesde con guração para melhor performance.

Nginx - Wikipédia

Page 7: Programação Multiplataforma em Ambiente Web

MySQL É um sistema de gerenciamento de banco de dados (SGBD), que utilizaa linguagem SQL como interface. É atualmente um dos bancos dedados mais populares, com mais de 10 milhões de instalações pelomundo.

MySQL - Wikipédia

Page 8: Programação Multiplataforma em Ambiente Web

MariaDB MariaDB é um banco de dados que surgiu como fork do MySQL, criadopelo próprio fundador do projeto após sua aquisição pela Oracle.

Maria DB - Wikipédia

Page 9: Programação Multiplataforma em Ambiente Web

PHP PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor",originalmente Personal Home Page) é uma linguagem interpretadalivre, usada originalmente apenas para o desenvolvimento deaplicações presentes e atuantes no lado do servidor, capazes de gerarconteúdo dinâmico na World Wide Web.

PHP - Wikipédia

Page 10: Programação Multiplataforma em Ambiente Web

XDebug Uma das ferramentas mais úteis no desenvolvimento de software é umdepurador apropriado. Ele permite que você trace a execução do seucódigo e monitore os itens na pilha de execução. XDebug, umdepurador de PHP, pode ser utilizado por várias IDEs para proverbreakpoints e inspecionar a pilha. Ele também lhe permite queferramentas como PHPUnit e KCacheGrind realizem análise decobertura e per s de código.

PHP Right Way - XDebug

Page 11: Programação Multiplataforma em Ambiente Web

Phalcon Framework PHP full-stack entregue como extensão C.

Phalcon

Page 12: Programação Multiplataforma em Ambiente Web

Servidor Web (Windows) Apache (https://www.apache.org/dyn/closer.cgi)

MySQL (https://www.mysql.com/)

PHP (https://secure.php.net/)

PHP - XDebug (https://xdebug.org/)

Nginx (https://www.nginx.com/)

MariaDB (https://mariadb.org/)

Page 13: Programação Multiplataforma em Ambiente Web

Receita Windows 7 (x64)

Apache (httpd-2.4.25-x64-vc14-r1.zip) (E:\apache)

PHP 7.1.2 (VC14 x64 Thread Safe)

XDebug (php_xdebug-2.5.0-7.1-vc14-x86_64.dll)

MySQL (mysql-installer-community-5.7.17.0)

Nginx (nginx/Windows-1.10.3)

MariaDB (mariadb-10.1.21-winx64.msi)

Page 14: Programação Multiplataforma em Ambiente Web

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 decomando 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

Page 15: Programação Multiplataforma em Ambiente Web

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

Page 16: Programação Multiplataforma em Ambiente Web

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 .php437 AddType application/x-httpd-php .php .html

Page 17: Programação Multiplataforma em Ambiente Web

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:\apache\php\ext)

Copiar o arquivo php.ini-development para php.ini

Adicionar a linha abaixo no arquivo php.ini

xdebug.remote_enable=1xdebug.remote_handler=dbgpxdebug.remote_mode=reqxdebug.remote_host=127.0.0.1xdebug.remote_port=9000zend_extension = E:\apache\php\ext\php_xdebug-2.5.0-7.1-vc14-x86_64.dll

Page 18: Programação Multiplataforma em Ambiente Web

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

Page 19: Programação Multiplataforma em Ambiente Web

Instalação do Phalcon Versão ainda não compatível com PHP 7.1

Page 20: Programação Multiplataforma em Ambiente Web

.htaccess Arquivo de exemplo comentado

Page 21: Programação Multiplataforma em Ambiente Web

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 NGINXnginx -s stop > fast shutdownnginx -s quit > graceful shutdownnginx -s reload > starting new worker processes with a new configurationnginx -s reopen > re-opening log files

Apache e NGINX utilizam a mesma porta para funcionamento 80

Page 22: Programação Multiplataforma em Ambiente Web

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

Page 23: Programação Multiplataforma em Ambiente Web

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 }

Page 24: Programação Multiplataforma em Ambiente Web

Con guração do PHP no Nginx Criar arquivo para iniciar o Nginx e PHP

@ECHO OFFstart E:\nginx\nginx.exestart E:\nginx\php\php-cgi.exe -b 127.0.0.1:9000 -c E:\nginx\php\php.iniecho .echo ..echo ...echo Starting nginxEXIT

Page 25: Programação Multiplataforma em Ambiente Web

Con guração do PHP no Nginx Criar arquivo para parar o Nginx e PHP

@ECHO OFFtaskkill /f /IM nginx.exetaskkill /f /IM php-cgi.exeEXIT

Page 26: Programação Multiplataforma em Ambiente Web

MariaDB Download do MariaDB (mariadb-10.1.21-winx64.msi)

Instalação padrão

MySQL e MariaDB utilizam a mesma porta para funcionamento 3306

Page 27: Programação Multiplataforma em Ambiente Web

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

Page 28: Programação Multiplataforma em Ambiente Web

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

Page 29: Programação Multiplataforma em Ambiente Web

Servidor Web (Debian) Reiniciar Acessar via SSH (Bitvise)

Page 30: Programação Multiplataforma em Ambiente Web

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'

Page 31: Programação Multiplataforma em Ambiente Web

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

Page 32: Programação Multiplataforma em Ambiente Web

Servidor Web (Debian) Ajustando o Timezone

apt-get install dbus -y

timedatectl set-timezone America/Sao_Paulo

Page 33: Programação Multiplataforma em Ambiente Web

Servidor Web (Debian) Adicionar URL de repositórios

echo "deb http://packages.dotdeb.org jessie all" | tee -a/etc/apt/sources.list.d/dotdeb.listecho "deb-src http://packages.dotdeb.org jessie all" | tee -a/etc/apt/sources.list.d/dotdeb.list

wget -qO - http://www.dotdeb.org/dotdeb.gpg | apt-key add -

Atualizar repositórios

apt-get update

Page 34: Programação Multiplataforma em Ambiente Web

Servidor Web (Debian) Instalação do PHP 7

apt-get install php7.0-cli php7.0-curl php7.0-dev php7.0-zip php7.0-gdphp7.0-xml php7.0-mysql php7.0-mcrypt php7.0-mbstring php7.0-opcachephp7.0-imap php7.0-mongodb php7.0-bz2 php7.0-xdebug php7.0-intl php7.0-xmlrpc php7.0-json php7.0-common php7.0-sqlite3 libapache2-mod-php7.0 -y

Page 35: Programação Multiplataforma em Ambiente Web

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 eexecutar 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

Page 36: Programação Multiplataforma em Ambiente Web

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

Page 37: Programação Multiplataforma em Ambiente Web

Instalação do Git Execute o comando apt-get install git -y

Page 38: Programação Multiplataforma em Ambiente Web

Instalação do Nodejs Execute o comando apt-get install nodejs -y

Page 39: Programação Multiplataforma em Ambiente Web

Instalação do NPM Execute o comando apt-get install npm -y

Instalação de pacotes npm

npm install bower -gnpm install grunt-cli -g

Page 40: Programação Multiplataforma em Ambiente Web

App

Page 41: Programação Multiplataforma em Ambiente Web

Coffe time