Anda mungkin perlu memulai ulang Apache® saat Anda ingin perubahan yang Anda buat berlaku, atau saat Anda perlu mengembalikan penggunaan sumber daya Apache ke kisaran normal. Namun, terkadang Apache gagal melakukan restart. Artikel ini menunjukkan cara memeriksa pengaturan konfigurasi dan memulai ulang Apache ketika gagal.
Catatan :Sebelum Anda menggunakan petunjuk berikut dan membuat perubahan apa pun pada file konfigurasi Anda, sebaiknya cadangkan file yang ada.
Periksa sintaks
Penyebab kesalahan mungkin hanya kata yang salah eja atau titik (.) yang salah. Jalankan perintah berikut untuk memeriksa sintaks:
[user@server ~]$ httpd –S
Anda akan melihat output berikut:
Syntax OK
Jika Anda menerima pesan kesalahan yang mirip dengan yang ada di contoh keluaran berikut, Anda harus mengatasi kesalahan tersebut sebelum mencoba memulai ulang Apache:
Syntax error on line 51 of /etc/httpd/conf/httpd.conf:
Invalid command 'erverRoot', perhaps misspelled or defined by a module not included in the server configuration
Periksa log kesalahan Apache
Jika Anda mengatasi kesalahan tersebut dan Apache masih tidak memulai ulang, periksa log kesalahan Apache. Menggunakan dua jendela mungkin bisa membantu. Di satu jendela, gunakan perintah ekor terhadap log kesalahan dengan menjalankan perintah berikut:
tail –f /var/log/httpd/error_log
Di jendela lain, coba restart Apache dengan menjalankan perintah berikut:
# For RHEL/CentOS 6
[user@server ~]$ sudo /etc/init.d/httpd restart
# For Ubuntu 14/Debian 8
[user@server ~]$ sudo /etc/init.d/apache2 restart
# For RHEL/CentOS 7+
[user@server ~]$ sudo systemctl restart httpd
# For Ubuntu 16+/Debian 9+
[user@server ~]$ sudo systemctl restart apache2
Perhatikan jendela pertama saat memulai ulang Apache untuk melihat kesalahan apa pun yang dibuat ke log.
Apache juga mungkin tidak memulai ulang jika ada layanan lain yang mengikat ke port yang coba digunakan Apache, seperti yang ditunjukkan pada output berikut:
Stopping httpd: [FAILED]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 2001:4801:7824:103:9ed:a5a8:3301:d53a for ServerName
[Wed Sep 10 20:48:11 2014] [warn] NameVirtualHost *:443 has no VirtualHosts
[Wed Sep 10 20:48:11 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Output ini menunjukkan bahwa Apache tidak dapat memulai karena layanan lain telah ditetapkan ke port 80.
Anda dapat mengubah port yang ditetapkan Apache atau memeriksa apakah layanan lain yang ditetapkan ke port ini seharusnya berada di port 80. Jalankan netstat
perintah untuk mengidentifikasi layanan lain yang menggunakan port tersebut, seperti yang ditunjukkan pada contoh berikut:
[user@server ~]$ sudo netstat –plnt
Outputnya akan terlihat seperti contoh berikut:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5272/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1581/master
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 5835/mysqld
tcp 0 0 :::80 :::* LISTEN 5272/sshd
tcp 0 0 ::1:25 :::* LISTEN 1581/master
Dalam contoh ini, output menunjukkan bahwa Secure Shell (SSH) mendengarkan pada port 80, yang seharusnya tidak terjadi. Anda dapat memperbaiki situasi ini dengan memodifikasi file konfigurasi agar SSH dapat mendengarkan pada port yang berbeda, lalu restart Apache.
Anda mungkin juga melihat kesalahan berikut:
httpd dead but subsys locked, but pid exists
Kesalahan ini berarti Apache sedang berjalan, tetapi macet. Ketika Anda memulai Apache, itu membuat file kunci untuk menunjukkan bahwa itu sedang berjalan. File kunci membantu mencegah beberapa instance berjalan. Saat Anda menghentikan Apache, file kunci ini akan dihapus. Namun, ketika macet, file kunci masih ada tetapi prosesnya tidak. Jika Anda melihat kesalahan ini, Anda perlu menghapus file kunci dengan menjalankan perintah berikut:
# For RHEL/CentOS based distributions
[user@server ~]$ sudo rm /var/lock/subsys/httpd
# For Ubuntu/Debian based distributions
[user@server ~]$ sudo rm /var/lock/subsys/apache2
# For RHEL/CentOS 6
[user@server ~]$ sudo /etc/init.d/httpd restart
# For Ubuntu 14/Debian 8
[user@server ~]$ sudo /etc/init.d/apache2 restart
# For RHEL/CentOS 7+
[user@server ~]$ sudo systemctl restart httpd
# For Ubuntu 16+/Debian 9+
[user@server ~]$ sudo systemctl restart apache2
Menjalankan perintah ini akan menghapus file kunci yang tidak digunakan sehingga Apache dapat membuat yang baru saat dimulai ulang.
Gunakan tab Umpan Balik untuk memberikan komentar atau mengajukan pertanyaan. Anda juga dapat memulai percakapan dengan kami.