Hacer que XAMPP/Apache sirva el archivo fuera de la carpeta htdocs [cerrado]

Resuelto cmcculloh asked hace 54 años • 6 respuestas

¿Es posible configurar xampp para que proporcione un archivo fuera del htdocsdirectorio?

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

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

y mis archivos xampp 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.phparchivo sin moverlo htdocs? Preferiblemente, me gustaría que Apache proporcione/tenga 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"

cmcculloh avatar Jan 01 '70 08:01 cmcculloh
Aceptado

Ok, según las respuestas de pix0r , Sparks y Dave , parece que hay tres formas de hacer esto:


Anfitriones virtuales

  1. Abra C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Descomentar ~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 a http://transitcalculator.localhost/ .


Hacer un alias

  1. A partir de la línea 200 de su http.confarchivo, copie todo lo que esté entre <Directory "C:/xampp/htdocs">y </Directory>(~línea 232) y péguelo inmediatamente debajo y C:/xampp/htdocsreemplácelo con el directorio deseado (en este caso C:/Projects) para otorgarle a su servidor los permisos correctos para el nuevo directorio.

  2. Busque la <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 Aliasbloque 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.
  • reinicie su servidor .
cmcculloh avatar Aug 04 '2008 17:08 cmcculloh

Puede reubicarlo editando la configuración DocumentRoot en XAMPP\apache\conf\httpd.conf.

Actualmente debería ser:

C:/xampp/htdocs

Cámbielo a:

C:/projects/transitCalculator/trunk

Dave Ward avatar Aug 04 '2008 17:08 Dave Ward

Un VirtualHost también funcionaría para esto y puede funcionar mejor para usted, ya que puede alojar varios proyectos sin 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 a 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 transferirá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.

pix0r avatar Aug 05 '2008 15:08 pix0r

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.

sparkes avatar Aug 04 '2008 17:08 sparkes

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 será, DocumentRoot "//192.168.10.100/webroot" (tenga en cuenta las barras diagonales, no las barras invertidas)

Jason avatar Jan 28 '2011 03:01 Jason