Virtual Host no CentOS 7
Virtual Host permite ao administrador utilizar um servidor para hospedar múltiplos sites e domínios a partir de uma simples interface ou IP, através da utilização do mecanismo de correspondência. Isto é relevante para quem quer hospedar mais de um site em um único VPS (Virtual Private Server).
Introdução
Virtual Host permite ao administrador utilizar um servidor para hospedar múltiplos sites e domínios a partir de uma simples interface ou IP, através da utilização do mecanismo de correspondência. Isto é relevante para quem quer hospedar mais de um site em um único VPS (Virtual Private Server).
Cada domínio que esteja configurado irá direcionar o visitante para um diretório específico que mantém as informações daquele site, nunca indicando que o mesmo servidor também é responsável por outros sites. Este esquema é expansível sem qualquer limite de software desde que seu servidor possa suportar a carga.
# yum -y install httpd
2. Criando as pastas:
# mkdir -p /var/www/osias1.com/public_html
# mkdir -p /var/www/osias2.com/public_html
# mkdir -p /var/www/osias3.com/public_html
3. Ajustando as permissões nas pastas:
# chown -R apache:apache /var/www/osias1.com
# chown -R apache:apache /var/www/osias2.com
# chown -R apache:apache /var/www/osias3.com
4. Criando as pastas do Virtual Host:
# mkdir /etc/httpd/sites-available
# mkdir /etc/httpd/sites-enabled
5. Editando o arquivo "httpd.conf":
# vim /etc/httpd/conf/httpd.conf
Insira na última linha:
6. Criando o Virtual Host:
# vim /etc/httpd/sites-available/osias1.com.conf
# vim /etc/httpd/sites-available/osias2.com.conf
# vim /etc/httpd/sites-available/osias3.com.conf
7. Criando os "index.html":
# vim /var/www/osias1.com/public_html/index.html
# vim /var/www/osias2.com/public_html/index.html
# vim /var/www/osias3.com/public_html/index.html
8. Criando link simbólico:
# ln -s /etc/httpd/sites-available/osias1.com.conf /etc/httpd/sites-enabled/osias1.com.conf
# ln -s /etc/httpd/sites-available/osias2.com.conf /etc/httpd/sites-enabled/osias2.com.conf
# ln -s /etc/httpd/sites-available/osias3.com.conf /etc/httpd/sites-enabled/osias3.com.conf
9. Reiniciando o Apache:
# service httpd restart
Agora é só apontar os domínios no servidor de DNS, ou configure o acesso nas máquinas Windows no arquivo "C:\Windows\System32\drivers\etc\hosts" no Windows. Coloque as seguintes linhas:
Colocando senha em pasta com o Apache:
# mkdir /var/www/osias1.com/public_html/admin
# mkdir /var/www/osias2.com/public_html/admin
# mkdir /var/www/osias3.com/public_html/admin
# htpasswd -c /var/www/osias1.com/public_html/admin/.htpasswd osias1
# htpasswd -c /var/www/osias2.com/public_html/admin/.htpasswd osias2
# htpasswd -c /var/www/osias3.com/public_html/admin/.htpasswd osias2
Edite:
# vim /etc/httpd/sites-available/osias1.com.conf
# vim /etc/httpd/sites-available/osias2.com.conf
# vim /etc/httpd/sites-available/osias3.com.conf
Reiniciando o Apache:
# service httpd restart
Cada domínio que esteja configurado irá direcionar o visitante para um diretório específico que mantém as informações daquele site, nunca indicando que o mesmo servidor também é responsável por outros sites. Este esquema é expansível sem qualquer limite de software desde que seu servidor possa suportar a carga.
Passos
1. Instalando o Apache:# yum -y install httpd
2. Criando as pastas:
# mkdir -p /var/www/osias1.com/public_html
# mkdir -p /var/www/osias2.com/public_html
# mkdir -p /var/www/osias3.com/public_html
3. Ajustando as permissões nas pastas:
# chown -R apache:apache /var/www/osias1.com
# chown -R apache:apache /var/www/osias2.com
# chown -R apache:apache /var/www/osias3.com
4. Criando as pastas do Virtual Host:
# mkdir /etc/httpd/sites-available
# mkdir /etc/httpd/sites-enabled
5. Editando o arquivo "httpd.conf":
# vim /etc/httpd/conf/httpd.conf
Insira na última linha:
IncludeOptional sites-enabled/*.conf
6. Criando o Virtual Host:
# vim /etc/httpd/sites-available/osias1.com.conf
<VirtualHost *:80>
ServerName www.osias1.com
ServerAlias osias1.com
DocumentRoot /var/www/osias1.com/public_html
</VirtualHost>
ServerName www.osias1.com
ServerAlias osias1.com
DocumentRoot /var/www/osias1.com/public_html
</VirtualHost>
# vim /etc/httpd/sites-available/osias2.com.conf
<VirtualHost *:80>
ServerName www.osias2.com
ServerAlias osias3.com
DocumentRoot /var/www/osias2.com/public_html
</VirtualHost>
ServerName www.osias2.com
ServerAlias osias3.com
DocumentRoot /var/www/osias2.com/public_html
</VirtualHost>
# vim /etc/httpd/sites-available/osias3.com.conf
<VirtualHost *:80>
ServerName www.osias3.com
ServerAlias osias3.com
DocumentRoot /var/www/osias3.com/public_html
</VirtualHost>
ServerName www.osias3.com
ServerAlias osias3.com
DocumentRoot /var/www/osias3.com/public_html
</VirtualHost>
7. Criando os "index.html":
# vim /var/www/osias1.com/public_html/index.html
<h1>osias1</h1>
# vim /var/www/osias2.com/public_html/index.html
<h1>osias2</h1>
# vim /var/www/osias3.com/public_html/index.html
<h1>osias3</h1>
8. Criando link simbólico:
# ln -s /etc/httpd/sites-available/osias1.com.conf /etc/httpd/sites-enabled/osias1.com.conf
# ln -s /etc/httpd/sites-available/osias2.com.conf /etc/httpd/sites-enabled/osias2.com.conf
# ln -s /etc/httpd/sites-available/osias3.com.conf /etc/httpd/sites-enabled/osias3.com.conf
9. Reiniciando o Apache:
# service httpd restart
Agora é só apontar os domínios no servidor de DNS, ou configure o acesso nas máquinas Windows no arquivo "C:\Windows\System32\drivers\etc\hosts" no Windows. Coloque as seguintes linhas:
Seu ip osias1.com
Seu ip osias2.com
Seu ip osias3.com
Seu ip osias2.com
Seu ip osias3.com
Colocando senha em pasta com o Apache:
# mkdir /var/www/osias1.com/public_html/admin
# mkdir /var/www/osias2.com/public_html/admin
# mkdir /var/www/osias3.com/public_html/admin
# htpasswd -c /var/www/osias1.com/public_html/admin/.htpasswd osias1
# htpasswd -c /var/www/osias2.com/public_html/admin/.htpasswd osias2
# htpasswd -c /var/www/osias3.com/public_html/admin/.htpasswd osias2
Edite:
# vim /etc/httpd/sites-available/osias1.com.conf
<VirtualHost *:80>
ServerName www.osias1.com
ServerAlias osias1.com
DocumentRoot /var/www/osias1/public_html
<directory "/var/www/osias1.com/public_html/admin">
AllowOverride None
Options Indexes MultiViews
Order allow,deny
Allow from all
AuthType Basic
AuthName "Acesso Restrito: "
AuthUserFile /var/www/osias1.com/public_html/admin/.htpasswd"
Require valid-user
</directory>
</VirtualHost>
ServerName www.osias1.com
ServerAlias osias1.com
DocumentRoot /var/www/osias1/public_html
<directory "/var/www/osias1.com/public_html/admin">
AllowOverride None
Options Indexes MultiViews
Order allow,deny
Allow from all
AuthType Basic
AuthName "Acesso Restrito: "
AuthUserFile /var/www/osias1.com/public_html/admin/.htpasswd"
Require valid-user
</directory>
</VirtualHost>
# vim /etc/httpd/sites-available/osias2.com.conf
<VirtualHost *:80>
ServerName www.osias2.com
ServerAlias osias2.com
DocumentRoot /var/www/osias2/public_html
<directory "/var/www/osias2.com/public_html/admin">
AllowOverride None
Options Indexes MultiViews
Order allow,deny
Allow from all
AuthType Basic
AuthName "Acesso Restrito: "
AuthUserFile /var/www/osias2.com/public_html/admin/.htpasswd"
Require valid-user
</directory>
</VirtualHost>
ServerName www.osias2.com
ServerAlias osias2.com
DocumentRoot /var/www/osias2/public_html
<directory "/var/www/osias2.com/public_html/admin">
AllowOverride None
Options Indexes MultiViews
Order allow,deny
Allow from all
AuthType Basic
AuthName "Acesso Restrito: "
AuthUserFile /var/www/osias2.com/public_html/admin/.htpasswd"
Require valid-user
</directory>
</VirtualHost>
# vim /etc/httpd/sites-available/osias3.com.conf
<VirtualHost *:80>
ServerName www.osias3.com
ServerAlias osias3.com
DocumentRoot /var/www/osias3/public_html
<directory "/var/www/osias3.com/public_html/admin">
AllowOverride None
Options Indexes MultiViews
Order allow,deny
Allow from all
AuthType Basic
AuthName "Acesso Restrito: "
AuthUserFile /var/www/osias3.com/public_html/admin/.htpasswd"
Require valid-user
</directory>
</VirtualHost>
ServerName www.osias3.com
ServerAlias osias3.com
DocumentRoot /var/www/osias3/public_html
<directory "/var/www/osias3.com/public_html/admin">
AllowOverride None
Options Indexes MultiViews
Order allow,deny
Allow from all
AuthType Basic
AuthName "Acesso Restrito: "
AuthUserFile /var/www/osias3.com/public_html/admin/.htpasswd"
Require valid-user
</directory>
</VirtualHost>
Reiniciando o Apache:
# service httpd restart
Bom criou a estrutura do Debian (sites-enabled e sites-avaiable) dentro do CentOS, não concordo com esta estrutura.
Fora ter que administra-la via links simbólicos (O Debian ainda fez mais, criou ferramentas para isto [a2ensite e a2dissite]), acho que mais confunde que ajuda, fora chamar o Httpd de Apache2, estes nomes deveriam ser padronizados em todas as distribuições, isto ajuda um administrador que não tem vivência numa determinada distribuição.
Uma forma mais fácil é só criar um arquivo vhosts.conf em /etc/httpd/conf.d com o seguinte conteúdo:
<VirtualHost *:80>
ServerName usuário (site)
ServerAlias www.usuário
ServerAdmin webmaster@localhost
DocumentRoot /var/www/usuário/html ou var/www/usuário/public_html
ErrorLog /var/www/usuário/log/error.log
CustomLog /var/www/usuário/log/access.log combined
</VirtualHost>
Criar a pasta log com o comando:
mkdir /var/www/usuário/log
Reiniciar o Apache com o comando:
service httpd restart
Ou dentro do /etc/httpd/conf.d ter um arquivo .conf para cada site
https://github.com/paulo-correia/Linux_Apache-Http/blob/master/VHOSTS.md