Pregunta

¿Es posible configurar xampp para entregar un archivo fuera del htdocs ¿directorio?

Por ejemplo, digamos que tengo un archivo ubicado de la siguiente manera:

C:\projects\transitCalculator\trunk\TransitCalculator.php

y mi xampp Los archivos normalmente se entregan desde:

C:\xampp\htdocs\

(porque esa es la configuración predeterminada) ¿Hay alguna manera de hacer que Apache reconozca y entregue mi TransitCalculator.php archivo sin moverlo debajo htdocs?Preferiblemente, me gustaría que Apache sirviera o tuviera acceso a todo el contenido del directorio de proyectos, y no quiero mover el directorio de proyectos a htdocs.

editar:editado para agregar Apache al título de la pregunta para que las preguntas y respuestas sean más "buscables"

¿Fue útil?

Solución

Ok, por pix0r's, chispas' y daveSegún las respuestas, parece que hay tres formas de hacer esto:


Anfitriones virtuales

  1. Abra C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Dejar de comentar ~línea 19 (NameVirtualHost *:80).
  3. Agregue su servidor virtual (~línea 36):

    <VirtualHost *:80>
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        <Directory C:\Projects\transitCalculator\trunk>
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    
  4. Abra su archivo de hosts (C:\Windows\System32\drivers\etc\hosts).

  5. Agregar

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    hasta el final del archivo (antes de Spybot - Buscar y destruir cosas si lo tiene instalado).

  6. Guardar (es posible que deba guardarlo en el escritorio, cambiar los permisos en el archivo de hosts anterior (haga clic derecho > propiedades) y copiar el nuevo en el directorio sobre el anterior (o cambiar el nombre del anterior) si está utilizando Vista y tiene problemas).
  7. Reinicie Apache.

Ahora puede acceder a ese directorio navegando hasta http://transitcalculator.localhost/.


Hacer un alias

  1. A partir de ~línea 200 de tu http.conf archivo, copiar todo lo que hay entre <Directory "C:/xampp/htdocs"> y </Directory> (~línea 232) y péguelo inmediatamente debajo con C:/xampp/htdocs reemplazado con el directorio deseado (en este caso C:/Projects) para darle a su servidor los permisos correctos para el nuevo directorio.

  2. Encuentra el <IfModule alias_module></IfModule> sección (~línea 300) y agregue

    Alias /transitCalculator "C:/Projects/transitCalculator/trunk"
    

    (o lo que sea relevante para sus deseos) debajo del Alias bloque de comentarios, dentro de las etiquetas del módulo.


Cambia la raíz de tu documento

  1. Edite ~línea 176 en C:\xampp\apache\conf\httpd.conf;cambiar DocumentRoot "C:/xampp/htdocs" a #DocumentRoot "C:/Projects" (o lo que quieras).

  2. Edite ~línea 203 para que coincida con su nueva ubicación (en este caso C:/Projects).


Notas:

  • Debe utilizar barras diagonales "/" en lugar de barras invertidas "\".
  • No incluya el "/" final al final.
  • reinicia tu servidor.

Otros consejos

Puedes reubicarlo editando el Raiz del documento configuración en XAMPP\apache\conf\httpd.conf.

Actualmente debería ser:

C:/xampp/htdocs

Cámbielo a:

C:/projects/transitCalculator/trunk

Un VirtualHost también funcionaría para esto y puede funcionar mejor para usted, ya que puede alojar varios proyectos sin la necesidad de subdirectorios.Así es como lo haces:

httpd.conf (o extra\httpd-vhosts.conf relativo a httpd.conf.Las barras diagonales "\" pueden provocar que no funcione):

NameVirtualHost *:80
# ...
<VirtualHost *:80>  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
    <Directory C:\projects\transitCalculator\trunk\>  
        Order allow,deny  
        Allow from all  
    </Directory>
</VirtualHost> 

Archivo HOSTS (c:\windows\system32\drivers\etc\hosts normalmente):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Ahora reinicie XAMPP y debería poder acceder http://transitcalculator.localhost/ y se asignará directamente a ese directorio.

Esto puede resultar útil si intenta replicar un entorno de producción en el que está desarrollando un sitio que se ubicará en la raíz de un nombre de dominio.Puede, por ejemplo, señalar archivos con rutas absolutas que se trasladarán al servidor:

<img src="/images/logo.png" alt="My Logo" />

mientras que en un entorno que utiliza alias o subdirectorios, necesitaría realizar un seguimiento de exactamente dónde estaba el directorio "imágenes" en relación con el archivo actual.

Puede configurar Apache para que sirva páginas desde cualquier lugar sin restricciones, pero normalmente se distribuye de una forma más segura.

Editar sus archivos Apache (http.conf es uno de los nombres más comunes) le permitirá configurar cualquier carpeta para que aparezca en su raíz web.

EDITAR:

alias miaplicación c:\miaplicación\

Edité mi respuesta para incluir el formato para crear un alias en el archivo http.conf, que es como un acceso directo en Windows o un enlace simbólico en un*x donde Apache 'pretende' que hay una carpeta en la raíz web.Probablemente esto le resulte más útil a largo plazo.

Si está intentando que XAMPP use una unidad de red como raíz de su documento, debe usar rutas UNC en httpd.conf.XAMPP no reconocerá sus unidades de red asignadas.

Por ejemplo, lo siguiente no funcionará, DocumentRoot "X:/Webroot"

Pero esto Will, DocumentRoot "//192.168.10.100/webroot" (tenga en cuenta las cortes de reenvío, no las cortes de espalda)

Solución para permitir que Apache 2 aloje sitios web fuera de htdocs:

Debajo de la directiva "DocumentRoot" en httpd.conf, debería ver un bloque de directorio.Reemplace este bloque de directorio con:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

RECUERDA NO UTILIZAR ESTA CONFIGURACIÓN EN UN ENTORNO REAL

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top