Di CentOS 7server, saya mendapatkan kesalahan berikut ketika saya mengetik sudo apachectl restartsetelah 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 apachememulai kembali jika saya mengomentari sertakan directive, dan saya dapat membuat kembali kesalahan dengan tidak mengomentari sertakan directive. Bagaimana saya bisa apachememulai dengan benar menggunakan konten file sertakan?
Garis di bagian bawah httpd.confpemicu bahwa kesalahan adalah: IncludeOptional sites-enabled/*.conf. Satu-satunya .conffile dalam sites-enabledfolder 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.confsama 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_ssldan sudo yum install httpd mod_sslbenar sebelum memicu kesalahan ini. Seluruhnya httpd.confdapat 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.comberhasil menyajikan konten statis yang terletak di /var/www/html, yang DocumentRootdidefinisikan dalam httpd.conf. Masalahnya tampaknya berasal dari VirtualHostarahan dalam file include yang ditunjukkan di atas. Untuk membantu dalam diagnosis, saya telah memasukkan dalam EDIT # 3 tautan di bawah ini ke semua .conffile yang terkandung dalam ketiganya termasuk arahan dalam httpd.conf.
EDIT # 1
Ketika saya mencoba saran m32 untuk mengubah /etc/hostnameuntuk mendefinisikan mydomain.com, apachemasih tidak akan restart, dan systemctl status httpd.servicehasilnya 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/hostsfile 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 configtestdan 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 .conffile standar yang diinstal httpd. Saya belum memodifikasinya. Anda dapat melihat setiap .conffile di situs berbagi file dengan mengklik tautan di bawah ini:
Include conf.modules.d/*.confreferensi file berikut dalam conf.modules.ddirektori:
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/*.confreferensi file berikut dalam conf.ddirektori:
autoindex.conf
ssl.conf
userdir.conf
welcome.conf
Ada juga file README yang saya hilangkan di sini.
Selain itu, IncludeOptional sites-enabled/*.confarahan dan isinya diuraikan secara menyeluruh dalam OP di atas.
Apakah ada yang termasuk file yang bertentangan dengan VirtualHostpengaturan mydomain.com.conf?
EDIT # 4
Sesuai saran GarethTheRed, saya pindah mydomain.com.confke conf.ddirektori dan kemudian mulai mengomentari baris mydomain.com.confsatu per satu hingga httpddapat memulai kembali. Saya kemudian mulai berhenti mengomentari baris untuk melihat berapa banyak baris yang bisa tetap dan httpdmasih restart. Saya bisa httpdmemulai kembali, tetapi systemctl status httpd.service -lterus 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 VirtualHostsintaks yang memungkinkan httpduntuk 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 httpddan 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.
apachectl configtest?
IncludeOptionaldi akhir httpd.conffile asli ? Saya percaya ada instalasi default. Masalahnya mungkin Anda menambahkan ekstra IncludeOptionaldi akhir yang memaksa apacheuntuk membaca file konfigurasi yang disertakan dua kali dan akibatnya menyebabkan gagal.
mydomain.com.confke /etc/httpd/conf.d(di mana yang lainnya) dan menghapus /etc/httpd/sites-enabled(itu adalah Debian / Ubuntu) dan yang IncludeOptionalAnda tambahkan httpd.conf. Anda dapat mengabaikan AH00558pesan untuk saat ini karena tidak berhenti apache. Selanjutnya hapus satu baris dari conffile Anda sampai Anda menemukan pelakunya (atau alternatifnya, mulai dengan yang kosong dan pulihkan satu baris sekaligus).
ServerNamearahan? Tambahkan ke pertanyaan Anda.