Servidor web

De Ubuntupedia
Ir para: navegação, pesquisa

Um servidor web é um computador com um conjunto de programas e cuja finalidade é alojar páginas e sites web. Nesta página explicaremos como instalar e configurar um servidor web em Ubuntu 14.04 com Apache, Php, MySQL, PhpMyAdmin...

Criar a máquina virtual

Primeiro terá que criar uma máquina virtual e atribuir-lhe um endereço IP fixo acessível a partir da Internet. O processo para faze-lo depende da empresa de hosting. Em muitas empresas este processo pode fazer-se em ambiente gráfico usando um navegador Internet.

Nalguns casos é também possível definir que portos terão que ficar abertos. Se assim é de momento só deve manter abertos o porto 80 (web) e o porto 22 (ssh).

Aceder à máquina virtual através de ssh

Para executar as operações seguintes acceda à máquina virtual a través de ssh utilizando o comando:

ssh ubuntu@12.12.12.12

Substituindo 12.12.12.12 pelo IP da máquina virtual. Insira a palavra passe e continue

Actualizar o software da máquina virtual

Executar os comandos:

sudo apt-get update
sudo apt-get upgrade

Configurar a firewall e impossibilitar o login do utilizador root através de SSH

Ter uma firewall activa e bem configurada é essencial para manter o seu servidor seguro. Ainda que a empresa de hosting proporcione uma firewall configurada a partir da consola gráfica, deve habilitar a firewall da máquina virtual.

Para instalar a firewall use o comando:

sudo apt-get install ufw

Depois configure o padrão:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Crie regras para permitir o tráfego por ssh, web e correio:

sudo ufw allow ssh
sudo ufw allow www
sudo ufw allow 25/tcp

Por fim active a firewall com o comando:

sudo ufw enable

PermitRootLogin no

Também é recomendável alterar as configurações do servidor ssh para impossibilitar que o utilizador root possa fazer login.

Para o fazer editar o ficheiro sshd_config,

sudo nano /etc/ssh/sshd_config

alterar o parâmetro PermitRootLogin

PermitRootLogin no

e reinicie o servidor de ssh com o comando

sudo service ssh restart

Alguns utilitários que deve instalar

Apesar de que não estão directamente relacionados com o servidor é recomendável instalar os programas seguintes:

Htop

É um monitor de processos. Para instalar utilizar o comando:

sudo apt-get install htop

e pare utilizar:

htop

Git

O git é o gestor de código e de versões mais conhecido actualmente. Certamente será necesario adiante.

Para instalar o git use os comandos:

sudo apt-get install git
git config --global user.name "O seu Nome"
git config --global user.email "o.seu@email.com"

Instalar LAMP básico

sudo tasksel install lamp-server

Em determinado momento ser-lhe-á pedido que defina uma palavra passe para o root de MySQL. Como sempre escolha uma palavra passe difícil de descobrir.

Para testar se o Apache está a funcionar com o navegador visite o ip da suma máquina virtual com o seu navegador: por exemplo: http://12.12.12.12

Se tudo estiver bem verá a página de demonstração do Apache no seu navegador. Com isto instalamos um sistema LAMP básico. Vamos agora optimizar o Apache.

Optimizar o Apache

Instalado o LAMP básico vamos optimizar o servidor Apache.

Permissões e estructura de ficheiros

Por agora vamos garantir que todos os utilizadores do servidor possam ler a pasta /var/www/

sudo chmod -R 755 /var/www/

Um novo site para o endereço IP

Vamos criar uma mensagem para quem visite o endereço IP directamente:

cd /var/www
sudo mkdir IP
cd IP
sudo mkdir public
cd public
sudo pico index.html

E no ficheiro index.html colocamos o seguinte:

<h1>Mensagem teste para o IP</h1>

Por fim há que dizer ao Apache que quando alguém aceder ao IP mostrar a mensagem anterior.

Primeiro editamos o ficheiro 000-default.conf com o comando:

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

e alteramos a linha com o parámetro DocumentRoot para a pasta com o ficheiro index.html anterior:

        DocumentRoot /var/www/IP/public/

Por fim reiniciamos o Apache:

sudo service apache2 restart

e testamos visitando o IP do site com o navegador.

Instalar mais alguns módulos Apache

Para melhorar o funcionamento do Apache instalemos alguns módulos bastante comuns:

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod expires
sudo service apache2 restart

Instalar CURL e mcrypt

sudo apt-get install php5-curl
sudo service apache2 restart
sudo php5enmod mcrypt
sudo service apache2 restart

Instalar o PhpMyAdmin

O PhpMyAdmin é um programa em PHP para gerir as bases de dados MySQL no seu servidor com um interface gráfico.

Para instalar:

sudo apt-get install phpmyadmin

Para aceder ao programa, no seu navegador visitar:

http://12.12.12.12/phpmyadmin (Substitua 12.12.12.12 pelo seu endereço IP )

Criar um primeiro site (estático)

Para prosseguir terá que possuir um nome de domínio (ou sub-domínio) e controlo sobre os seus DNS. Terá também que ter uma página web em html.

Configurar as DNS do domínio

Primeiro deverá modificar o A record do seu domínio que aponte para o endereço IP do seu servidor. A forma de executar esta tarefa depende do seu fornecedor de nomes de domínio (também conhecido como registar). É recomendável fazer experiencias com um nome de domínio sem importancia pois é fácil cometer erros.

Geralmente depois de modificar o A record será necessário esperar várias horas (ou até 1 dia) para que as DNS se propaguem.

Para testar se os DNS estão bem configurados usar o comando nslookup:

nslookup -q=a exemplo.com 8.8.8.8

(O número 8.8.8.8 é o endereço IP do servidor de DNS da Google e é opcional. Para usar o servidor de DNS padrão usar o comando)

nslookup -q=a exemplo.com

Ao executar um dos comandos acima a resposta deverá conter o endereço IP do seu servidor:

Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	exemplo.com
Address: 12.12.12.12

(obviamente exemplo.com e 12.12.12.12 são exemplos)

Criar a pasta para colocar os ficheiros do site

Vamos agora criar uma pasta onde iremos colocar os ficheiros do site:

cd /var/www
sudo mkdir estatico
cd estatico
sudo mkdir publico

E depois designar como donos da pasta o utilizador ubuntu e o grupo www-data

sudo chown -R ubuntu publico/
sudo chgrp -R www-data publico/

E os ficheiros da pasta com as permissões 755 (O utilizador pode ler e escrever e resto só pode ler)

sudo chmod -R 755 publico/

Neste momento a partir de uma aplicação de sFTP como o Filezilla o utilizador ubuntu poderá subir os ficheiros do site a esta pasta. Esta pasta está em /var/www/estatico/publico/

Activar o site

Agora é necessário activar o site. Primeiro copiamos o ficheiro padrão e depois alteramos o mesmo:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/exemplo.com.conf

sudo pico /etc/apache2/sites-available/exemplo.com.conf

Adicionamos ao ficheiro exemplo.com.conf o código com indicação do domínio que queremos

ServerName exemplo.com
ServerAlias www.exemplo.com

E alteramos a linha com a indicação da pasta onde estará esse domínio para

    DocumentRoot /var/www/estatico/publico/

Por fim indicamos ao servidor que este é o ficheiro de configuração do site:

cd /etc/apache2/sites-available/
sudo a2ensite exemplo.com.conf
sudo service apache2 reload

Neste momento se visitar o domínio com o seu navegador verá a indicação de que a pasta está vazia. Agrora é só subir ficheiros á pasta /var/www/estatico/publico/