Rendre le fichier XAMPP / Apache servi en dehors de htdocs

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: \ projets \ transitCalculator \ trunk \ TransitCalculator.php

et mes fichiers xampp sont normalement diffusés depuis:

C: \ xampp \ htdocs \

(parce que c'est la configuration par défaut) Y a-t-il un moyen de faire en sorte qu'Apache reconnaisse et serve mon fichier TransitCalculator.php sans le déplacer sous htdocs ? 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 sous htdocs .

edit: édité pour ajouter Apache au titre de la question pour rendre Q / A plus "consultable"

0
Andrew Koper, je suis d'accord, mais ce n'est pas surprenant avec le niveau d'hostilité brutale endémique dans toute l'écosphère d'échange de piles à ce stade. ¯ _ (?) _ / ¯
ajouté l'auteur cmcculloh, source
Les tags sont supposés être assez consultables, je pense.
ajouté l'auteur icedwater, source
J'ai aidé mon ami à en faire quelques-uns pour un projet universitaire, wow ces choses sont fous! Je me souviens juste avoir des tas de tracas essayant de coller un levier sur un micro-interrupteur à l'avant (de sorte qu'il tourne autour quand il frappe un mur). Je pense qu'il avait acheté le kit de base, donc nous les avons construits en vieilles souris d'ordinateur. Je pense qu'ils sont un kit de robot de démarrage fantastique!
ajouté l'auteur titanous, source
Il serait génial de concevoir un robot évasif avec une lumière vive sur le mousebot pour chasser après!
ajouté l'auteur titanous, source
Cette question n'aurait pas dû être fermée. Ceci est une question XAMPP. Ceci est une question de développeur.
ajouté l'auteur Andrew Koper, source
Maby hors sujet, mais je veux juste donner un conseil: Parfois, une option consiste à déplacer à la place des répertoires dans votre dossier "htdocs", par exemple. si vous souhaitez pouvoir ouvrir des fichiers dans Google Drive dans localhost;) (Google drive dans le répertoire localhost "> stackoverflow.com/questions/41751330/… )
ajouté l'auteur Gordova, source
Sur Ubuntu, un lien symbolique était tout ce qui était nécessaire. ( brettclapper.wordpress.com/2012/07/06/… )
ajouté l'auteur M.C., source
En dehors de toutes les réponses, j'aimerais en ajouter une. À partir de PHP 5.4.0, vous pouvez passer à la racine de votre projet en utilisant la ligne de commande et exécuter PHP -S : . Par exemple PHP -S localhost: 80 .
ajouté l'auteur radiantshaw, source

6 Réponses

J'imagine qu'une résistance sur la connexion positive aux moteurs ferait l'affaire. Vous aurez probablement besoin d'expérimenter avec la valeur pour bien faire les choses.

5
ajouté
Oui, cela fonctionne J'utilise ceci dans un de mes robots et ça fonctionne magnifiquement. Procurez-vous un potentiomètre à 10 kV et vous pourrez facilement trouver la valeur dont vous avez besoin.
ajouté l'auteur Blair Conrad, source
C'est cool, vous pouvez obtenir un potentiomètre stéréo, alors vous pouvez ajuster la vitesse maximale des deux moteurs avec un seul bouton, alors vous pouvez changer la vitesse pour différentes applications/démonstrations.
ajouté l'auteur titanous, source

Diminuer la tension entrant dans le moteur l'amènera à ralentir. Comme Jim a dit de mettre une résistance juste avant d'entrer dans le moteur est un excellent moyen, mais vous devrez changer de résistances chaque fois que vous voulez accélérer. Mieux, en utilisant juste une résistance régulière, vous pouvez essayer un potentiomètre qui est une résistance variable. Vous l'utilisez de la même manière mais vous pouvez augmenter ou diminuer les potentiomètres pour donner plus de vitesse ou moins

2
ajouté

Ok, par pix0r , Sparks " et les réponses de Dave il semble qu'il y ait trois façons de le faire:


hôtes virtuels

  1. Open C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Un-comment line 19 (NameVirtualHost *:80).
  3. Add your virtual host (~line 36):

    
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        
            Order allow,deny
            Allow from all
        
    
    
  4. Open your hosts file (C:\Windows\System32\drivers\etc\hosts).

  5. Add

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    to the end of the file (before the Spybot - Search & Destroy stuff if you have that installed).

  6. Save (You might have to save it to the desktop, change the permissions on the old hosts file (right click > properties), and copy the new one into the directory over the old one (or rename the old one) if you are using Vista and have trouble).
  7. Restart Apache.

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


Créer un alias

  1. Starting ~line 200 of your http.conf file, copy everything between and (~line 232) and paste it immediately below with C:/xampp/htdocs replaced with your desired directory (in this case C:/Projects) to give your server the correct permissions for the new directory.

  2. Find the section (~line 300) and add

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

    (or whatever is relevant to your desires) below the Alias comment block, inside the module tags.


Modifier la racine de votre document

  1. Modifier ~ la ligne 176 dans C: \ xampp \ apache \ conf \ httpd.conf; changez DocumentRoot "C: / xampp / htdocs" en #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 ).


Notes:

  • You have to use forward slashes "/" instead of back slashes "\".
  • Don't include the trailing "/" at the end.
  • restart your server.
0
ajouté
Si vous utilisez opendns, obtenez-vous également l'avertissement «fichier en cours d'utilisation» lors de la tentative d'enregistrement du fichier hosts? Puis-je créer un lien symbolique sans désactiver mon DNS?
ajouté l'auteur Wolfpack'08, source
Pour une raison quelconque, il me donne "Accès interdit!", Mais quand je change httpd.conf cela fonctionne bien. Une idée pourquoi?
ajouté l'auteur ilyo, source
Utiliser Order allow, refuser Autoriser de tout n'a pas fonctionné pour moi, mais Exiger tout a fonctionné.
ajouté l'auteur Danny Beckett, source
Je n'ai pas réussi à faire fonctionner la solution Alias, mais le DocumentRoot a fonctionné comme un charme. (Note: Le plus simple est simplement de rechercher toutes les instances de "C: / xampp / htdocs" et de les remplacer car les numéros de draps varieront d'une version à l'autre)
ajouté l'auteur SKuijers, source
Si vous changez seulement le documentroot dans httpd.conf, cela ne fonctionnera pas si vous avez un hôte virtuel pour *: 80, pointant ailleurs. Alors changez le documentroot là aussi.
ajouté l'auteur trogne, source
il ne redémarre pas pour moi, le seul qui fonctionne est l'approche documentaire.
ajouté l'auteur Juan, source
Si vous obtenez des erreurs 403, reportez-vous à ce lien
ajouté l'auteur Wojtek Owczarczyk, source
À l'étape (3) pour éditer le C: \ Windows \ System32 \ drivers \ etc \ hosts. Meilleure pratique pour exécuter l'éditeur (Bloc-notes, Notepad ++ ou tout éditeur) en tant qu'Administrateur en premier. Vous pouvez donc enregistrer directement dans le dossier C: \ Windows \ System32 \ drivers \ etc \.
ajouté l'auteur CallMeLaNN, source
Je ne pouvais pas obtenir ce travail (j'ai moi aussi obtenu "Accès refusé") jusqu'à ce que j'ai déplacé la section de la section , les rendant ainsi sections de frères et soeurs. Ça vaut le coup d'essayer si vous avez toujours des problèmes.
ajouté l'auteur bart, source
Utiliser Autoriser la commande, refuser Autoriser de tous sur Win7 renvoie 403 ERREUR car ces options sont obsolètes. Utilisation Requiert tout accordé. stackoverflow.com/questions/9110179/…
ajouté l'auteur kmike, source
Cela devrait être la réponse. La personne sélectionnée déplace tout Apache pour servir dans un dossier différent.
ajouté l'auteur Kat Lim Ruiz, source
Juste pour info, cette étape ne m'a pas paru nécessaire: Un-commentaire ligne 19 (NameVirtualHost *: 80)
ajouté l'auteur Silverback, source
La solution des hôtes virtuels fonctionne toujours en 2015 :)
ajouté l'auteur ericgrosse, 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 vous le faites:

httpd.conf (ou extra \ httpd-vhosts.conf par rapport à httpd.conf. Les barres obliques "\" risquent de ne pas fonctionner):

NameVirtualHost *:80
# ...
  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
      
        Order allow,deny  
        Allow from all  
    
 

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 être en mesure d'accéder à http: //transitcalculator.localhost/ et il sera directement lié à 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 sera placé à la racine d'un nom de domaine. Vous pouvez, par exemple, pointer vers des fichiers avec des chemins absolus qui seront transférés au serveur:

My Logo

alors que dans un environnement utilisant des alias ou des sous-répertoires, vous devez garder une trace de l'emplacement exact du répertoire "images" par rapport au fichier en cours.

0
ajouté
J'ai plusieurs lecteurs réseau sur mon PC qui ont été mappés pour conduire des lettres (par exemple X: \ myfolder ). Lorsque j'utilise cette méthode, je reçois un avertissement "Accès interdit". Cela signifie-t-il que l'utilisateur Apache n'a pas accès en lecture au lecteur?
ajouté l'auteur harryg, source
Sous Directory remplacez Order allow, refus et Allow from all avec Exiger tout . Voir stackoverflow.com/questions/9110179/…
ajouté l'auteur Michiel, source

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

Il devrait être actuellement:

C: / xampp / htdocs

Changez-le pour:

C: / projects / transitCalculator / trunk

0
ajouté
cela vaut aussi pour Mac XAMP?
ajouté l'auteur angry kiwi, source
N'oubliez pas de l'éditer dans les deux lignes qui demandent DocumentRoot. Si vous changez seulement le top, vous aurez des erreurs d'accès en lecture, etc.
ajouté l'auteur Arcolye, source
maintenant par quelle URL, peut accéder à la page d'index?
ajouté l'auteur Manish Kumar, source

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

MODIFIER:

alias myapp c: \ myapp \

J'ai édité ma réponse pour inclure le format pour créer 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 le webroot. Cela va probablement vous être plus utile à long terme.

0
ajouté