¿Es posible configurar xampp para servir un archivo fuera del htdocs
directorio?
Por ejemplo, supongamos 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 forma de hacer que Apache reconozca y sirva mi TransitCalculator.php
archivo sin moverlo 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 debajo htdocs
.
editar: editado para agregar Apache al título de la pregunta para hacer que las preguntas y respuestas sean más "buscables"
php
apache
xampp
server-configuration
cmcculloh
fuente
fuente
php -S <host>:<port>
. Por ejemplophp -S localhost:80
.Respuestas:
Ok, por las respuestas de pix0r , Sparks y Dave parece que hay tres formas de hacer esto:
Hosts virtuales
NameVirtualHost *:80
).Agregue su host virtual (~ línea 36):
Abra su archivo de hosts (C: \ Windows \ System32 \ drivers \ etc \ hosts).
Añadir
hasta el final del archivo (antes del Spybot - Buscar y destruir cosas si lo tienes instalado).
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 entre<Directory "C:/xampp/htdocs">
y</Directory>
(~ línea 232) y péguelo inmediatamente debajo conC:/xampp/htdocs
reemplazado por su directorio deseado (en este casoC:/Projects
) para darle a su servidor los permisos correctos para el nuevo directorio.Encuentre la
<IfModule alias_module></IfModule>
sección (~ línea 300) y agregue(o lo que sea relevante para sus deseos) debajo del
Alias
bloque de comentarios, dentro de las etiquetas del módulo.Cambiar la raíz de tu documento
Edite ~ línea 176 en C: \ xampp \ apache \ conf \ httpd.conf; cambia
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:
fuente
Order allow,deny Allow from all
no funcionó para mí, peroRequire all granted
funcionó.Puede reubicarlo editando la configuración de DocumentRoot en XAMPP \ apache \ conf \ httpd.conf.
Actualmente debería ser:
Cámbielo a:
fuente
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 \ httpd-vhosts.conf adicional en relación con httpd.conf. Las barras inclinadas "\" pueden hacer que no funcione):
Archivo HOSTS (c: \ windows \ system32 \ drivers \ etc \ hosts generalmente):
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 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:
mientras que en un entorno que utiliza alias o subdirectorios, necesitaría realizar un seguimiento exacto de dónde estaba el directorio de "imágenes" en relación con el archivo actual.
fuente
X:\myfolder
). Cuando uso este método, aparece una advertencia de "Acceso prohibido". ¿Significa esto que el usuario de Apache no tiene acceso de lectura a la unidad?Directory
reemplazarOrder allow,deny
yAllow from all
conRequire all granted
. Ver stackoverflow.com/questions/9110179/…Puede configurar Apache para que sirva páginas desde cualquier lugar con restricciones, pero normalmente se distribuye de 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 myapp c: \ myapp \
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 debajo de un * x donde Apache 'finge' que una carpeta está en la raíz web. Probablemente esto sea más útil para usted a largo plazo.
fuente
Si está tratando de hacer que XAMPP use una unidad de red como raíz del 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 diagonales inversas)
fuente
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:
RECUERDE NO USAR ESTA CONFIGURACIÓN EN UN ENTORNO REAL
fuente