Saya menginstal apache2 di ubuntu 13.10. Jika saya mencoba me-restart menggunakan
sudo /etc/init.d/apache2 restart
Saya menerima pesan ini:
AH00558: apache2: Tidak dapat andal menentukan nama domain yang sepenuhnya memenuhi syarat server, menggunakan 127.0.1.1. Setel arahan 'ServerName' secara global untuk menekan pesan ini
Jadi saya membaca bahwa saya harus mengedit httpd.conf
file saya . Tetapi, karena saya tidak dapat menemukannya di /etc/apache2/
folder, saya mencoba menemukannya dengan menggunakan perintah ini:
/usr/sbin/apache2 -V
Tapi output yang saya dapatkan adalah ini:
[Fri Nov 29 17:35:43.942472 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Fri Nov 29 17:35:43.942560 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Fri Nov 29 17:35:43.942602 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Fri Nov 29 17:35:43.942613 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Fri Nov 29 17:35:43.942627 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.947913 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948051 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Fri Nov 29 17:35:43.948075 2013] [core:warn] [pid 14655] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
Baris 74 /etc/apache2/apache2.conf
adalah ini:
Mutex file:${APACHE_LOCK_DIR} default
Saya melihat /etc/apache2/envvar
file saya , tetapi saya tidak tahu apa yang harus saya lakukan dengannya.
Apa yang harus saya lakukan?
apache-2.2
ubuntu
Kurt Bourbaki
sumber
sumber
Jawaban:
Pesan ini ditampilkan karena Anda langsung menjalankan binary apache2. Di Ubuntu / Debian konfigurasi apache bergantung pada file envvar yang hanya diaktifkan.
Jika Anda memulai apache dengan skrip init atau apachectl.
Masalah awal Anda adalah Anda tidak memiliki nama host yang tepat (fqdn) untuk mesin Anda.
Jika Anda tidak dapat mengubahnya, ubah
ServerName
variabel/etc/apache2/apache2.conf
menjadilocalhost
atau FQDN pilihan Anda.sumber
ServerName localhost
untukapache2.conf
(karenahttpd.conf
tidak selalu digunakan pada Ubuntu) dan sekarang semuanya bekerja sebagaimana mestinya. Bisakah Anda menambahkan detail pada jawaban Anda, sehingga saya dapat menandainya sebagai diterima?apache2ctl
tidak bekerja untuk saya, saya harus menggunakan layanan :sudo service apache2 restart
apache2
perintah?AH00558: apache2: Could not reliably determine the server's fully qualified domain name
tetapi tidak menyelesaikannyaConfig variable ${APACHE_LOCK_DIR} is not defined
.Sumber envvars Anda dengan menjalankannya seperti ini:
lalu
Anda harus mendapatkan:
sumber
/etc/apache2/envvars
tidak adaapachectl -V
alih-alih memuat dalam variabel lingkungan secara manual.source /etc/apache2/envvars && sudo -E apache2 -V
atau masuk sebagairoot
dan lakukan per jawaban di atas. Sourcing apache2 env ke pengguna biasa yang kemudian perlu menggunakan sudo tidak akan bekerja tanpa "-E". Izin pengguna reguler tidak dapat membaca folder pribadi sertifikat di antara masalah lain. Anda akan mendapatkan kesalahan. Anda perlu sudo -E atau berjalan di bawah akun root sepenuhnya.CMD . /etc/apache2/envvars; /usr/sbin/apache2 -DFOREGROUND
Periksa
/etc/apache2/envvars
APACHE_LOCK_DIR untuk Anda . Di Ubuntu 12.04 saya, ini/var/lock/apache2$SUFFIX
, sedang SUFFIX biasanya kosong.Periksa apakah direktori ada dan dapat ditulis.
Mungkinkah file envvars tidak bersumber dengan benar? Jika Anda melihat
/etc/init.d/apache2
Anda dapat melihat bahwa itu bersumber.My (default)
/etc/apache2/envvars
:Jika tidak ada yang berhasil, saya akan mencoba menginstal ulang paket.
sumber
Seperti kata lain, Anda harus memuat (sumber) lingkungan Anda sebelum menjalankannya secara langsung. Opsi lain adalah menggunakan:
apache2ctl
misalnyasudo apache2ctl -S
untuk membuang host saya
sumber
TL; DR; Anda harus memulai apache2 menggunakan apa yang sudah Anda miliki:
Terperinci:
Pesan ini berarti Anda harus menentukan nama server / nama domain Anda. Ini tidak penting untuk melakukannya untuk localhost / pengujian produksi, Anda tidak perlu khawatir tentang hal itu.
Ketika Anda mencoba menjalankannya dengan cara lain, hanya menggunakan
apache2
, Anda akan mendapatkan pesan-pesan kesalahan karena apa yang dikatakan sebelumnya: variabel lingkungan didefinisikan ketika Anda mulai menggunakan skrip default diinit.d
.sumber
Mungkin ini akan menyelesaikan masalah Anda
sumber
Anda perlu memperbarui DocumentRoot dari
/var/www/html
ke/var/www
Edit file /etc/apache2/sites-available/000-default.conf sebagai berikut
sumber
Ini bekerja untuk saya
sumber