Di CentOS 7
server, saya mendapatkan kesalahan berikut ketika saya mengetik sudo apachectl restart
setelah saya menambahkan file sertakan di bagian bawah httpd.conf
:
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
Saat saya mengetik sudo systemctl status httpd.service -l
, hasilnya adalah:
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 20:10:37 EST; 2min 15s ago
Process: 2101 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 2099 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 2099 (code=exited, status=1/FAILURE)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 20:10:37 ip-address httpd[2099]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Dec 23 20:10:37 ip-address systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 20:10:37 ip-address systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 20:10:37 ip-address systemd[1]: Unit httpd.service entered failed state.
Saya bisa apache
memulai kembali jika saya mengomentari sertakan directive, dan saya dapat membuat kembali kesalahan dengan tidak mengomentari sertakan directive. Bagaimana saya bisa apache
memulai dengan benar menggunakan konten file sertakan?
Garis di bagian bawah httpd.conf
pemicu bahwa kesalahan adalah: IncludeOptional sites-enabled/*.conf
. Satu-satunya .conf
file dalam sites-enabled
folder ini adalah mydomain.com.conf
, yang memiliki konten berikut:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
ErrorLog /var/www/mydomain.com/error.log
CustomLog /var/www/mydomain.com/requests.log combined
</VirtualHost>
Yang httpd.conf
sama dengan apa yang datang pra-instal dengan httpd
, kecuali untuk satu baris termasuk direktif di atas. Saya tahu karena saya lakukan sudo yum remove httpd mod_ssl
dan sudo yum install httpd mod_ssl
benar sebelum memicu kesalahan ini. Seluruhnya httpd.conf
dapat dibaca di situs berbagi file dengan mengklik tautan ini .
Saya mengalami masalah ini ketika secara eksplisit mengikuti langkah-langkah dalam tutorial ini .
Ketika saya mengomentari file sertakan, http/mydomain.com
berhasil menyajikan konten statis yang terletak di /var/www/html
, yang DocumentRoot
didefinisikan dalam httpd.conf
. Masalahnya tampaknya berasal dari VirtualHost
arahan dalam file include yang ditunjukkan di atas. Untuk membantu dalam diagnosis, saya telah memasukkan dalam EDIT # 3 tautan di bawah ini ke semua .conf
file yang terkandung dalam ketiganya termasuk arahan dalam httpd.conf
.
EDIT # 1
Ketika saya mencoba saran m32 untuk mengubah /etc/hostname
untuk mendefinisikan mydomain.com
, apache
masih tidak akan restart, dan systemctl status httpd.service
hasilnya sebagai berikut:
[sudo_user_account@server-ip-address ~]$ sudo systemctl status httpd.service -l
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 14:25:35 EST; 20s ago
Process: 31993 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 31991 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 31991 (code=exited, status=1/FAILURE)
Status: "Total requests: 1; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 14:25:35 hostname systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 14:25:35 hostname systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 14:25:35 hostname systemd[1]: Unit httpd.service entered failed state.
EDIT # 2
Saya juga mencoba saran eyoung100 untuk mengubah isi /etc/hosts
file saya , sebagaimana didefinisikan dalam gambar berikut, tetapi saya masih mendapatkan kesalahan yang sama seperti yang didefinisikan dalam EDIT # 1 di atas.
EDIT # 3
Sesuai permintaan DerekC, saya berlari sudo apachectl configtest
dan mendapatkan:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Selain itu, sesuai saran GarethTheRed, saya memeriksa arahan include di httpd.conf . Ada tiga termasuk arahan di httpd.conf . Saya telah mencantumkan tiga di bawah ini, bersama dengan semua file yang terletak di folder masing-masing direktif. Ini semua adalah .conf
file standar yang diinstal httpd
. Saya belum memodifikasinya. Anda dapat melihat setiap .conf
file di situs berbagi file dengan mengklik tautan di bawah ini:
Include conf.modules.d/*.conf
referensi file berikut dalam conf.modules.d
direktori:
00-base.conf
00-dav.conf
00-lua.conf
00-mpm.conf
00-proxy.conf
00-ssl.conf
00-systemd.conf
01-cgi.conf
IncludeOptional conf.d/*.conf
referensi file berikut dalam conf.d
direktori:
autoindex.conf
ssl.conf
userdir.conf
welcome.conf
Ada juga file README yang saya hilangkan di sini.
Selain itu, IncludeOptional sites-enabled/*.conf
arahan dan isinya diuraikan secara menyeluruh dalam OP di atas.
Apakah ada yang termasuk file yang bertentangan dengan VirtualHost
pengaturan mydomain.com.conf
?
EDIT # 4
Sesuai saran GarethTheRed, saya pindah mydomain.com.conf
ke conf.d
direktori dan kemudian mulai mengomentari baris mydomain.com.conf
satu per satu hingga httpd
dapat memulai kembali. Saya kemudian mulai berhenti mengomentari baris untuk melihat berapa banyak baris yang bisa tetap dan httpd
masih restart. Saya bisa httpd
memulai kembali, tetapi systemctl status httpd.service -l
terus menghasilkan peringatan yang sama:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
The VirtualHost
sintaks yang memungkinkan httpd
untuk memulai (meskipun terus menghasilkan peringatan di atas) adalah sebagai berikut:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
</VirtualHost>
Perhatikan bahwa saya harus menghilangkan baris berikut ini, yang kehadirannya meningkatkan peringatan menjadi ketidakmampuan lengkap untuk memulai http:
# ErrorLog /var/www/mydomain.com/error.log
# CustomLog /var/www/mydomain.com/requests.log combined
Juga, saya berlari sudo journalctl -xelu httpd
dan terminal membalas dengan mengulangi beberapa kali berikut ini:
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:43 server-ip-address systemd[1]: Stopped The Apache HTTP Server.
-- Subject: Unit httpd.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:48 server-ip-address systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has begun starting up.
Dec 24 17:48:48 server-ip-address httpd[10364]: AH00558: httpd: Could not reliably d
Dec 24 17:48:48 server-ip-address systemd[1]: Started The Apache HTTP Server.
-- Subject: Unit httpd.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished starting up.
--
-- The start-up result is done.
lines 887-909/909 (END)
Catatan: Hasil di atas tetap sama terlepas dari apakah saya menggunakan file host eyoung100 atau file host m32. Agar pertanyaan ini dijawab, saya pikir saya harus dapat membuat file log dan juga menghindari peringatan nama server. Kalau tidak, saya khawatir bahwa langkah-langkah selanjutnya untuk mengkonfigurasi httpd akan rentan terhadap kesalahan yang masih ada.
sumber
ServerName
arahan? Tambahkan ke pertanyaan Anda.apachectl configtest
?IncludeOptional
di akhirhttpd.conf
file asli ? Saya percaya ada instalasi default. Masalahnya mungkin Anda menambahkan ekstraIncludeOptional
di akhir yang memaksaapache
untuk membaca file konfigurasi yang disertakan dua kali dan akibatnya menyebabkan gagal.mydomain.com.conf
ke/etc/httpd/conf.d
(di mana yang lainnya) dan menghapus/etc/httpd/sites-enabled
(itu adalah Debian / Ubuntu) dan yangIncludeOptional
Anda tambahkanhttpd.conf
. Anda dapat mengabaikanAH00558
pesan untuk saat ini karena tidak berhentiapache
. Selanjutnya hapus satu baris dariconf
file Anda sampai Anda menemukan pelakunya (atau alternatifnya, mulai dengan yang kosong dan pulihkan satu baris sekaligus).Jawaban:
Log menyebabkan kesalahan karena
apache
tidak dapat menulis ke root situs web Anda. Bahkan jika Anda harus memperbaiki izin file, Anda masih akan diblokir oleh SELinux; yang hanya memungkinkanapache
untuk menulis log/var/log/httpd
. Solusi termudah adalah dengan mengubah situs web Anda untuk login ke direktori ini - mungkin dengan nama file yang berisi nama situs web untuk membedakannya dari log lain.Untuk mengatur nama host server dan menyingkirkan peringatan AH00558, cukup gunakan:
misalnya
sumber
Saya mendapatkan kesalahan ini ketika saya lupa mengatur nama host untuk mesin. Sudahkah Anda melakukannya?
Jalankan perintah ini:
Verifikasi dengan
hostname
Sunting:
Dengan OP yang diperbarui, sepertinya file host Anda tidak diatur dengan benar. Inilah yang tampak seperti milikku;
Coba atur ke sesuatu yang sederhana seperti itu. Tentu saja, ganti semua informasi dengan milik Anda.
166.66.666.66
dengan IP Anda sendirim32.me and m32
dengan domain Anda, dan domain tanpa TLDsumber
AH00558
kesalahan ketika saya menggunakan file contoh host Anda, dengan sayaip
danmydomain.com mydomain
.