Configurando vhosts baseados em porta em 15.04

0

Eu pulei e voltei pela web em busca de respostas, mas sem sorte. Eu estou tentando configurar vhosts baseados em porta e posso obter o padrão: porta 80 para trabalhar, mas meus outros vhosts retornam "Você não tem permissão para acessar / neste servidor".

000-default.conf

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/user/website

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

site1.conf

<VirtualHost *:8080>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/user/site1

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

site2.conf

<VirtualHost *:8081>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/user/site2

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

ports.conf

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80
Listen 8080
Listen 8081

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

o a2ensite foi executado em todos os três sites e o serviço de recarga do apache2 foi executado sem erros publicados.

Há uma página index.html simples em cada diretório para que eu saiba qual site está carregando. [ipaddress] ou [ipaddress]:80 mostra a página 000-default.conf index. [ipaddress]:8080 e [ipaddress]:8081 retornam com

You don't have permission to access / on this server.

Qualquer ajuda para um noob seria apreciada.

    
por T. Blough 21.03.2016 / 01:52

2 respostas

2

Para que o Apache exiba páginas / arquivos hospedados em um servidor virtual, você precisa ter certeza de que eles são de propriedade do usuário www-data , pois esse é o usuário no qual o Apache é executado. Certifique-se de fazer o seguinte:

sudo chown -R www-data: /path/to/virtual/server/document/root
sudo chmod 755 /path/to/virtual/server/document/root

para cada um dos servidores virtuais que você configurou.

Mas espere! Agora o meu usuário não pode modificar esses arquivos!

Correção fácil! Você só precisa adicionar seu usuário ao grupo www-data !

sudo usermod -a -G www-data youruser

Efetue logout e efetue login novamente para que as mudanças de grupo entrem em vigor e tudo ficará bem.

Ainda não está funcionando?

Adicione as seguintes linhas a /etc/apache2/apache2.conf :

<Directory /home/user>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Em seguida, execute sudo service apache2 reload e todos devem funcionar.

    
por user323419 22.03.2016 / 02:10
0

A solução foi adicionar:

    <Directory /home/user/siteN>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>

Para cada um dos arquivos .conf . Os arquivos podem ser de propriedade do usuário, eles não precisam ser de propriedade de www-data se o usuário tiver sido adicionado ao grupo www-data .

    
por T. Blough 24.03.2016 / 01:16