GNU/Linux >> Belajar Linux >  >> Linux

Mulai ulang Apache

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.


Linux
  1. Apache mod_rewrite

  2. Menggunakan mod_cluster di Apache

  3. Bagaimana Cara Memulai Ulang Apache?

  1. Bagaimana cara menginstal Apache di Ubuntu?

  2. Instal Apache di CentOS 8

  3. Instal Apache di Debian 10

  1. Bagaimana cara me-restart Apache untuk membuat perubahan httpd.conf permanen?

  2. Mulai ulang Nginx di Ubuntu

  3. Menjalankan Apache sebagai pengguna yang berbeda