Como configurar hosts virtuais para apontar para dois diretórios diferentes

1

Eu tenho um domínio e um sub-domínio que devem apontar para duas pastas diferentes, eu tentei essa ajuda, mas ainda tenho problemas. ( link )

www.wasamar.com.ng | wasamar.com.ng - > / var / www / html / wasamar / public

este é o arquivo host virtual (/etc/apache2/sites-available/wasamar.com.ng.conf)

ServerName wasamar.com.ng

ServerAlias www.wasamar.com.ng

ServerAdmin [email protected]
DocumentRoot /var/www/html/wasamar/public

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf

www.ts.wasamar.com.ng | ts.wasamar.com.ng - > / var / www / html / wasamar_ts / public

este é o arquivo host virtual (/etc/apache2/sites-available/ts.wasamar.com.ng.conf)

ServerName ts.wasamar.com.ng

ServerAlias www.ts.wasamar.com.ng

ServerAdmin [email protected]
DocumentRoot /var/www/html/wasamar_ts/public/

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf

O pastebin do arquivo apache.conf link

Como faço para isso?

    
por udemethegrtman 21.01.2017 / 04:17

1 resposta

0

Pelo que vejo, existem alguns problemas e podem ser mais. Para iniciantes, enquanto você disse ao Apache onde encontrar a raiz para cada servidor, você não deu permissão ao Apache para "servir" arquivos daqueles diretórios. Nem você disse ao Apache que estes são hosts virtuais. Há outras coisas que você precisa fazer com os arquivos conf do host virtual, mas no mínimo você precisa dar ao Apache permissão para servidor dos arquivos no diretório, e você precisa dizer ao Apache que essa é uma definição de host virtual. Modificado apenas para este mínimo, os dois arquivos são assim:

Este é o novo arquivo host virtual (/etc/apache2/sites-available/wasamar.com.ng.conf):

<VirtualHost *:80>

ServerName wasamar.com.ng

ServerAlias www.wasamar.com.ng

ServerAdmin [email protected]
DocumentRoot /var/www/html/wasamar/public

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf

# At least you need to make the folder accessable for serving by the server.
# Versions of Apache, and modules installed can make a difference in what's inside
# the Directory directive. But as an example:
<Directory "/var/www/html/wasamar_ts/public">
        <IfModule mod_authz_core.c>
            Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Allow from all
        </IfModule>
</Directory>
</VirtualHost>

Este é o novo arquivo host virtual (/etc/apache2/sites-available/ts.wasamar.com.ng.conf):

<VirtualHost *:80>

ServerName ts.wasamar.com.ng

ServerAlias www.ts.wasamar.com.ng

ServerAdmin [email protected]
DocumentRoot /var/www/html/wasamar_ts/public/

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf

# At least you need to make the folder accessable for serving by the server.
# Versions of Apache, and modules installed can make a difference in what's inside
# the Directory directive. But as an example:
<Directory "/var/www/html/wasamar_ts/public">
        <IfModule mod_authz_core.c>
            Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Allow from all
        </IfModule>
</Directory>
</VirtualHost>

Em ambos os casos, a alteração está adicionando a primeira linha e as últimas dez linhas. Dentro da diretiva, você provavelmente precisará de outras coisas, como Options e AllowOverride , por exemplo.

Para que tudo isso funcione, você também precisa de algo mais em seu arquivo conf principal, provavelmente httpd.conf em algum diretório, provavelmente /etc/apache2/ . O que é necessário é uma instrução para incluir esses novos arquivos na configuração. na sua forma mais simples, com base nos caminhos dados, ficaria assim:

Include sites-available/wasamar.com.ng.conf
Include sites-available/ts.wasamar.com.ng.conf

Se você incluir apenas hosts virtuais no diretório disponível para sites, poderá usar

Include sites-available/*.conf

Isso incluirá qualquer arquivo .conf colocado ali, então você pode criar hosts adicionais conforme necessário e não precisar adicionar uma linha ao httpd.conf sempre que fizer isso.

Você pode aprender muito e passar dias lendo e relendo a documentação do Apache on-line ou provavelmente incluído com sua instalação do Apache localmente. Pode parecer muito, mas é tempo bem gasto.

    
por 21.01.2017 / 05:11