php - por - http//localhost/xampp/htdocs




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

¿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.


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





server-configuration