Fai in modo che XAMPP/Apache serva il file all'esterno di htdocs [chiuso]
-
08-06-2019 - |
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"
Soluzione
Ok, per pix0r'S, Scintille' E Davedalle risposte di sembra che ci siano tre modi per farlo:
Host virtuali
- Apri C:\xampp\apache\conf\extra\httpd-vhosts.conf.
- Decommenta ~riga 19 (
NameVirtualHost *:80
). 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>
Apri il file degli host (C:\Windows\System32\drivers\etc\hosts).
Aggiungere
127.0.0.1 transitcalculator.localhost #transitCalculator
alla fine del file (prima del materiale Spybot - Search & Destroy se lo hai installato).
- 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).
- Riavvia Apache.
Ora puoi accedere a quella directory navigando in http://transitcalculator.localhost/.
Crea un alias
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 conC:/xampp/htdocs
sostituito con la directory desiderata (in questo casoC:/Projects
) per fornire al tuo server le autorizzazioni corrette per la nuova directory.Trovare il
<IfModule alias_module></IfModule>
sezione (~ riga 300) e aggiungiAlias /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
Modifica la ~riga 176 in C:\xampp\apache\conf\httpd.conf;modifica
DocumentRoot "C:/xampp/htdocs"
A#DocumentRoot "C:/Projects"
(o quello che vuoi).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