Hacer que XAMPP/Apache sirva el archivo fuera de la carpeta htdocs [cerrado]
¿Es posible configurar xampp para que proporcione 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 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.php
archivo 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"
Ok, según las respuestas de pix0r , Sparks y Dave , parece que hay tres formas de hacer esto:
Anfitriones virtuales
- Abra C:\xampp\apache\conf\extra\httpd-vhosts.conf.
- Descomentar ~línea 19 (
NameVirtualHost *:80
). 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>
Abra su archivo de hosts (C:\Windows\System32\drivers\etc\hosts).
Agregar
127.0.0.1 transitcalculator.localhost #transitCalculator
hasta el final del archivo (antes de Spybot - Buscar y destruir cosas si lo tiene instalado).
- 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).
- Reinicie Apache.
Ahora puede acceder a ese directorio navegando a http://transitcalculator.localhost/ .
Hacer un alias
A partir de la línea 200 de su
http.conf
archivo, copie todo lo que esté entre<Directory "C:/xampp/htdocs">
y</Directory>
(~línea 232) y péguelo inmediatamente debajo yC:/xampp/htdocs
reemplácelo con el directorio deseado (en este casoC:/Projects
) para otorgarle a su servidor los permisos correctos para el nuevo directorio.Busque la
<IfModule alias_module></IfModule>
sección (~línea 300) y agregueAlias /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
Edite ~línea 176 en C:\xampp\apache\conf\httpd.conf; cambiar
DocumentRoot "C:/xampp/htdocs"
a#DocumentRoot "C:/Projects"
(o lo que quieras).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 .
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
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.
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 será, DocumentRoot "//192.168.10.100/webroot" (tenga en cuenta las barras diagonales, no las barras invertidas)