O documento discute conceitos relacionados ao desenvolvimento web em Linux, incluindo GNU/Linux, distribuições como Ubuntu, servidores web Apache, bancos de dados MySQL, linguagem de programação PHP e projetos de exemplo utilizando essas tecnologias.
2. 22
GNU/LinuxGNU/Linux
● Junção do kernel linux com aplicativos GNU;
● Originário do UNIX;
● 1984 GNU Richard Stallman;
● 1985 GPL (GNU General Public License);
● 1991 kernel linux – Linus Torvalds;
● 1992 integração GNU + kernel linux.
4. 44
GNU/Linux – Ubuntu 14.04GNU/Linux – Ubuntu 14.04
● Ubuntu 4.10: primeira versão do Ubuntu, lançada em 20
de outubro de 2004;
● Distribuição originária do Debian;
● Empacotamento .deb;
● Apt-get - APT (Advanced Packaging Tool);
● Distro mais amigável;
5. 55
ApacheApache
● Base o servidor web NCSA 1.3;
● 1995 primeira versão 0.6.2;
● Suporte a scripts cgi usando linguagens como Perl, PHP,
Shell Script, ASP;
● Mantido por Apache Software Foundation;
● Ultima versão estável 2.4.10;
● Multiplataforma.
6. 66
ApacheApache
Funcionado na estrutura cliente-servidor, o servidor web
Apache, recebe as requisições do cliente (browser) e
responde ao cliente em codificação HTML. O servidor web
interpreta a codificação HTML e não interpreta o código PHP.
Ao receber uma solicitação .php o servidor aciona o
Interpretador PHP que processa as solicitações do código PHP
tais como, acessar banco de dados, sistema de arquivos,
acesso ao servidor de correio eletrônico etc e retorna para o
Apache em formato HTML e ele manda para o browser. O
browser lê o código HTML e monta a página web para o
usuário.
8. 88
Apache - InstalaçãoApache - Instalação
No terminal digite:
sudo su
apt-get update
apt-get install apache2
acesse 127.0.0.1 para ver o resultado
9. 99
MySQLMySQL
● SGBD que utiliza a linguagem SQL
● 1994 Inicio do projeto - David Axmark, Allan Larsson e
Michael "Monty" Widenius;
● 2008 MySQL AB adquirida pela Sun Microsystems;
● 2009 Oracle adquire a Sun Microsystems;
● Usado na Nasa, Hp, Bradesco, U.S Army;
● Ultima versão estável 5.6.12.
10. 1010
MySQL - InstalaçãoMySQL - Instalação
No terminal digite:
apt-get install mysql-server libapache2-mod-auth-mysql
php5-mysql
11. 1111
MySQL - InstalaçãoMySQL - Instalação
No terminal digite:
sudo mysql_install_db
mysql_secure_installation
Isto irá remover alguns usuários da amostra e bancos de
dados, desativa o login do root remotos, e carregar as novas
regras para o MySQL imediatamente a respeito das mudanças
que fizemos.
12. 1212
PHPPHP
● 1995 Criado por Rasmus Lerdorf;
● Estruturado e Orientação a Objetos;
● Portabilidade;
● Tipagem dinâmica;
● Open-source;
● Server-side;
● Última versão estável php-5.6.1;
● Mantido por The PHP Group.
14. 1414
PHP - InstalaçãoPHP - Instalação
Para testar a configuração pode podemos criar um simples
info.php com o seguinte conteúdo:
<?php
phpinfo();
?>
E aloque no diretório /var/www/html
15. 1515
VhostVhost
Virtual Host é a capacidade de hospedar mais do que um
web site numa única máquina, com um endereço IP ou
mais.
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html
</VirtualHost>
16. 1616
HostsHosts
● O arquivo hosts é responsável pela localização por
NOMES entre IP's;
● Fica localizado em /etc/hosts;
● Um DNS Local.
sudo nano /etc/hosts
127.0.0.1 localhost
17. 1717
Projeto – Livro de VisitasProjeto – Livro de Visitas
Projeto livro de visitas que servirá como exemplificação de
alguns conceitos web
● Programação Orientada a Objetos (POO – OOP);
● Banco de Dados MySQL;
● Javascript e jQuery.
18. 1818
Projeto – RequisitosProjeto – Requisitos
O projeto consiste na elaboração de um pequeno sistema de livro
de visitas no qual os visitantes possam enviar comentários. O
sistema deverá conter as seguintes características:
● Necessariamente ser feito em uma ou mais Classes (POO);
Utilizar um Banco de Dados MySQL;
● Os comentários deverão ser inseridos via Ajax utilizando
jQuery atualizando automaticamente a lista e deverão conter
os seguintes campos obrigatórios: nome, email e website;
● Um sistema de cadastro com login e senha para que o usuário
não tenha que preencher os campos manualmente.
19. 1919
Projeto Estrutura no servidorProjeto Estrutura no servidor
Definindo o diretório root da aplicação:
● No diretório /var/www/html crie o diretório root de sua
aplicação;
Abra o terminal e digite:
cd /var/www/html
sudo mkdir livro
20. 2020
Projeto Criando VhostProjeto Criando Vhost
Crie um vhost para que você possa acessar sua aplicação através
de uma url.
Acesse /etc/apache2/sites-available/ crie um arquivo
example.conf para o projeto, faça com base no arquivo 000-
default.conf
Abra o terminal e digite:
sudo cp /etc/apache2/sites-available/000-default.conf
/etc/apache2/sites-available/example.conf
Isso irá criar uma cópia de um vhost padrão bastando apenas
editar alguns parâmetros de configuração.
21. 2121
Projeto Editando VhostProjeto Editando Vhost
No nosso exemplo ficaria configurado desta maneira:
<VirtualHost *:80>
ServerAdmin admin@livro.com
ServerName livro.com.br
ServerAlias www.livro.com.br
DocumentRoot /var/www/html/livro
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
22. 2222
Projeto Ativando VhostProjeto Ativando Vhost
Ativando o vhost e reiniciando o apache:
sudo a2ensite example.conf
sudo service apache2 restart
23. 2323
Projeto Editando hostProjeto Editando host
Para que nosso servidor consiga resolver o endereço
www.livro.com.br é necessário adicionar essa informação no
arquivo hosts:
Sudo vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 livro.com.br
127.0.1.1 www.livro.com.br
Agora ao acessar www.livro.com.br o servidor entregará o
conteúdo alocado no diretório /var/www/html/livro