Ubuntu Apache2 DefaultRuntimeDir harus berupa direktori yang valid, absolut atau relatif terhadap ServerRoot


15

Saya memiliki server web yang menjalankan Ubuntu 17.04 yang saya coba set up Apache. Semuanya berjalan hebat sampai saya memutuskan untuk meng-host dua situs web pada satu mesin melalui virtualHosts. Sekarang apachemenolak untuk memulai bahkan dengan satu host diaktifkan. Setiap kali saya mencoba memulai, Apachesaya mendapatkan kesalahan ini:

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

Tidak satu pun dari upaya saya untuk memperbaikinya yang meliputi:

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

Semua baris 80 dari pesan kesalahan memberitahu saya adalah DefaultRuntimeDir ${APACHE_RUN_DIR}.

Dan kapan pun saya tidak melihat di mana atau apa APACHE_RUN_DIRyang dinyatakan sebagai.

Adakah yang bisa membantu saya?

Jawaban:


16

Perintah

source /etc/apache2/envvars

menyelesaikan masalah saya (setelah mencoba SEMUA yang lain).

Untuk memeriksa apakah semuanya baik-baik saja atau tidak, gunakan perintah

apache2 -S

Saya menemukan itu lebih cepat daripada menggunakan catatan DNS saya.


1
Saya menggunakan source /etc/apache2/envvarstetapi setelah itu direktori home saya berubah dari ~menjadi homedan ketika saya menulis cd itu menunjukkan -bash: cd: HOME not set. Ketika saya memasukkan envvars salah satu baris pertama adalah # this won't be correct after changing uiddan unset HOME. Adakah cara untuk memperbaikinya?
Mihail Minkov


6

Apache2 digunakan /etc/apache2/envvarsuntuk mengatur variabel lingkungan. Anda dapat menggunakan informasi ini untuk memastikan direktori ${APACHE_RUN_DIR}menunjuk ke valid.

Saya mengalami masalah yang sama ketika meningkatkan dari 14,04 ke 17,04. Masalahnya adalah: ${APACHE_RUN_DIR}disetel ke /var/run/apache2, tetapi folder apache2 tidak ada di /var/run.

Perbaikan untuk saya adalah: mkdir /var/run/apache2


7
bahkan jika Anda membuat folder atau jika folder sudah disajikan (seperti dalam situasi saya) Anda harus menjalankan perintah berikut. source /etc/apache2/envvars
Peshmerge

Anda hanya perlu menjalankan perintah envvares jika Anda menjalankan Apache tanpa skrip awal, jika Anda menggunakan init.d / system.d file tersebut akan bersumber secara otomatis.
Niyol

@Peshmerge Terima kasih! dapatkah Anda memberi tahu saya cara mempertahankannya setelah reboot? sepertinya saat reboot kita harus menjalankan perintah itu secara manual setiap kali
T.Todua

1

dalam kasus saya ini tentang "Membutuhkan semua ditolak" baris dalam file apache2.conf yang (sekali lagi) dalam kasus saya diketikkan sebagai "Perlu ditolak"


0

Reenebling php5.6modul apache membantu memperbaiki masalah ini.

Tekan Ctrl+ Alt+ Tdan ketik ini:

sudo a2dismod php5.6
sudo a2enmod php5.6

Kemudian restart layanan apache2:

sudo service apache2 restart
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.