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.
Tabela de Conteúdo
- 1. Preparando o ambiente
- 2. Instalando os pacotes
- 3. Ajustando o Apache
- 4. Habilitando o PHP no Apache
- 5. Habilitando o suporte ao SSL (HTTPS)
- 6. Substituindo o arquivo index.html padrão por uma verão em branco
- 7. Ajustando as configurações do Mysql
- 8. Instalando e configurando Phpmyadmin
- 9. Habilitando o modulo mcrypt do php
- 10. Referencias:
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.
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:
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:
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 à:
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 à:
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.
Em seguida devemos fornecer uma nova senha, que será utilizada criar um usuário para o Phpmyadmin
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.