php ambiente - Crea file di servizio XAMPP / Apache al di fuori di htdocs




mysql perl (6)

È possibile configurare xampp per servire un file al di fuori della directory htdocs ?

Ad esempio, supponiamo di avere un file localizzato come segue:

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

e i miei file xampp vengono normalmente forniti da:

C:\xampp\htdocs\

(perché questa è la configurazione predefinita) C'è un modo per far riconoscere e servire Apache al mio file TransitCalculator.php senza spostarlo in htdocs ? Preferibilmente vorrei che Apache servisse / abbia accesso a tutti i contenuti della directory dei progetti, e non voglio spostare la directory dei progetti sotto htdocs .

edit: modificato per aggiungere Apache al titolo della domanda per rendere Q / A più "ricercabile"


Answers

Ok, per le pix0r di pix0r , Sparks e Dave sembra che ci siano tre modi per farlo:

pix0r

  1. Apri C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf.
  2. Linea di commento 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 tuo file hosts (C: \ Windows \ System32 \ drivers \ etc \ hosts).

  5. Inserisci

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    alla fine del file (prima di Spybot - Cerca e distruggi roba se hai installato quello).

  6. Salva (Potrebbe essere necessario salvarlo sul desktop, modificare le autorizzazioni sul vecchio file hosts (fare clic con il tasto destro> proprietà) e copiare il nuovo nella directory su quello vecchio (o rinominare il vecchio) se si sta usando Vista e hanno problemi).
  7. Riavvia Apache.

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

Sparks

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

  2. Trova la sezione <IfModule alias_module></IfModule> (~ line 300) e aggiungi

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

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

Dave

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

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

Gli appunti:

  • Devi usare le barre "/" anziché le barre indietro "\".
  • Non includere il finale "/" alla fine.
  • riavvia il tuo server .

Nessuna di queste soluzioni ha funzionato facilmente. Ecco la soluzione più semplice 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> 

RICORDA DI NON UTILIZZARE QUESTA CONFIGURAZIONE IN UN VERO AMBIENTE


È possibile spostarlo modificando l'impostazione DocumentRoot in XAMPP \ apache \ conf \ httpd.conf.

Dovrebbe essere al momento:

C: / xampp / htdocs

Cambiarlo in:

C: / progetti / transitCalculator / trunk


Come nota a margine, se stai cercando di ottenere XAMPP per utilizzare un'unità di rete come root dei documenti devi utilizzare i percorsi UNC in httpd.conf. XAMPP non riconoscerà le tue unità di rete mappate.

Ad esempio il seguente non funzionerà, DocumentRoot "X: / webroot"

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


Un VirtualHost potrebbe funzionare anche per questo e potrebbe funzionare meglio per te dato che puoi ospitare diversi progetti senza la necessità di sottodirectory. Ecco come lo fai:

httpd.conf (o extra \ httpd-vhosts.conf relativo a httpd.conf. Le barre finali "\" potrebbero far sì che non funzioni):

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 (c: \ windows \ system32 \ drivers \ etc \ hosts in genere):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

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

Questo può essere utile se stai cercando di replicare un ambiente di produzione in cui stai sviluppando un sito che siederà sulla radice di un nome di dominio. Ad esempio, puoi 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, è necessario tenere traccia esattamente dove la directory "images" era relativa al file corrente.


Per chi utilizza Winginx (basato su nginx invece che basato su Apache), l'ho risolto con questi 4 passaggi:

  1. Nel menu Strumenti premi Winginx PHP5 Config (non importa il 5 nel nome ...):

  2. Seleziona la versione PHP che vuoi modificare in php.ini :

  3. Nella scheda Estensioni PHP seleziona l'estensione php_openssl e premi il pulsante Salva :

  4. riavviare il servizio PHP appropriato attraverso la barra delle applicazioni ( Stop e Start ):





php apache xampp server-configuration