Mostrando entradas con la etiqueta Virtual Host. Mostrar todas las entradas
Mostrando entradas con la etiqueta Virtual Host. Mostrar todas las entradas

27 ago 2010

Could not reliably determine the server's fully qualified domain name Error

Utilizando Apache Web Server sobre Windows7, y creo que Vista también, por los posts que he leído en la red, nos podemos encontrar con el siguiente error:

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

... o cualquier otra IP según vuestro rooter.

Tras leer varios posts acerca de como solucionar el problema en vano, os voy a contar un pequeño truco para corregirlo, sin entrar mucho en la raiz del problema, ya que mis conocimientos administrativos sobre Windows7 aún son muy escasos.

Problema

Ocurría cuando accedía a algún virtual host definido en el Server.
Tras comprobar que la configuración del Apache esta bien, y también la configuración del archivo hosts... conluimos que tiene que ser un problema de permisos sobre alguno de estos archivos.

Supongo que todo tiene que ver al editar estos archivos, los permisos quedan modificados de tal forma que chocan con las reglas de seguridad de estos sistemas operativos que son más restrictivos.

Solución

Copiar algún archivo de esas mismas carpetas y del mismo tipo que los archivos de configuración que no hayamos modificado.
Copiar el contenido de nuestros archivos de configuración y pegarlo en estas copias, con algún editor de texto básico que no haga más operaciones en el background de su acción guardar.

Sustituir las copias por los archivos... y todo debería estar funcionando.

26 jun 2010

Virtual hosts on Apache 2.2

Creando servidores virtuales en Apache 2.2


Apache 2.2 adopta una estructura modular para sus ficheros de configuración.
Así la definición de servidores virtuales la realizamos en un archivo externo extra/httpd-vhosts.conf.
Incluimos este archivo dentro del archivo de configuración principal httpd.conf.
También impone unas restricciones más severas en acceso que versiones anteriores, por lo que debemos configurar propiedades extra para conseguir acceso a los servidores virutales y no obtener el siguiente mensaje:

Forbidden

  • You don't have permission to access /index.php on this server.
Debido a estos permisos más estrictos, recomiendo crear un directorio raiz donde colgar nuestros servidores virtuales.


Suponemos que nuestro directorio de servidores virtuales es D:\vhosts.

Nota: Las restricciones de seguridad de Windows Vista y Windows 7 previenen el guardar datos en los archivos que mencionamos en estas instrucciones, incluso aunque estes logado como administrador.


  • Crear un directorio dentro de D:\htdocs para cada servidor virtual.
  • Abre C:\WINDOWS\system32\drivers\etc\hosts con tu editor de textos, y añade una línea como éstas por cada servidor virutal.


    127.0.0.1 localhost
    127.0.0.1 vhExample

  • Abre conf\httpd.conf en tu editor de texto y busca la sección #Virtual hosts ,y descomenta la línea
    #Include conf/extra/httpd-vhosts.conf
  • Abre conf\extra\httpd-vhosts.conf en tu editor de texto. La imagen muestra su típica estructura:

    Contents of   httpd-vhosts.conf
  • Al comienzo del archivo insertamos las siguientes líneas:
    <directory>
    Order Deny,Allow
    Allow from all
    </directory>


    Esto define los permisos correctos para el directorio que contiene los sites que queremos tratar como servidores virtuales.
    La ruta del archivo debe usar forward slashes e incluirse entre comillas si tiene espacios en blanco.
    Mientras que los servidores virutales estén en subdirectorios de este directorio raiz, tienen los permisos adecuados.
    Si hay varios directorios raiz, podemos crear diferentes directivas <directory> para ellos.
  • De los comandos que arriba se usan para definir un servidor virutal solo DocumentRoot y ServerName son obligatorias.
    Cuando usamos virutal hosting, Apache desactiva la raiz del servidor principal, así que nuestro primer servidor virutal debe replicar la raiz original del servidor.
    Luego añadimos tantos modulos virutalHost como servidores queramos definir, con su localización como DocumentRoot, y su nombre.
    Volvemos a usar forward slashes e incluir entre comillas si necesario.

    <VirtualHost *:80>
    DocumentRoot D:/htdocs/
    ServerName localhost
    </VirtualHost>

    <VirtualHost *:80>
    DocumentRoot D:/htdocs/vhExample
    ServerName vhExample
    </VirtualHost>

  • Guardamos los cambios en httpd-vhosts.conf, y reiniciamos Apache.
    Todos los sites configurados siguen siendo accesibles como http://localhost/sitename/.
    Además podemos acceder a cada servidor virtual de forma directa como http://vhExample/.
  • Si continuas teniendo problemas para acceder a los servidores virtuales, asegúrate de haber añadido la directiva DirectoryIndex en httpd.conf.