Est-il possible de configurer xampp pour servir un fichier en dehors du htdocs
répertoire?
Par exemple, disons que j'ai un fichier situé comme suit:
C:\projects\transitCalculator\trunk\TransitCalculator.php
et mes fichiers xampp sont normalement servis à partir de:
C:\xampp\htdocs\
(car c'est la configuration par défaut) Existe-t-il un moyen de faire reconnaître et servir Apache par mon TransitCalculator.php
fichier sans le déplacer sous htdocs
? De préférence, je voudrais qu'Apache serve / ait accès à tout le contenu du répertoire des projets, et je ne veux pas déplacer le répertoire des projets sous htdocs
.
modifier: modifié pour ajouter Apache au titre de la question afin de rendre les questions / réponses plus "consultables"
php
apache
xampp
server-configuration
cmcculloh
la source
la source
php -S <host>:<port>
. Par exemplephp -S localhost:80
.Réponses:
D'accord, selon les réponses de pix0r , Sparks et Dave , il semble qu'il y ait trois façons de procéder:
Hôtes virtuels
NameVirtualHost *:80
).Ajoutez votre hôte virtuel (~ ligne 36):
Ouvrez votre fichier d'hôtes (C: \ Windows \ System32 \ drivers \ etc \ hosts).
Ajouter
à la fin du fichier (avant le truc Spybot - Search & Destroy si vous l'avez installé).
Vous pouvez maintenant accéder à ce répertoire en naviguant sur http: //transitcalculator.localhost/ .
Créer un alias
À partir de la ~ ligne 200 de votre
http.conf
fichier, copiez tout entre<Directory "C:/xampp/htdocs">
et</Directory>
(~ ligne 232) et collez-le immédiatement ci-dessous avecC:/xampp/htdocs
remplacé par le répertoire souhaité (dans ce casC:/Projects
) pour donner à votre serveur les autorisations appropriées pour le nouveau répertoire.Trouvez la
<IfModule alias_module></IfModule>
section (~ ligne 300) et ajoutez(ou tout ce qui est pertinent pour vos désirs) sous le
Alias
bloc de commentaires, à l'intérieur des balises du module.Changer la racine de votre document
Editez ~ la ligne 176 dans C: \ xampp \ apache \ conf \ httpd.conf; changement
DocumentRoot "C:/xampp/htdocs"
à#DocumentRoot "C:/Projects"
(ou tout ce que vous voulez).Modifiez ~ la ligne 203 pour qu'elle corresponde à votre nouvel emplacement (dans ce cas
C:/Projects
).Remarques:
la source
Order allow,deny Allow from all
n'a pas fonctionné pour moi, mais aRequire all granted
fonctionné.Vous pouvez le déplacer en modifiant le paramètre DocumentRoot dans XAMPP \ apache \ conf \ httpd.conf.
Il devrait être actuellement:
Changez-le en:
la source
Un VirtualHost fonctionnerait également pour cela et pourrait fonctionner mieux pour vous car vous pouvez héberger plusieurs projets sans avoir besoin de sous-répertoires. Voici comment procéder:
httpd.conf (ou extra \ httpd-vhosts.conf par rapport à httpd.conf. Les barres obliques "\" peuvent l'empêcher de fonctionner):
Fichier HOSTS (c: \ windows \ system32 \ drivers \ etc \ hosts généralement):
Redémarrez maintenant XAMPP et vous devriez pouvoir accéder à http: //transitcalculator.localhost/ et il sera directement mappé vers ce répertoire.
Cela peut être utile si vous essayez de répliquer un environnement de production dans lequel vous développez un site qui reposera à la racine d'un nom de domaine. Vous pouvez, par exemple, pointer vers des fichiers avec des chemins absolus qui seront transférés sur le serveur:
alors que dans un environnement utilisant des alias ou des sous-répertoires, vous auriez besoin de garder une trace exacte de l'emplacement du répertoire "images" par rapport au fichier actuel.
la source
X:\myfolder
). Lorsque j'utilise cette méthode, j'obtiens un avertissement "Accès interdit". Cela signifie-t-il que l'utilisateur Apache n'a pas accès en lecture au lecteur?Directory
remplacerOrder allow,deny
etAllow from all
avecRequire all granted
. Voir stackoverflow.com/questions/9110179/…Vous pouvez configurer Apache pour diffuser des pages de n'importe où avec n'importe quelles restrictions, mais il est normalement distribué sous une forme plus sécurisée.
La modification de vos fichiers apache (http.conf est l'un des noms les plus courants) vous permettra de définir n'importe quel dossier pour qu'il apparaisse dans votre racine Web.
ÉDITER:
alias myapp c: \ myapp \
J'ai modifié ma réponse pour inclure le format de création d'un alias dans le fichier http.conf qui est un peu comme un raccourci dans Windows ou un lien symbolique sous un * x où Apache `` fait semblant '' qu'un dossier est dans la racine Web. Cela vous sera probablement plus utile à long terme.
la source
Si vous essayez d'obtenir XAMPP pour utiliser un lecteur réseau comme racine de document, vous devez utiliser des chemins UNC dans httpd.conf. XAMPP ne reconnaîtra pas vos lecteurs réseau mappés.
Par exemple, ce qui suit ne fonctionnera pas, DocumentRoot "X: / webroot"
Mais ce sera, DocumentRoot "//192.168.10.100/webroot" (notez les barres obliques, pas les barres obliques inverses)
la source
Solution pour permettre à Apache 2 d'héberger des sites Web en dehors de htdocs:
Sous la directive "DocumentRoot" dans httpd.conf, vous devriez voir un bloc de répertoire. Remplacez ce bloc de répertoire par:
N'OUBLIEZ PAS D'UTILISER CETTE CONFIGURATION DANS UN ENVIRONNEMENT RÉEL
la source