Domanda

E' possibile configurare xampp per fornire un file al di fuori di htdocs rubrica?

Ad esempio, supponiamo che io abbia un file posizionato come segue:

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

e la mia xampp i file vengono normalmente serviti da:

C:\xampp\htdocs\

(perché questa è la configurazione predefinita) Esiste un modo per far sì che Apache riconosca e fornisca my TransitCalculator.php file senza spostarlo sotto htdocs?Preferibilmente vorrei che Apache fornisse/avesse accesso all'intero contenuto della directory dei progetti e non voglio spostare la directory dei progetti in htdocs.

modificare:modificato per aggiungere Apache al titolo della domanda per rendere le domande e risposte più "ricercabili"

È stato utile?

Soluzione

Ok, per pix0r'S, Scintille' E Davedalle risposte di sembra che ci siano tre modi per farlo:


Host virtuali

  1. Apri C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Decommenta ~riga 19 (NameVirtualHost *:80).
  3. Aggiungi il tuo host virtuale (~ riga 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. Apri il file degli host (C:\Windows\System32\drivers\etc\hosts).

  5. Aggiungere

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    alla fine del file (prima del materiale Spybot - Search & Destroy se lo hai installato).

  6. Salva (potresti doverlo salvare sul desktop, modificare le autorizzazioni sul vecchio file host (tasto destro > proprietà) e copiare quello nuovo nella directory sopra quello vecchio (o rinominare quello vecchio) se stai utilizzando Vista e ho problemi).
  7. Riavvia Apache.

Ora puoi accedere a quella directory navigando in http://transitcalculator.localhost/.


Crea un alias

  1. A partire dalla ~riga 200 del tuo http.conf file, copia tutto in mezzo <Directory "C:/xampp/htdocs"> E </Directory> (~riga 232) e incollalo immediatamente sotto con C:/xampp/htdocs sostituito con la directory desiderata (in questo caso C:/Projects) per fornire al tuo server le autorizzazioni corrette per la nuova directory.

  2. Trovare il <IfModule alias_module></IfModule> sezione (~ riga 300) e aggiungi

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

    (o qualunque cosa sia rilevante per i tuoi desideri) sotto il Alias blocco commenti, all'interno dei tag del modulo.


Cambia la radice del tuo documento

  1. Modifica la ~riga 176 in C:\xampp\apache\conf\httpd.conf;modifica DocumentRoot "C:/xampp/htdocs" A #DocumentRoot "C:/Projects" (o quello che vuoi).

  2. Modifica ~riga 203 in modo che corrisponda alla tua nuova posizione (in questo caso C:/Projects).


Appunti:

  • È necessario utilizzare le barre "/" anziché le barre retroverse "\".
  • Non includere la "/" finale alla fine.
  • riavvia il server.

Altri suggerimenti

Puoi riposizionarlo modificando il file DocumentRoot impostazione in XAMPP\apache\conf\httpd.conf.

Attualmente dovrebbe essere:

C:/xampp/htdocs

Cambialo in:

C:/projects/transitCalculator/trunk

Un VirtualHost funzionerebbe anche per questo e potrebbe funzionare meglio per te poiché puoi ospitare diversi progetti senza la necessità di sottodirectory.Ecco come farlo:

httpd.conf (o extra\httpd-vhosts.conf relativo a httpd.conf.Le barre finali "\" potrebbero impedirne il funzionamento):

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> 

File HOSTS (di solito c:\windows\system32\drivers\etc\hosts):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Ora riavvia XAMPP e dovresti essere in grado di accedere http://transitcalculator.localhost/ e verrà mappato direttamente a quella directory.

Ciò può essere utile se stai tentando di replicare un ambiente di produzione in cui stai sviluppando un sito che si troverà nella radice di un nome di dominio.Puoi, ad esempio, puntare a file con percorsi assoluti che verranno trasferiti al server:

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

mentre in un ambiente che utilizza alias o sottodirectory, dovresti tenere traccia esattamente di dove si trova la directory "immagini" rispetto al file corrente.

Puoi impostare Apache per servire pagine da qualsiasi luogo con qualsiasi restrizione, ma normalmente è distribuito in una forma più sicura.

Modificare i tuoi file Apache (http.conf è uno dei nomi più comuni) ti consentirà di impostare qualsiasi cartella in modo che appaia nella tua webroot.

MODIFICARE:

alias miaapp c:\miaapp\

Ho modificato la mia risposta per includere il formato per la creazione di un alias nel file http.conf che è una sorta di collegamento in Windows o un collegamento simbolico in un*x dove Apache "finge" che una cartella sia nella webroot.Questo probabilmente ti sarà più utile a lungo termine.

Se stai cercando di fare in modo che XAMPP utilizzi un'unità di rete come root del documento, devi utilizzare i percorsi UNC in httpd.conf.XAMPP non riconoscerà le unità di rete mappate.

Ad esempio, i seguenti non funzionano, documentRoot "x:/webroot"

Ma questo sarà, documentRoot "//192.168.10.100/webroot" (nota le barre in avanti, non le barre posteriori)

Soluzione per consentire ad Apache 2 di ospitare siti Web esterni a htdocs:

Sotto la direttiva "DocumentRoot" in httpd.conf, dovresti vedere un blocco di directory.Sostituisci questo blocco di directory con:

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

RICORDATI DI NON UTILIZZARE QUESTA CONFIGURAZIONE IN UN AMBIENTE REALE

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top