# [apache] VirtualHost [solucionado]

## Theasker

Estoy usando el servicio de ip dinámica de dyndns y tengo dados de alta varios hosts virtuales entre ellos está pruebas.homelinux.org, y me gustaría que cada vez que ingresara esta dirección en un navegador me llevara directamente a una carpeta específica del servidor web, pero no me hace ni caso, va directamente a documentroot del apache

```
# cat /etc/hosts

127.0.0.1 localhost 

127.0.0.1 192.168.0.69 

127.0.0.1 TheaskerHost 

127.0.0.1 pruebas.homelinux.org

```

```

# cat /etc/apache2/vhosts.d/00_default_vhost.conf 

<IfDefine DEFAULT_VHOST>

Listen 80

NameVirtualHost *:80

<VirtualHost *:80>

   ServerName localhost

   Include /etc/apache2/vhosts.d/default_vhost.include

   <IfModule mpm_peruser_module>

      ServerEnvironment apache apache

   </IfModule>

</VirtualHost>

</IfDefine>

<VirtualHost *:80>

   ServerName pruebas.homelinux.org

   DocumentRoot "/var/www/localhost/htdocs/pruebas/"

   Include /etc/apache2/vhosts.d/default_vhost.include

</VirtualHost>
```

```
# /etc/init.d/apache2 restart

 * Service apache2 stopping

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

 * Service apache2 stopped

 * Service apache2 starting

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

 * Service apache2 started
```

----------

## Stolz

Parece que has añadido como nombre de host "pruebas.homelinux.org" pero en cambio has configurado como nombre del servidor "pruebas.dyndns.org". Deben de coincidir. Si quieres acceder al servidor virtual desde ambas direcciones puedes usar la directiva   ServerAlias, por ejemplo:

ServerName pruebas.homelinux.org

ServerAlias www.pruebas.homelinux.org pruebas.dyndns.org www.pruebas.dyndns.org

----------

## Theasker

si, me había colao, pero ya está arreglado, aunque sigue sin funcionar, me lleva directamente al DocuentRoot del apache todo el rato

----------

## Inodoro_Pereyra

Preguntonta: Reiniciaste apache después del cambio?

Siempre que use vhosts me aseguré de que los FQDN coincidieran con los de los vhosts, no sé que pasaría si como en tu caso ni si quiera se puede resolver a si mismo pero no tendrá eso algo que ver con el asunto?

Por si no se entendió, asegurate de el servidor se puede resolver a si mismo localmente (o desde los DNS si están bajo tu control) como pruebas.homelinux.org,  www.pruebas.homelinux.org, etc...

Salud!

----------

## Theasker

si, jeje, eso si, reinicio después de cada modificación del /etc/hosts o de /etc/apache2/vhosts.d/00_default_vhost.conf, que al final ha quedado así:

```

# cat /etc/apache2/vhosts.d/00_default_vhost.conf

<IfDefine DEFAULT_VHOST>

Listen 80

NameVirtualHost *:80

<VirtualHost *:80>

        ServerName localhost

        Include /etc/apache2/vhosts.d/default_vhost.include

        <IfModule mpm_peruser_module>

                ServerEnvironment apache apache

        </IfModule>

</VirtualHost>

</IfDefine>

<VirtualHost *:80>

        ServerName pruebas.homelinux.org

        ServerAlias www.pruebas.homelinux.org pruebas.homelinux.org

        DocumentRoot "/var/www/localhost/htdocs/pruebas/"

        Include /etc/apache2/vhosts.d/default_vhost.include

</VirtualHost>
```

por si es una pista, después de poner la linea del ServerAlias si pongo http://pruebas.homelinux.org funciona pero si pongo http://www.pruebas.homelinux.org, no funciona.

----------

## Theasker

otra pista puede ser, que he puesto cifrado ssl para el apache, aunque no creo que tenga que ver. :/

----------

## Stolz

 *Theasker wrote:*   

> por si es una pista, después de poner la linea del ServerAlias si pongo http://pruebas.homelinux.org funciona pero si pongo http://www.pruebas.homelinux.org, no funciona.

 

¿además de pruebas.homelinux.org tienes www.pruebas.homelinux.org añadido al archivo hosts?

----------

## Theasker

 *Stolz wrote:*   

> ¿además de pruebas.homelinux.org tienes www.pruebas.homelinux.org añadido al archivo hosts?

 

pues no, no lo tenía, ahora si, pero aunque no lo tuviera el otro dominio http://pruebas.homelinux.org, ese si que lo tenía, pero nada de nada.

Ha quedado así:

```

127.0.0.1 localhost

127.0.0.1 192.168.0.69

127.0.0.1 TheaskerHost

127.0.0.1 theasker.homelinux.org

127.0.0.1 theasker.dyndns.org

127.0.0.1 pruebas.homelinux.org

127.0.0.1 www.pruebas.homelinux.org
```

y me sigue dando un error al reiniciar el servicio, que supongo q puede afectar eso

```
# /etc/init.d/apache2 restart

 * Service apache2 stopping

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

 * Service apache2 stopped

 * Service apache2 starting

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

 * Service apache2 started

```

----------

## Stolz

El problema está claro, Apache no resuelve uno de los ServerName, lo que no se es la causa porque a,bos están en el archivo hosts. Puedes ser que algo esté mal en la configuración de Apache o lo relacionado con el DNS. La línea "127.0.0.1 192.168.0.69"  del archivo hosts ¿es para algo en especial?

----------

## Theasker

para nada, era para tener ahí todas las ips, pero en realidad no se necesita esa línea para nada.

Voy a probar a quitarla, a ver que pasa.

---EDITADO---

nada, sigue todo igual, incluso el mensaje de error al reiniciar apache

----------

## Inodoro_Pereyra

Que te devuelve como salida el comando hostname -f?

Salud!

----------

## Theasker

 *Inodoro_Pereyra wrote:*   

> Que te devuelve como salida el comando hostname -f?
> 
> 

 

```
 # hostname -f

TheaskerHost
```

----------

## Theasker

Ya no se que hacer para que no salga el error cuando reinicio el apache. He intentado comentar las líneas del fichero /etc/apache2/vhosts.d/00_default_vhost.conf y las del fichero /etc/hosts que hacen mención a cualquier cosa q no sea localhost y el HostName, pero nada de nada. 

Estoy pensando en borrar toda la configuración del apache y reinstalarlo a ver, aunque no se porqué pero creo q no servirá de nada, porque los archivos de configuración no están casi modificados, prácticamente nada. No entiendo donde puede estar el problema y como buscarlo, también he mirado en /var/log/apache2/error_log pero no consigo ver nada.

----------

## Inodoro_Pereyra

Hostname -f debería devolver un nombre de host + dominio + tld.

Cambia tu /etc/conf.d/hostname para que en la primera línea diga:

127.0.0.1 pruebas.homelinux.org theasker.homelinux.org theasker.dyndns.org, etc, etc...

Solía haber en la wiki un artículo que explicaba bien el asunto, te dejo los pedazos que se salvaron del mismo.

Salud!

----------

## Theasker

osea que queda el archivo /etc/conf.d/hostname así:

```
HOSTNAME="TheaskerHost theasker.homelinux.org theasker.dyndns.org pruebas.homelinux.org www.pruebas.homelinux.org"
```

pero cambiando el archivo sigue saliendo el mensaje de error al hacer /etc/init.d/apache2 restart.

Ya no se que tengo que mirar, se suponía que era algo sencillo, pero veo que para mi no lo es tanto.

Gracias por la ayuda, y a ver si lo consigo.

----------

## Theasker

Al volver a encender el ordenador hoy da error en el archivo /etc/conf.d/hostname, por lo que lo vuelvo a dejar igual, me parece q no te entendí muy bien.

----------

## Theasker

Buscando un poco más por ahí, he leído que el error que da al reiniciar el servicio de apache suele pasar a los "pringaos novatos" como yo al no ponerle nombre al servidor apache. La solución fué esta:

```
echo "ServerName TheaskerWeb" >> /etc/apache2/httpd.conf
```

luego reinicié el servicio y ya no hubo problemas.

Bueno una vez arreglado esto y haber aprendido otra cosa más, bueno 2, lo del ServerName y que soy un "pringao novato"  :Smile: , voy a ver si consigo hacer funcionar de una vez lo del vhost, que no veo el porqué no funciona. Cuando introduzco http://pruebas.homelinux.org me lleva directamente a la raiz del apache y no al directorio que le he indicado en la configuración de archivo 00_default_vhost.conf, y si meto http://www.pruebas.homelinux.org directamente de da error, es como si no leyese la configuración q le he puesto o el archivo.

enfin, no se, ya seguiré buscando

saludos

----------

## kitus

Como que percibo que estas redefiniendo la configuracion de tus directivas por la de por default en esta linea "Include /etc/apache2/vhosts.d/default_vhost.include" 

Por eso siempre te mandara a root.. trata de quitarla y agregar tu propio documentRoot y prueba... 

saludos.  :Smile: 

----------

## Theasker

Gracias, ya he probado eso y nada.

Pero después de un rato se me ha ocurrido y .... era la configuración del ddclient, el redireccionamiento a dyndns, estaba mal y no actualizaba la ip correctamente. Lo que no me explico, es porqué funcionaba con https pero no con http.

Bueno, de todas formas gracias a todos por la ayuda y preocupación.

Un saludico

----------

