Question

Est-il possible de configurer xampp pour servir un fichier en dehors du htdocs annuaire?

Par exemple, disons que j'ai un fichier situé comme suit :

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

et mon xampp les fichiers sont normalement servis à partir de :

C:\xampp\htdocs\

(car c'est la configuration par défaut) Existe-t-il un moyen de faire en sorte qu'Apache reconnaisse et serve mon TransitCalculator.php fichier sans le déplacer sous htdocs?De préférence, j'aimerais qu'Apache serve/ait accès à l'intégralité du contenu du répertoire des projets, et je ne souhaite 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 »

Était-ce utile?

La solution

Ok, par pix0r's, Des étincelles' et DaveD'après les réponses, il semble qu'il y ait trois façons de procéder :


Hôtes virtuels

  1. Ouvrez C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Dé-commenter ~ligne 19 (NameVirtualHost *:80).
  3. Ajoutez votre hôte virtuel (~ligne 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. Ouvrez votre fichier hosts (C:\Windows\System32\drivers\etc\hosts).

  5. Ajouter

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    à la fin du fichier (avant les éléments Spybot - Search & Destroy si vous l'avez installé).

  6. Enregistrer (vous devrez peut-être l'enregistrer sur le bureau, modifier les autorisations sur l'ancien fichier hosts (clic droit > propriétés) et copier le nouveau dans le répertoire par-dessus l'ancien (ou renommer l'ancien) si vous utilisez Vista et j'ai des problèmes).
  7. Redémarrez Apache.

Vous pouvez maintenant accéder à ce répertoire en accédant à http://transitcalculator.localhost/.


Créer un pseudonyme

  1. À 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 en dessous avec C:/xampp/htdocs remplacé par le répertoire souhaité (dans ce cas C:/Projects) pour donner à votre serveur les autorisations appropriées pour le nouveau répertoire.

  2. Trouvez le <IfModule alias_module></IfModule> section (~ligne 300) et ajoutez

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

    (ou tout ce qui correspond à vos désirs) sous le Alias bloc de commentaires, à l'intérieur des balises du module.


Changez la racine de votre document

  1. Modifiez la ~ligne 176 dans C:\xampp\apache\conf\httpd.conf ;changement DocumentRoot "C:/xampp/htdocs" à #DocumentRoot "C:/Projects" (ou ce que vous voulez).

  2. Modifiez la ~ligne 203 pour qu'elle corresponde à votre nouvel emplacement (dans ce cas C:/Projects).


Remarques:

  • Vous devez utiliser des barres obliques "/" au lieu des barres obliques inverses "\".
  • N'incluez pas le "/" final à la fin.
  • redémarrez votre serveur.

Autres conseils

Vous pouvez le déplacer en modifiant le Racine du document paramètre dans XAMPP\apache\conf\httpd.conf.

Il devrait être actuellement :

C:/xampp/htdocs

Remplacez-le par :

C:/projects/transitCalculator/trunk

Un VirtualHost fonctionnerait également pour cela et pourrait mieux fonctionner 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 finales "\" peuvent empêcher le fonctionnement :

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> 

Fichier HOSTS (c:\windows\system32\drivers\etc\hosts généralement) :

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Maintenant, redémarrez XAMPP et vous devriez pouvoir accéder http://transitcalculator.localhost/ et il sera mappé directement 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 se trouvera à la racine d'un nom de domaine.Vous pouvez, par exemple, pointer vers des fichiers avec des chemins absolus qui seront transférés vers le serveur :

<img src="/images/logo.png" alt="My Logo" />

alors que dans un environnement utilisant des alias ou des sous-répertoires, vous devrez savoir exactement où se trouvait le répertoire "images" par rapport au fichier actuel.

Vous pouvez configurer Apache pour qu'il serve des pages de n'importe où avec n'importe quelle restriction, 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.

MODIFIER:

alias monapplication c:\monapplication\

J'ai modifié ma réponse pour inclure le format de création d'un alias dans le fichier http.conf qui ressemble un peu à un raccourci dans Windows ou à un lien symbolique sous un*x où Apache « prétend » qu'un dossier se trouve dans la racine Web.Cela vous sera probablement plus utile à long terme.

Si vous essayez de faire en sorte que XAMPP utilise un lecteur réseau comme racine de votre document, vous devez utiliser les 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 obligées, pas les barres obliques)

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 :

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

N'OUBLIEZ PAS DE NE PAS UTILISER CETTE CONFIGURATION DANS UN ENVIRONNEMENT RÉEL

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top