[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RES: apache + alias



Olá Harlei,

 

Eu também passei por este mesmo tipo de problema que você, e foi custoso descobrir o motivo da bagunça. Depois de muita tentativa e erro consegui resolver essa questão, espero que sirva pra você também.

 

Antes de mais nada, se tiver criando os alias diretamente no arquivo de configuração /etc/apache2/apache2.conf , esta não é a forma correta de manejar servidores virtuais no Debian (pelo menos no Lenny, não sei como está no 6.0). Os servidores virtuais devem ser criados em /etc/apache2/sites-available e ativados e desativados com os comandos a2ensite e a2dissite, aqui tem um tutorial: http://www.debian-administration.org/articles/412

 

O fato (conclusões minhas após testes), é que quando algum cliente (browser), não encontra algum caminho especificado, o servidor Apache passa a requisição para o servidor virtual logo abaixo na hierarquia (Ordem de criação dos servidores virtuais). Para que se evitar esses problemas que você descreveu, é necessário deixar o servidor virtual “default-000” ativo, ou cria-lo caso a instalação não tenha criado o mesmo. Este servidor virtual será o responsável por manejar todas as requisições não encontradas. No meu caso deixei o servidor “default” no caminho /var/WWW e nesse diretório uma página HTML com uma mensagem de erro. Desta forma se o servidor recebe uma requisição não encontrada ou até mesmo se alguém digitar diretamente o IP do meu servidor no browser, cai nessa página de erro (pois os servidores virtuais subseqüentes não conseguiram resolver tal link). Na prática o servidor “default” está aberto a qualquer requisição, ou seja, qualquer requisição que não tiver sido filtrada (ou encontrada), pelos servidores virtuais subseqüentes  cairá em “default-000”.

É muito provável que você já saiba mas só para constar: Se você tem mais de um site, cada um deve estar separado, cada um localizado em um diretório diferente na árvore de arquivos.

 

Se estas dicas aqui resolverem pode retornar a mensagem? Assim a gente fica sabendo que trata-se realmente de uma orientação genérica, que serve pra todo mundo.

 

Como exemplo segue as configurações dos servidores virtuais aqui em /etc/apache2/sites-enabled

Vale lembrar que estas configurações são para servidores compartilhando o mesmo IP.

 

Servidor “default”, o primeiro a ser criado:

 

<VirtualHost *:80>

        ServerAdmin webmaster@localhost

       

        DocumentRoot /var/www/

        <Directory />

               Options FollowSymLinks

               AllowOverride AuthConfig

        </Directory>

        <Directory /var/www/>

               Options FollowSymLinks MultiViews ExecCGI

               AllowOverride AuthConfig

               Order allow,deny

               allow from all

        </Directory>

 

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

        <Directory "/usr/lib/cgi-bin">

               AllowOverride None

               Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

               Order allow,deny

               Allow from all

        </Directory>

 

        ErrorLog /var/log/apache2/error.log

 

        # Possible values include: debug, info, notice, warn, error, crit,

        # alert, emerg.

        LogLevel warn

 

        CustomLog /var/log/apache2/access.log combined

 

Alias /doc/ "/usr/share/doc/"

Alias /cacti "/usr/share/cacti/site"

Alias /phpmyadmin "/usr/share/phpmyadmin"

Alias /icons/ "/usr/share/apache2/icons/"

    <Directory "/usr/share/doc/">

        Options Indexes MultiViews FollowSymLinks

        AllowOverride None

        Order deny,allow

        Deny from all

        Allow from 127.0.0.0/255.0.0.0 ::1/128

    </Directory>

#ScriptAlias /awstats /usr/lib/cgi-bin/

</VirtualHost>”

 

 

 

O servidor do primeiro site:

 

“<VirtualHost *:80 >
 
        ServerAdmin webmaster@primeirosite.com
        ServerName  www.primeirosite.com
       ServerAlias primeirosite.com
               DocumentRoot /var/www/ma
        <Directory />
               Options FollowSymLinks
               AllowOverride AuthConfig
        </Directory>
        <Directory /var/www/ma >
               Options FollowSymLinks MultiViews ExecCGI
               AllowOverride AuthConfig
               Order allow,deny
               allow from all
               # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                # RedirectMatch ^/$ /apache2-default/
        </Directory>
 
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
               AllowOverride None
               Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
               Order allow,deny
               Allow from all
        </Directory>
 
        ErrorLog /var/log/apache2/minasambiente.com.error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog /var/log/apache2/minasambiente.com.log combined
        ServerSignature Off
        
 
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
 
</VirtualHost>
 
ServerTokens Prod”
 
 
O servidor do Segundo site:
 
“<VirtualHost *:80 >
 
        ServerAdmin webmaster@segundosite.com.br
        ServerName  www.segundosite.com.br
       ServerAlias segundosite.com.br
               DocumentRoot /var/www/nma
        <Directory />
               Options FollowSymLinks
               AllowOverride AuthConfig
        </Directory>
        <Directory /var/www/nma>
               Options FollowSymLinks MultiViews ExecCGI
               AllowOverride AuthConfig
               Order allow,deny
               allow from all
               # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                # RedirectMatch ^/$ /apache2-default/
        </Directory>
 
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
               AllowOverride None
               Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
               Order allow,deny
               Allow from all
        </Directory>
 
        ErrorLog /var/log/apache2/minasambiente.com.br.error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog /var/log/apache2/minasambiente.com.br.log combined
        ServerSignature Off
        
 
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
 
</VirtualHost>
 
ServerTokens Prod”
 

 

 

 

De: Harlei Liguori Marcelino [mailto:hliguori@gmail.com]
Enviada em: segunda-feira, 9 de maio de 2011 15:42
Para: debian-user-portuguese@lists.debian.org
Assunto: apache + alias

 

Olá amigos,

 

estou tendo um "problema" que acredito ser recorrente, mas não encontrei solução ainda...

 

tenho um servidor com apache e vários sites disponibilizados... tive que criar dois alias...

 

até aí tudo bem né, sem problemas... criei um alias que chama new e outro que chama old...

 

eles são referentes a dois endereços diferentes que chamarei de endereco01.com.br e endereco02.com.br

 

o problema é que o new é referente ao endereco01 e o old ao endereco02... criei os alias assim:

 

Alias /new /var/www/html/new/

<Directory "/var/www/html/new/">

            Options -FollowSymLinks +SymLinksIfOwnerMatch

            AllowOverride ALL

            Order allow,deny

            Allow from all

</Directory>

 

Alias /old /var/www/html/old

<Directory "/var/www/html/old/">

            Options -FollowSymLinks +SymLinksIfOwnerMatch

            AllowOverride ALL

            Order allow,deny

            Allow from all

</Directory>

 

entao quando abro www.endereco01.com.br/new ou www.endereco02.com.br/old esta perfeito...

 

 

também abre, e coisas referentes a sites diferentes... ai complica minha vida...

 

existe alguma forma de linkar os alias a apenas uma url?

 

agradeço desde já

 

att

 

Harlei


Reply to: