LAMP+No-IP só disponibiliza uma página por vez

Iniciado por alexandresbabo, 27 de Setembro de 2011, 20:13

tópico anterior - próximo tópico

alexandresbabo

Tudo bom galera! Sou novo no Fórum e novo no Ubuntu!  :D

Estou utilizando a versão 10.04 Server para montar um servidor de hospedagem de sites para realização de alguns testes, antigamente no OpenSuse 11.4 eu configurei um web server rapidamente, mas estou enfrentando alguns problemas com o Ubuntu e espero que vcs possam me ajudar.

Atualmente possuo 3 páginas "hospedadas" comigo, todos os Vitualhosts se encontram no caminho /etc/apache2/sites-available

São eles o Default
<VirtualHost *:8080>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
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/"
    <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>

</VirtualHost>


Um site chamado Bless Us
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
ServerName blessus.no-ip.org
ServerAlias www.blessus.no-ip.org
DocumentRoot /var/www/blessus

<Directory /var/www/blessus/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
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/"
    <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>

</VirtualHost>


E um site chamado PearTech
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
ServerName peartech.no-ip.info
ServerAlias www.peartech.no-ip.info
DocumentRoot /var/www/peartech

<Directory /var/www/peartech/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
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/"
    <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>

</VirtualHost>


No arquivo httpd.conf (que estava em branco) adicionei a seguinte linha:ServerName localhost

E no arquivo ports.conf alterei o para o seguinte:
NameVirtualHost *:8080
Listen 8080

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
</IfModule>

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



A saída do comando apache2ctl -S é essa:
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:8080                 is a NameVirtualHost
         default server localhost (/etc/apache2/sites-enabled/000-default:1)
         port 8080 namevhost localhost (/etc/apache2/sites-enabled/000-default:1)
         port 8080 namevhost blessus.no-ip.org (/etc/apache2/sites-enabled/blessus.no-ip.org:1)
         port 8080 namevhost peartech.no-ip.info (/etc/apache2/sites-enabled/peartech.no-ip.info:1)
Syntax OK


Como vcs perceberam utilizo o no-ip para fazer a mudança de porta automáticamente para a 8080 uma vez que o meu ISP não permite a utilização da porta 80 no meu plano.
Localmente consigo acessar as respectivas páginas dos sites.

O meu problema é que quando tento acessar um dos sites pelo endereço fornecido pelo No-IP eles sempre caem na página default.
Como posso resolver este problema?

Desde já agradeço e peço desculpas por este texto enorme.
Abraço  :D

zekkerj

Se você não usar o redirecionamento do NO-IP, e acessar diretamente a porta 8080, tipo, http://peartch.no-ip.info:8080/, funciona?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

alexandresbabo

#2
Olá zekkerj!

Se eu acessar somente http://peartch.no-ip.info:8080/ pelo meu próprio servidor funciona, ou seja, localmente o servidor consegue encontrar as pastas, mas se eu tento pelo mesmo link em qualquer outra máquina, não funciona, talvez porque utilizo o No-IP justamente para redirecionar a porta, não sei....

--EDIT--
Ah esqueci de comentar....o meu firewall está desativado.

zekkerj

Veja só, pro domínio virtual funcionar, você precisa usar obrigatoriamente HTTP 1.1. Um motivo pra ele não funcionar, então, seria estar sendo usado HTTP 1.0. O redirecionamento poderia estar causando isso.

por enquanto, a dica que eu deixo é que você tire a configuração que fez no httpd.conf, que estava vazio e vazio deve ficar, e coloque no arquivo "/etc/apache2/sites-available/default".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

alexandresbabo

Citação de: zekkerj online 28 de Setembro de 2011, 11:23
Veja só, pro domínio virtual funcionar, você precisa usar obrigatoriamente HTTP 1.1. Um motivo pra ele não funcionar, então, seria estar sendo usado HTTP 1.0. O redirecionamento poderia estar causando isso.

Nossa! essa eu não imaginava! :o mas é estranho pq o apache vem configurado para usar o HTTP 1.1 desde a versão 1.2.

Citação de: zekkerj online 28 de Setembro de 2011, 11:23por enquanto, a dica que eu deixo é que você tire a configuração que fez no httpd.conf, que estava vazio e vazio deve ficar, e coloque no arquivo "/etc/apache2/sites-available/default".

Então o meu default deveria ficar assim né:
<VirtualHost *:8080>
ServerName localhost
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
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/"
    <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>

</VirtualHost>


A única diferença que percebi foi que agora o meu server utiliza o meu hostname ao invés do localhost para realizar as funções do Apache. /etc/init.d/apache2 reload
* Reloading web server config apache2                                          apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
                                                                         [ OK ]


É isso mesmo??
Obrigado desde já!

zekkerj

#5
Seu servidor ainda escuta a porta 80? Isso poderia explicar ele não estar usando o virtualhost "default" como principal. A saída do comando "apachectl -S" alterou depois da alteração?

Sobre a questão do HTTP 1.1 contra 1.0, o que eu imaginei foi que o redirecionamento estaria sendo feito em HTTP 1.0. Isso não tem a ver com o seu apache, e sim com o serviço do NO-IP. É por isso que eu pedi pra você acessar diretamente os virtualhosts, sem usar o redirecionamento.

Uma coisa que vc pode fazer é consultar os logs de acesso, pq o modo fica gravado junto com o acesso. O arquivo de log normalmente é "/var/log/apache2/access_log".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

alexandresbabo

Citação de: zekkerj online 29 de Setembro de 2011, 11:07
Seu servidor ainda escuta a porta 80? Isso poderia explicar ele não estar usando o virtualhost "default" como principal. A saída do comando "apachectl -S" alterou depois da alteração?

Não, o meu servidor não está escutando a porta 80. A saída do comando "apachectl -S" continua exatamente a mesma

Citação de: zekkerj online 29 de Setembro de 2011, 11:07Sobre a questão do HTTP 1.1 contra 1.0, o que eu imaginei foi que o redirecionamento estaria sendo feito em HTTP 1.0. Isso não tem a ver com o seu apache, e sim com o serviço do NO-IP. É por isso que eu pedi pra você acessar diretamente os virtualhosts, sem usar o redirecionamento.

Uma coisa que vc pode fazer é consultar os logs de acesso, pq o modo fica gravado junto com o acesso. O arquivo de log normalmente é "/var/log/apache2/access_log".

Conferi os acessos que realizei pelo meu celular e aparece que é HTTP 1.1 mesmo 201.23.177.69 - - [29/Sep/2011:11:26:14 -0300] "GET / HTTP/1.1" 304 211 "-" "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176x220)"
201.23.177.69 - - [29/Sep/2011:11:27:56 -0300] "GET / HTTP/1.1" 304 211 "-" "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176x220)"


Coisa esquisita né!?