1 Aula 09 – Servidor LAMP – Linux-Apache-MySQL

Propaganda
1
Aula 09 – Servidor LAMP – Linux-Apache-MySQL-PHP
9.1 Definição
LAMP consiste no quarteto:
–
Linux (Sistema Operacional);
–
Apache (Servidor Web);
–
MySQL (Servidor de Banco de Dados);
–
e PHP (Ferramenta de Programação Web).
9.2 MySQL
A instalação do MySQL trata-se de um procedimento relativamente fácil, já que iremos realizá-lo
utilizando so repositórios do Linux.
# apt-get install mysql-server mysql-admin mysql-client mysql-common
Após a instalação deve-se reiniciar o serviço do MySQL:
# /etc/init.d/mysql restart
9.2.1 Configurações do MySQL
- mudar a senha do usuário root:
# mysqladmin -u root password 'password_user_root'
- criando um banco de dados no servidor mysql:
# mysqladmin --user=root -p create teste
- criando e dando permissões de acesso ao banco de dados ao usuário usertest:
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 102
Server version: 5.0.67-0ubuntu6 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> GRANT ALL ON teste.* TO teste IDENTIFIED BY 'senha_usertest'; flush privileges;
mysql> show databases;
show databases;
+--------------------+
| Database
+--------------------+
|
2
| information_schema |
| cacti
| mysql
|
|
+--------------------+
3 rows in set (0.00 sec)
mysql> use teste;
mysql> show tables;
9.3 PHP
O PHP, que encontra-se na sua versão 5, trata-se da suíte de programação mais utilizada atulamente
no mundo para programação voltada à internet, já que possibilita uma perfeita integração com os principais
servidores de bancos de dado, como o MySQL, PostgreSQL, entre outros mais e também com os principais
servidores Web (http) utilizados no mundo, como o Apache e o IIS da Microsoft.
A exemplo do MySQL, o PHP também pode facilmente ser instalado via repositório.
# apt-get install php5 php5-common php5-cgi php5-cli php5-mysql php5-gd php5-snmp
A seguir, quando efetuarmos a instalação do Apache, iremos realizar o teste do PHP.
9.4 Apache
O Apache atualmente encontra-se em sua versão 2, e segundo a Gartner Groups (2006), trata-se do
servidor Web (http) mais utlizado no mundo, cerca de mais de 70%.
A sua característica de integração com praticamente todas as suites de programação Web, bancos de
dados e também plataformas (Unix, Linux, Microsoft, MacOS), e principalmente a sua licença livre (Licença
Apache) o tornaram tão porpular que é praticamente uma unanimidade, principalmente em ambientes
computacionais heterogêneos.
A sua intalação, a exemplo das outras ferramentas LAMP, também é extremamente facilitada pois
pode ser efetuada via repositório.
# apt-get install apache2 libapache2-mod-php5
A seguir deve-se reinciar o servidor web Apache:
# /etc/init.d/apache2 restart
Agora deve-se verificar o funcionamento do servidor web Apache, digitando-se no navegado o
endereço: localhost.
3
Figura 1 – Funcionamento do servidor web Apache.
Agora deve-se testar o funcionamento do PHP, efetuando-se a criação do arquivo abaixo, cx.hamado
index.php, e sua inserção no diretório /var/www, que é o diretório padrão de armazenamento de págias web
do Apache:
<html>
<body>
<?
phpinfo();
?>
</body>
</html>
A seguir deve-s e inserir o endereço localhost/index.php na bara de endereços do navegador.
Figura 2 - Funcionamento do PHP.
A exibição correta desta página demonstra que o PHP está devidamente instalado, configurado e
executando, ou seja, pronto para exibir páginas php junto ao banco de dados MySQL, no nosso caso, em
cima do servidor web Apache.
9.4.1 Apache com certificação SSL (https)
O uso do LAMP (Linux, Apache, MySQL e PHP) vem se tornando cada vez mais comum devido a
vários fatores, mas principalmente por sua estabilidade e seu baixo custo. Outra ferramenta que é muito
utilizada é o PhpMyAdmin. Através dele é possível acessar sua base de dados MySQL a partir de qualquer
4
host na internet.
Quando conectamos ao PhpMyAdmin devemos nos identificar junto ao MySQL, para isso devemos
fornecer nossos dados de usuários. Neste momento cruzamos o dedo para que ninguém esteja
interceptando os pacotes, pois estes dados são transmitidos em texto claro do host para o servidor.
9.4.2 Instalação
Instalação de pacotes no Debian não tem nenhum segredo, basta utilizar o apt-get.
A
Apache2:
# apt-get -y install apache2
PHP5 + Módulo Apache:
P
# apt-get -y install libapache2-mod-php5 php5-cli php5-common php5-cgi
M
MySQL5:
# apt-get -y install mysql-server mysql-server-5
Antes de continuar devemos configurar a senha de root para o MySQL, da seguinte forma:
# mysqladmin -u root -p password sua_senha
Será pedida a senha anterior, por padrão o MySQL é instalado sem senha, neste caso tecle ENTER.
PhpMyAdmin:
# apt-get -y install phpmyadmin
O
OpenSSL:
# apt-get -y install openssl ssl-cert
Pacotes instalados e funcionando, caso queira verificar basta digitar no browser o endereço da sua
máquina, ex: http://localhost/, você vai visualizar a seguinte frase:
m
IIt Works!
Para testar o MySQL e o PHP digite: localhost/phpmyadmin ou IP_do_host/phpmyadmin
9.4.3 Configuração
Com tudo funcionando, devemos agora criar um certificado SSL, para isso utilize o comando:
# openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout
/
/etc/apache2/apache.pem
Ao executar esse comando as seguintes perguntas lhe serão feitas:
Country Name (2 letter code) [AU]: BR
State or Province Name (full name) [Some-State]: MS
5
Locality Name (eg, city) [ ]: Campo Grande
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Nome_empresa
Organizational Unit Name (eg, section) []: Nome_departamento
Common Name (eg, YOUR name) []: localhost
Email Address []: seu_e-mail@seu_dominio.com
E
Responda as perguntas conforme sua necessidade. Atente-se para o campo Common Name, nele
você deve digitar o domínio ou o nome do host onde seu certificado vai ser instalado.
Feito isso, dê permissão de leitura e escrita apenas pro root no arquivo /etc/apache2/apache.pem:
# chmod 600 /etc/apache2/apache.pem
Edite o arquivo /etc/apache2/ports.conf e adicione a seguinte linha:
E
Listen 443
L
Habilite o suporte a SSL no apache da seguinte forma:
H
# a2enmod ssl
Edite o arquivo /etc/apache2/sites-avaliable/default e deixe-o da seguinte forma:
NameVirtualHost *:80
NameVirtualHost *:443
N
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www-ssl/
<Directory />
Options FollowSymLinks
AllowOverride None
6
</Directory>
<Directory /var/www-ssl/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
SSLEngine on
ServerSignature on
SSLCertificateFile /etc/apache2/apache.pem
<
</VirtualHost>
Salve e feche o arquivo. Agora crie a pasta /var/www-ssl:
S
# mkdir /var/www-ssl
Mova o link simbólico /var/www/phpmyadmin para /var/www-ssl/phpmyadmin:
# mv /var/www/phpmyadmin /var/www-ssl/phpmyadmin
Reinicie o apache:
R
# /etc/init.d/apache2 restart
Verifique se tudo ocorreu corretamente, digite no browser: https://localhost/phpmyadmin
Você notará que será alertado quando à não confiabilidade da CA (Autoridade Certificadora), isso se
dá pois o certificado que você gerou não está ligado hierarquicamente a CA raiz, para que você possa ter
um certificado ligado a raiz, é necessário comprar um certificado. Existem muitos CAs, inclusive uma
brasileira muito conhecida, a Certising (www.certising.com.br).
b
Obs1: qualquer outra aplicação que você queira que seja criptografada, basta colocá-la no diretório
/var/www-ssl/
Obs2: caso tentar acessar o site com https e falhar a apresentação da página web, preste atenção na
mensagem que diz que o usuário terá de aceitar o certificado gerado por aquela página, acessando este
link, é só aceitar o certificado e o site estará disponível permanentemente (caso não seja apagado do
cache).
Download