Dove posizionare il mio sito Web locale a partire dalla versione 2.4.7 di apache2?


50

Di recente ho installato Ubuntu 14.04, quindi ho installato lamp-servere posizionato le mie pagine Web nella /var/wwwdirectory, ma quando ho aperto localhost nel browser non c'era nulla. Penso che sia successo perché Zend ha aggiornato Apache.

Qualunque sia la ragione, voglio sapere dove conservare i miei file php in modo da potervi accedere dal mio browser.


Anche se non è una risposta alla domanda del PO, la seguente risposta può aiutare alcuni visitatori che inciampano su questa domanda durante il tentativo di risolvere un problema correlato: askubuntu.com/a/525120/1183
Augustin

Risposte:


76

La versione apache2 che è stata pubblicata quando è stata rilasciata la versione Ubuntu 14.04 è la 2.4.7 e, a partire da questa versione, sembra che, per motivi di sicurezza, la nuova directory principale per il server sia:

/var/www/html

Quindi, d'ora in poi, è qui che devi posizionare i file per il tuo sito Web (locale). Non dovresti avere di nuovo questo problema con i futuri aggiornamenti.


Comunque, se vuoi cambiare questa directory con un'altra, devi modificare (come root) la seguente riga da /etc/apache2/sites-available/000-default.conffile ( sudo nano /etc/apache2/sites-available/000-default.conf):

DocumentRoot /var/www/html

per

DocumentRoot /path/to/another/directory

Dopodiché, affinché le nuove modifiche abbiano effetto, è necessario riavviare il server apache usando il comando seguente:

sudo service apache2 restart

10
Interessante, ho provato a cercare il ragionamento alla base di questa mossa. Se qualcuno è interessato, ho trovato questo bug report in Debian che lo spiega.
Dan,

4
Viene visualizzato l'errore proibito dopo questa modifica.
Darshana,

1
@Darshana La configurazione predefinita in apache2.4 non consente ad apache di accedere a qualsiasi cosa all'esterno /var/www/html. Mettere il tuo sito in un posto diverso da quello di quella directory (o delle sue sottodirectory), ti darà un errore 403. Devi aggiungere una <Directory /path/to/your/site>direttiva alle tue configurazioni VHost con una requiredirettiva al suo interno.
Dan,

Questo non ha funzionato per me.
user124384

Lo stesso qui .. Ora mi dà l'errore 403 proibito! Come dovrei risolverlo (in modo più semplice e novero PER FAVORE)
abhishah901

27

Invece di /etc/apache2/sites-available/000-default.conftornare alla versione precedente, preferisco mantenere non modificati i file del pacchetto predefinito.

Una ragione di ciò è che quindi non si interromperà durante il prossimo aggiornamento che potrebbe resettare il 000-default.conffile.
Inoltre, tali modifiche non vengono fatte solo per infastidirci, la modifica è stata fatta per una buona ragione, come spiega questa segnalazione di bug in Debian .

I nostri server web [sic] impostano la radice del documento predefinito su / var / www, mentre gli amministratori del sito locale tendono a usare /var/www/example.com. Ciò ha implicazioni sulla sicurezza se i visitatori accedono alla radice del documento predefinita, ignorando la radice / presunto / documento di example.com. Ciò è problematico se i dati sensibili si trovano al di fuori della presunta radice del documento (ad esempio si consideri un ipotetico file di configurazione /var/www/example-com-db.conf).

Una soluzione migliore sarebbe quella di spostare i file dei siti da /var/wwwa /var/www/html/.

# 1. move all files excluding the `html` directory
sudo mv /var/www/[!html]* /var/www/html
# 2. Move the hidden files as well which are skipped in previous command
sudo mv /var/www/.[!.]?* /var/www/html/

Inoltre, un'altra possibile soluzione è quella di creare un altro host virtuale e disabilitare quello predefinito con il comando sudo a2dissite 000-default

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.