LAMP – Instalando o Apache, o Mysql e o PHP

O LAMP é uma combinação conhecida entre os usuários de Linux. O mix do Apache, com o Mysql e o PHP é uma das receitas mais utilizadas na construção de servidores WEB. Esta combinação nos permite construir um servidor com suporte aos protocolos HTTP e HTTPS, além, é claro, de permitir hospedar uma vasta gama de aplicações baseadas na consagrada linguagem PHP.

Este artigo, descreve como realizar a instalação e configuração básica deste componentes em uma máquina baseada no Ubuntu 14.04.

1. Preparando o ambiente

Antes de começarmos a instalar os pacotes, necessários para o funcionando dos aplicativos, é interessante atualizar todos os pacotes instalados e garantir que não há nenhuma instalação pendente.  Podemos utilizar os comandos abaixo para iniciarmos a preparação do ambiente.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -f

Algumas vezes, quando realizamos algumas instalações pode ocorrer algum evento que as interrompe  e pode deixar o sistema de gerência de pacotes do Linux bloqueado, para garantir que todas as instalações, anteriores, foram completadas  podemos utilizar o ultimo comando da lista acima. Caso haja alguma instalação pendente, o sistema tentará completa-la, desta forma podemos iniciar a nossa instalação a partir de um estado consistente.

2. Instalando os pacotes

Agora sim; podemos iniciar a instalação dos pacotes básicos do LAMP. O  comando listado abaixo é o primeiro que devemos executar. Ele realiza a instalação dos principais pacotes relacionados ao LAMP.

O símbolo  “ˆ” não é um erro de tipografia, ele deve ser mantido no final do comando, caso contrário os pacotes não serão selecionados e instalados.

sudo apt-get install lamp-server^

Durante o processo de instalação, será apresentada uma tela solicitando a senha para usuário root do MySQL. Esta combinação de usuário e senha serão utilizadas na administração do SGDB, logo utilize uma senha fácil de ser lembrada. Esta conta deve ser utilizada somente no processo de administração do Mysql, desta forma é fundamental a criação de contas individuais para cada aplicação e se for o caso para cada usuário.

LAMP007

Após fornecer a senha, que será utilizada pelo usuário root, o instalador solicita uma confirmação, basta repetir a senha fornecida anteriormente e pressionar “Enter“.

Para finalizar a instalação básica, devemos executar mais um comando, este proverá ao sistema alguns módulos que nem sempre são instalados por padrão.

Caso a senha para o usuário root do MySql ainda não tenha sido solicitada, com o comando abaixo ela provavelmente será.

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

Se o processo foi realizado corretamente, todos os serviços foram instalados e já devem estar ativos. Mas não custa nada verificar. O comando abaixo verifica se o Apache está rodando e aguardando por conexões:

sudo lsof -i | grep -i apache

A saída do comando deve ser semelhante à imagem abaixo:

LAMP006

O próximo comando verifica se o daemon do MySql está ativo.

 sudo lsof -i | grep -i mysqld 

A saída do comando deve ser semelhante à imagem abaixo:

LAMP005

Uma vez que as aplicações já foram instaladas e os daemons já estão ativos podemos iniciar o processo de configuração dos mesmos.

3. Ajustando o Apache

Definindo o Full Qualify Domain Name do servidor, ou simplesmente o nome do servidor

Há vários ajustes que podem ser realizados no Apache, o nosso primeiro ajuste será a definição do FQDN do servidor. Há duas formas de realizar este procedimento. Na primeira editamos o arquivo /etc/apache2/sites-available/000-default.conf

sudo nano /etc/apache2/sites-available/000-default.conf

E adicionamos a linha com o nome do servidor. Supondo que o nome do servidor fosse lrodrigo.sgs.lncc.br, deveríamos acrescentar:

 ServerName lrodrigo.tec.br 

Já a segunda forma de realizar o procedimento consiste em editar o arquivo /etc/apache2/conf-available/fqdn.conf:

sudo nano /etc/apache2/conf-available/fqdn.conf

E acrescentar a linha com a descrição do FQDN, assim como no exemplo anterior:

 ServerName lrodrigo.tec.br 

O ultimo passo consiste em ativar a nova configuração:

 sudo a2enconf fqdn 
 

4. Habilitando o PHP no Apache

Em algumas instalações, o PHP vem desabilitado no Apache, para garantir que o mesmo está ativo devemos executar o comando abaixo:

sudo a2enmod php5

Se o módulo já estiver ativo aparecerá a mensagem:

Module php5 already enabled

Caso o PHP não seja habilitado nenhuma aplicação baseada nesta linguagem será executada pelo Apache. Garantir o bom funcionamento do PHP é primordial nesta instalação.

5. Habilitando o suporte ao SSL (HTTPS)

Atualmente, grande parte dos servidores WEB fornecem acesso as páginas por meio dos protocolos HTTP e HTTPS. Por padrão, no Apache, somente o suporte ao HTTP está habilitado. Para habilitar o suporte ao HTTPs, no Apache, podemos utilizar os comandos abaixo:

sudo a2enmod ssl
sudo a2ensite  default-ssl
sudo service apache2 reload

Podemos verificar se o suporte ao HTTPS foi habilitado utilizando o comando:

sudo lsof -i | grep https

O qual deve produzir uma saída semelhante à:

LAMP004

6. Substituindo o arquivo  index.html padrão por uma verão em branco

A versão padrão do arquivo index.html fornece várias informações sobre o sistema onde ele foi instalado, para evitar que estas informações sejam acessadas, enquanto configuramos o novo servidor, podemos utilizar os comandos abaixo para remover a versão original e criar uma versão vazia do arquivo  index.html.

rm /var/www/html/index.html
touch /var/www/html/index.html

Após aplicar estes ajustes ao Apache devemos reinicia-lo, de forma que as configurações possam ser carregadas.

sudo service apache2 restart

7. Ajustando as configurações do Mysql

Na maior parte das instalações o daemon do Mysql só precisa estar liberado para acesso local. Podemos garantir que ele não receberá conexões externas, ao host, editando o arquivo  “/etc/mysql/my.cnf”:

sudo nano /etc/mysql/my.cnf

E ajustando a variável bind-address, para que ele assuma o valor 127.0.0.1

bind-address = 127.0.0.1

Em seguida devemos reiniciar o daemon do MySQL

sudo service mysql restart

E verifique se o mesmo está aceitando conexões locais

lsof -i | grep mysqld

Caso a configuração esteja funcionando, a saída do comando deve ser semelhante à:

LAMP003

Com isto finalizamos as configurações do MySQL.

8. Instalando e configurando Phpmyadmin

O Phpmyadmin é uma aplicação Web, baseada em PHP que permite administrar o MySQL e seus bancos de dados. Para realizar a instalação desta aplicação podemos utilizar o comando abaixo:

sudo apt-get install phpmyadmin

Será solicitada a senha do administrador do MySQL (root do MySQL) para criar um novo banco de dados.

LAMP002

Em seguida devemos fornecer uma nova senha, que será utilizada criar um usuário para o Phpmyadmin

LAMP001

Depois de instalado, podemos limitar o acesso ao Phpmyadmin. Devemos editar o arquivo /etc/phpmyadmin/apache.conf

sudo nano /etc/phpmyadmin/apache.conf

E para limitar o acesso da aplicação a um grupo de máquinas, na sessão <Directory /usr/share/phpmyadmin> devemos adicionar as linhas semelhante as apresentadas abaixo:

Order Deny,Allow
Deny from all
##
# Liberando  range de maquinas
##
Allow  from 192.168.254.0/24
Allow  from 192.168.250.0/24
Allow  from 192.168.238.0/24
Allow  from 192.168.20.0/24

##
# Liberando  uma maquina
##
Allow  from 192.168.250.76/32
Allow  from 192.168.20.171/24

##
# Liberando  acesso para todos os hosts
##
#allow from all

Para aplicar as configurações devemos reiniciar o Apache:

sudo service apache2 restart

9. Habilitando o modulo mcrypt do php

Algumas vezes, quando instalamos o Phpmyadmin, uma das dependências,  não é instalada ou o módulo não é carregado. Para garantir que o php5-mcrypt está instalado e ativo devemos executar os comandos abaixo:

sudo apt-get install php5-mcrypt
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart

Este módulo é utilizado pelo Phpmyadmin para aumentar o nível de segurança da aplicação.

10. Referencias: