Domanda

Sto usando MAMP solo per il mio ambiente di sviluppo e non ho veramente capito la struttura delle cartelle / var / www / nome-progetto / su un server web. Mi chiedo se sei destinato a puntare il web server nella cartella htdocs o che si suppone di puntare alla radice della cartella di progetto?

Il motivo che mi chiedo è perché le librerie sono destinate ad esistere al di fuori della cartella htdocs per motivi di sicurezza, ma come vengono indicò dall'applicazione web stesso? Sicuramente l'applicazione web non può accedere alle cartelle di fuori della cartella htdocs se il server web sta puntando alla cartella htdocs per l'applicazione web?

È stato utile?

Soluzione

Una soluzione semplice è quella di avere una struttura di cartelle in questo modo:

/var/www/project-name/
    + webroot/
    + libraries/

Puntare il DocumentRoot apache2 alla directory webroot. Tenere tutte le librerie che non si desidera accessibili dal web nella directory libraries. Nel codice php, utilizzare la direttiva di accedere al codice di librerie comprendono.

Il trucco è quello di capire che PHP può includere qualsiasi file sul vostro sistema che ha accesso in lettura. Una persona che naviga nel sito può accedere solo i file all'interno della vostra directory webroot.

Altri suggerimenti

Se si dispone di più vhosts sullo stesso server, è abbastanza comune avere ogni sito in una directory sotto /var/www, e ciascuno di questi hanno una cartella htdocs, che è montato come la radice web. È quindi possibile avere i log e librerie specifiche per l'applicazione in una cartella sopra la web root. Ad esempio:.

/var/www/lolcats.com
/var/www/lolcats.com/htdocs
/var/www/lolcats.com/htdocs/index.php
/var/www/lolcats.com/lib
/var/www/lolcats.com/log

PHP può accedere a qualsiasi file nel file system per i quali l'utente del server Apache ha le autorizzazioni corrette. Su una macchina Linux in esecuzione Apache senza host virtuali, / var / www è un luogo comune da utilizzare per la directory htdocs.

Si posiziona le librerie in PHP di include_path che è inaccessibile per l'utente generale.

E 'un'idea googd per mappare i vostri siti web locali nelle directory nello stesso modo come il vostro lavoro domini.

Spesso si dispone di più siti web su un singolo account di web hosting, in modo di configurazione host virtuali al rispecchiano la configurazione.

Se il vostro hosting condiviso è:

/var/www/root
 /var/www/root/website1
 /var/www/root/website2
 /var/www/root/website3

Crea 3 host vitual sul PC locale, ma mantenere una struttura di file identico.

Inoltre, utilizzare le condizioni nei file di configurazione per impostare il sito deifferently a seconda della struttura file server, per garantire lo stesso file di configurazione funziona su entrambe le configurazioni. Questo significa che si mantiene il processo di compilazione di uno stadio.

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