por httpd ejecutar dominio configurar conf como cambiar archivo abrir php apache xampp server-configuration

php - httpd - configurar xampp



Hacer que XAMPP/Apache sirva el archivo fuera de htdocs (6)

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

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

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

y mis archivos xampp normalmente se sirven desde:

C:/xampp/htdocs/

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

edición: editado para agregar Apache al título de la pregunta para hacer Q / A más "con capacidad de búsqueda"


Ok, por pix0r ''s, Sparks '' y las respuestas de Dave , parece que hay tres formas de hacer esto:

pix0r

  1. Abra C: / xampp / apache / conf / extra / httpd-vhosts.conf.
  2. Sin comentarios ~ línea 19 ( NameVirtualHost *:80 ).
  3. Agregue su host 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. Añadir

    127.0.0.1 transitcalculator.localhost #transitCalculator

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

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

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

Sparks

  1. Comenzando ~ línea 200 de su archivo http.conf , copie todo entre <Directory "C:/xampp/htdocs"> y </Directory> (~ línea 232) y péguelo inmediatamente a continuación con C:/xampp/htdocs reemplazado con su directorio deseado (en este caso C:/Projects ) para otorgar a su servidor los permisos correctos para el nuevo directorio.

  2. Busque la <IfModule alias_module></IfModule> (~ línea 300) y agregue

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

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

Dave

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

  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 diagonales "/".
  • No incluya la "/" al final.
  • reinicie su servidor .

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

La edición de sus archivos apache (http.conf es uno de los nombres más comunes) le permitirá configurar cualquier carpeta para que aparezca en su webroot.

EDITAR:

alias myapp c: / myapp /

He editado mi respuesta para incluir el formato para crear un alias en el archivo http.conf, que es algo así como un acceso directo en Windows o un enlace simbólico bajo un * x donde Apache "pretende" que una carpeta está en la raíz web. Esto probablemente será más útil para usted a largo plazo.


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

Actualmente debería ser:

C: / xampp / htdocs

Cambiarlo a:

C: / projects / transitCalculator / trunk


Si está intentando que XAMPP use una unidad de red como su raíz de documentos, debe usar las 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" (note las barras diagonales hacia adelante, no las barras diagonales hacia atrás)


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>

RECUERDE NO USAR ESTA CONFIGURACIÓN EN UN ENTORNO REAL


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 en relación con httpd.conf. Las barras inclinadas "/" pueden hacer 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 generalmente):

# 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 ser útil si está intentando replicar un entorno de producción donde está desarrollando un sitio que se ubicará en la raíz de un nombre de dominio. Por ejemplo, puede apuntar a 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, deberías hacer un seguimiento de dónde estaba exactamente el directorio de "imágenes" en relación con el archivo actual.