Apache2 www1 em vez de www

0

Por isso, criei um site muito simples contendo apenas index.html com o texto 'welcome'. o host virtual deste site é o seguinte:

ServerAdmin [email protected]
ServerName name.com
ServerAlias www.name.com
DocumentRoot /var/www/name.com/public_html

Isso funciona muito bem. Então eu faço outro site que eu quero ser www1.name.com com o texto www1 .

Eu praticamente faço o mesmo, eu faço uma pasta /var/www1/name.com/public_html com index.html nela Eu copio o arquivo anterior e mudo

ServerAlias www1.name.com
DocumentRoot /var/www1/name.com/public_html

mas quando vou a www1.name.com, recebo o texto 'Welcome' e não 'www1'. Alguém pode me ajudar com isso?

E sim, eu sempre faço a2ensite/a2dissite e service apache2 restart

    
por Wouter Vandenputte 23.08.2017 / 15:11

2 respostas

1

Assumindo que as tags VirtualHost estão bem. Provavelmente, é porque o ServerAlias não é usado se não houver ServerName presente. Tente novamente depois de alterar ServerAlias para ServerName no segundo VirtualHost .

Um bom lembrete é definir ServerName para o primeiro nome e usar ServerAlias para quaisquer aliases adicionais.

Observe, no entanto, se você vai usar outro diretório (fora do / var / www) que as permissões estão definidas corretamente. Além disso, se SELinux for usado, o contexto apropriado precisará ser definido para esse diretório. Mas isso não é um problema, a menos que você ative o SELinux .

    
por Serrie 23.08.2017 / 15:25
0

Esclarecimento de alguns pontos básicos:

  • Dentro do Ubuntu, /var/www é o diretório padrão onde o conteúdo da web do usuário deve ser armazenado. Isso é definido no arquivo de configuração global do Apache: /etc/apache2/apache2.conf , pelas diretivas:

    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
    
  • Não há um link direto entre o nome do VirtualHost e seu nome de diretório DocumentRoot .

  • A diretiva ServerName define o nome do servidor geral ou o nome de determinado VirtualHost quando ele é colocado em sua definição - entre as tags <VirtualHost> .

  • Com uma visão do gerenciamento efetivo de VHs, geralmente, a definição de cada VirtualHost individual é colocada em um arquivo de configuração separado.

  • A diretiva ServerName é necessária para cada VirtualHost.

  • A diretiva ServerAlias não é necessária. Podemos pensar nisso como lugar, onde podemos digitar um ou mais sinônimos de ServerName .

De acordo com esses pontos, minha sugestão é a seguinte:

  • Crie dois diretórios separados, localizados em /var/www , como o exemplo da pergunta que eles poderiam ser:

    sudo mkdir -p /var/www/www.name.com/public_html
    sudo mkdir -p /var/www/www1.name.com/public_html
    
  • Crie um arquivo de configuração para o primeiro VirtualHost:

    sudo nano /etc/apache2/sites-available/www.name.com.conf
    

    Seu conteúdo deve ser algo como:

    <VirtualHost *:80>
        ServerName www.name.com
        ServerAlias name.com 
        ServerAdmin [email protected]
        DocumentRoot /var/www/www.name.com/public_html
        <Directory /var/www/www.name.com/public_html>
            Options None FollowSymLinks
            # Enable .htaccess Overrides:
            AllowOverride All
            DirectoryIndex index.html index.php
            Order allow,deny
            Allow from all
            Require all granted
        </Directory>
    </VirtualHost>
    
  • Crie um arquivo de configuração para o segundo VirtualHost:

    sudo nano /etc/apache2/sites-available/www1.name.com.conf
    

    Seu conteúdo deve ser algo como:

    <VirtualHost *:80>
        ServerName www1.name.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/www1.name.com/public_html
        <Directory /var/www/www1.name.com/public_html>
            Options None FollowSymLinks
            # Enable .htaccess Overrides:
            AllowOverride All
            DirectoryIndex index.html index.php
            Order allow,deny
            Allow from all
            Require all granted            
        </Directory>
    </VirtualHost>
    
  • Desative todas as configurações existentes do VirtualHost, se necessário: sudo a2dissite "*.conf" .

  • Ativar os novos arquivos de configuração:

    sudo a2ensite www.name.com.conf www1.name.com.conf
    
  • Reinicie o Apache:

    • Ubuntu 14.04: sudo service apache2 restart

    • Ubuntu 16.04: sudo systemctl restart apache2.service

  • Coloque algumas páginas index.html em public_html/ pastas e tente acessar os dois domínios ( http://www... e http://www1... ) através do navegador.

por pa4080 24.08.2017 / 00:55