php - Rendre le fichier de service XAMPP / Apache en dehors de htdocs

Translate

Est-il possible de configurerxampppour servir un dossier en dehors duhtdocsannuaire?

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

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

et monxampples fichiers sont normalement diffusés à partir de:

C:\xampp\htdocs\

(parce que c'est la configuration par défaut) Existe-t-il un moyen pour qu'Apache reconnaisse et serve monTransitCalculator.phpfichier sans le déplacer soushtdocs? De préférence, j'aimerais 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 soushtdocs.

edit: modifié pour ajouter Apache au titre de la question afin de rendre les questions / réponses plus "interrogeables"

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Ok, parpix0rde,Des étincelles' etDaveréponses de Il semble qu'il existe trois façons de procéder:


Hôtes virtuels

  1. Ouvrez C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf.
  2. Annuler un commentaire ~ 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 le Spybot - Search & Destroy stuff si vous l'avez installé).

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

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


Créer un alias

  1. À partir de la ~ ligne 200 de votrehttp.conffichier, copiez tout entre<Directory "C:/xampp/htdocs">et</Directory>(~ ligne 232) et collez-le juste en dessous avecC:/xampp/htdocsremplacé par le répertoire souhaité (dans ce casC:/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 est pertinent à vos désirs) ci-dessousAliasbloc de commentaire, à l'intérieur des balises du module.


Changer la racine de votre document

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

  2. Modifiez ~ ligne 203 pour correspondre à votre nouvel emplacement (dans ce casC:/Projects).


Remarques:

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

Vous pouvez le déplacer en modifiant leDocumentRootréglage dans XAMPP \ apache \ conf \ httpd.conf.

Il devrait actuellement être:

C: / xampp / htdocs

Changez-le en:

C: / projects / transitCalculator / trunk

La source
Translate

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 "\" peuvent empêcher son 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éderhttp: //transitcalculator.localhost/et il mappera directement à 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 sur 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 auriez besoin de garder une trace de l'emplacement exact du répertoire "images" par rapport au fichier courant.

La source
Translate

Vous pouvez configurer Apache pour qu'il serve des pages de n'importe où avec toutes les 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 «prétend» qu'un dossier est dans la racine Web. Cela vous sera probablement plus utile à long terme.

La source
Translate

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 obliques, pas les barres obliques inverses)

La source
Hyman Lee
Translate

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 D'UTILISER CETTE CONFIGURATION DANS UN ENVIRONNEMENT RÉEL

La source