Ubuntu Apache2 DefaultRuntimeDir deve essere una directory valida, assoluta o relativa a ServerRoot


16

Ho un web server con Ubuntu 17.04 che sto tentando di configurare Apache. Tutto è andato alla grande fino a quando ho deciso di ospitare due siti Web su un unico computer tramite virtualHosts. Ora si apacherifiuta di avviarsi anche con un solo host abilitato. Ogni volta che tento di iniziare Apacheottengo questo errore:

apache2: Syntax error on line 80 of /etc/apache2/apache2.conf:
DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot.

Nessuno dei miei tentativi di risolvere questo problema è arrivato a qualcosa incluso:

apt purge apache2 && rm -r /etc/apache2 

Tutta la riga 80 del messaggio di errore mi dice che è DefaultRuntimeDir ${APACHE_RUN_DIR}.

E in nessun momento vedo dove o cosa APACHE_RUN_DIRviene dichiarato.

Qualcuno mi può aiutare?

Risposte:


16

Il comando

source /etc/apache2/envvars

risolto il mio problema (dopo aver provato TUTTI gli altri).

Per verificare se tutto va bene o no, utilizzare il comando

apache2 -S

Ho scoperto che è stato più veloce rispetto all'utilizzo dei miei record DNS.


1
Ho usato il source /etc/apache2/envvarsma dopo che la mia directory home è cambiata da ~a homee quando ho scritto cd ha mostrato -bash: cd: HOME not set. Quando sono entrato negli envvars, una delle prime righe è # this won't be correct after changing uide unset HOME. Qualche idea su come risolvere questo problema?
Mihail Minkov,


6

Apache2 utilizza /etc/apache2/envvarsper impostare le variabili di ambiente. È possibile utilizzare queste informazioni per assicurarsi che la directory ${APACHE_RUN_DIR}punti sia valida.

Stavo riscontrando lo stesso problema durante l'aggiornamento dal 14.04 al 17.04. Il problema era: ${APACHE_RUN_DIR}era impostato su /var/run/apache2, ma mancava la cartella apache2 /var/run.

La correzione per me era: mkdir /var/run/apache2


7
anche se hai creato la cartella o se la cartella è già presentata (come nella mia situazione) devi eseguire il seguente comando. source /etc/apache2/envvars
Peshmerge,

è necessario eseguire il comando envvares solo se si avvia Apache senza il programma di avvio, se si utilizza init.d / system.d il file verrà originato automaticamente.
Niyol,

@Peshmerge Grazie! puoi dirmi come conservarlo dopo il riavvio? sembra al riavvio dobbiamo eseguire manualmente quel comando ogni volta
T.Todua

1

nel mio caso riguardava la riga "Richiedi tutto negato" nel file apache2.conf che (di nuovo) nel mio caso è stato digitato come "Richiedi negato"


0

Il rinnovo del php5.6modulo apache aiuta a risolvere questo problema.

Premi Ctrl+ Alt+ Te digita questi:

sudo a2dismod php5.6
sudo a2enmod php5.6

Quindi riavviare il servizio apache2:

sudo service apache2 restart
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.