Perché sto ottenendo la pagina predefinita di Ubuntu Apache2 invece della mia pagina index.html?


8

Ho un computer Ubuntu 14.10 che viene utilizzato per i test dei siti Web locali , non è disponibile su Internet. Su di esso, ho impostato sette siti Web. Tuttavia, quando accedo a due dei sette, ottengo Apache2 Ubuntu Default Pageinvece la mia pagina indice.

Per quanto ne so, ho impostato tutti e sette usando lo stesso identico processo, quindi non so cosa manchino questi due. Inoltre, nella mia directory dei log di Apache, ho due file di log, errore accessper ciascuno dei due siti che si comportano male, ma tutti sono vuoti. Quando riavvio il apache2servizio, non ci sono errori. Ho ripercorso i miei passi più volte e non riesco a vedere alcuna differenza tra i siti di lavoro e i siti non di lavoro.

Quali opzioni ho per diagnosticare questo problema? Posso forzare in qualche modo registri di errori più dettagliati? C'è un altro registro da qualche parte a cui posso fare riferimento?

Ecco un esempio di un .conffile per uno dei siti non funzionanti:

<VirtualHost *:80>
   ServerName www.local_example.com
   ServerAlias local_example.com
   ServerAdmin address@example.com

   DocumentRoot /var/www/Websites/example.com
   <Directory /var/www/Websites/example.com/>
       Options Indexes FollowSymLinks MultiViews
       # pcw AllowOverride None
       AllowOverride All
       Order allow,deny
       allow from all
       # This directive allows us to have apache2's default start page
       # in /apache2-default/, but still have / go to the right place
       # Commented out for Ubuntu
       #RedirectMatch ^/$ /apache2-default/
   </Directory>

   ErrorLog /home/example/Apache_Logs/local_example.com_error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /home/example/Apache_Logs/local_example.com_access.log combined
   ServerSignature On

</VirtualHost>

2
Come hai creato gli host virtuali? Li hai creati aggiungendo file a /etc/apache2/sites-available? In tal caso, li hai abilitati con sudo a2ensite <your_site_name>? Il file di registro degli errori apache predefinito contiene qualcosa? E hai un ServerAlias ​​o ServerName configurato nei tuoi file host virtuali? Se disabiliti il ​​sito predefinito sudo a2dissite 000-default(puoi riattivarlo con sudo a2ensite 000-default), funziona? Inoltre, potrebbe essere che hai dimenticato di riavviare apache?
Dan

@ Dan, grazie per aver risposto. Ho creato i siti aggiungendoli a sites-available. Il registro degli errori predefinito non contiene nulla. Ho definito ServerAliasnel file hosts. Ho disabilitato il 000-defaultsito ma questo non ha cambiato nulla. Ho riavviato e ricaricato Apache molte volte.
Interrogante

Quando hai disabilitato il sito predefinito e riavviato Apache, stava ancora mostrando la pagina index.html predefinita o ne mostrava uno da un host virtuale diverso? Puoi pubblicare il contenuto di uno dei file vhost che si comportano male? Questo potrebbe rendere le cose molto più facili da aiutare.
Dan

@Dan, grazie per la risposta. Quando ho apportato la modifica che hai suggerito, come ho già detto, non è cambiato nulla, il che significa che mostrava esattamente la stessa pagina dell'indice predefinita. Ho aggiunto un .conffile alla mia domanda.
Interrogante

Risposte:


8

Prova quanto segue

Abilita registri dettagliati

sudo nano /etc/apache2/apache2.conf

Individua la variabile LogLevel e aggiornala dall'avviso predefinito a informazioni o debug. il debug produrrà la massima quantità di output.

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# 
LogLevel debug

Riavvia Apache

sudo service apache2 restart

Apache include un piccolo strumento per il controllo della sintassi

apache2ctl -t

Verifica delle definizioni dell'host virtuale

apache2ctl -S

Grazie per questo suggerimento Ho impostato il livello di registro su debug e non ricevo ancora alcuna voce nei file di registro degli errori. I log di accesso ora mostrano ogni volta che ho aperto i siti, ma nient'altro.
Interrogante

6

Per me, uno dei suggerimenti di @Dan l'ha risolto.

sudo a2dissite 000-default.conf
service apache2 reload

Apparentemente la configurazione del sito predefinita stava sovrascrivendo la mia configurazione del vhost.


In altri server si è comportato diversamente e è stato letto index.php invece di index.html. Situazione molto subdola
Margus Pala,

2

dopo l'installazione index.html ha una priorità maggiore, ecco perché vedi ancora la pagina Ubuntu predefinita controlla questa cartella var / www / html / rinominare o rimuovere questa pagina semplice come quella


1

Si scopre che il problema erano le autorizzazioni.

Quando si memorizza il sito Web in una directory esterna /var/wwwe collegata tramite collegamento simbolico, la directory di origine e la relativa directory principale devono disporre delle autorizzazioni di 755.

Per qualche ragione sconosciuta, i due siti che si comportavano in modo anomalo avevano autorizzazioni diverse e in esecuzione chmod -R 755sulla directory del sito Web e sulla relativa directory padre , risolto il problema.


Non dovresti correre chmod -R 755su una directory perché tutti i file in essa contenuti saranno contrassegnati come "eseguibili" ...
Alexis Wilke,

@AlexisWilke, qual è il comando migliore per impostare le autorizzazioni giuste?
Interrogante

Non è facile cambiare le autorizzazioni di tutte le directory e non lo standard ... Puoi findcomunque usarlo . Qualcosa di simile a questo: find top-dir-name -type d -exec chmod 755 {} \;.
Alexis Wilke,
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.