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.