Configurando vários sites no mesmo servidor
À prática de servir vários sites a partir de um único servidor web, damos o nome de Virtual Host ou Virtual Server. O processo pode ser feito a partir de IP\’s diferentes (IP\’s diferentes, servindo sites diferentes em um mesmo servidor) ou por nomes de domínios (um único IP com vários domínios em um único servidor). No nosso caso, usarei o servidor web Nginx e usarei a técnica por nomes de domínios.
Objetivo:
- Configurar dois sites no mesmo servidor:
- fontes.aptans.com: Site WordPress
- jeduc.com.br: Site moodle
Requisitos:
- Ter um domínio com o DNS apontando para o seu servidor;
- Ter os softwares instalados no servidor:
- Nginx
- Php-fpm
Execução
1º Passo: Preparando o ambiente
1º. Crie os diretórios para os sites
sudo mkdir -p /var/www/fontes.aptans.com/html
sudo mkdir -p /var/www/jeduc.com.br/html
2º. Coloque os arquivos do site dentro das pastas HTML e altere as permissões dos diretórios.
sudo chown -R www-data:www-data /var/www/fontes.aptans.com/html
sudo chown -R www-data:www-data /var/www/jeduc.com.br/html
Caso você não possua os arquivos do site, crie um arquivo index.html dentro do diretório HTML e insira esse código para fins de teste
<html>
<head>
<title>www.example.com</title>
</head>
<body>
<h1>Success: You Have Set Up a Virtual Host</h1>
</body>
</html>
Ao final desses passos a estrutura será essa:
2º Passo: Criando vhost no Nginx
Agora que o ambiente já está pronto, podemos fazedr as configurações no servidor web.
1º Copie o arquivo de configuração padrão
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/fontes.aptans.com
2º Abra o arquivo de configuração que foi criado
sudo nano /etc/nginx/sites-available/fontes.aptans.com
3º Altere o conteúdo do arquivo para algo como o apresentado abaixo
- Observações importantes:
- Meu site é em PHP e meu servidor usa a versão 7.4 do php-fpm. Se for outra versão basta alterar a versão do php-fpm na linha 14;
- Altere a opção "server_name" com o seu domínio e a opção root com a estrutura que você criou acima.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/fontes.aptans.com/html;
# Adicione index.php na lista se seu site usa PHP
index index.php index.html index.htm index.nginx-debian.html;
server_name fontes.aptans.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# Se sua versão não é o php7.4-fpm, troque a versão abaixo:
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
4º Remova o arquivo default
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/sites-available/default
5º Crie a configuração para outro domínio e edite os mesmo campos que editou acima
sudo cp /etc/nginx/sites-available/fontes.aptans.com /etc/nginx/sites-available/jeduc.com.br
3º Passo: Para finalizar
1º Faça um link dos arquivos de configuração
sudo ln -s /etc/nginx/sites-available/fontes.aptans.com /etc/nginx/sites-available/
2º Reinicie o Nginx
systemctl restart nginx.service
4º Passo: Vendo seu Virtual Host em ação
Uma vez que você terminou suas configurações, você poderá ver seu virtual host online. Digite seu domínio ou IP no seu navegador e pronto!