Apache tidak dapat memulai ulang

71

Mencoba me-restart apache dari terminal menggunakan perintah berikut:

 sudo service apache2 restart

ketika mengeksekusi perintah tersebut mendapatkan kesalahan di bawah ini:

Job for apache2.service failed. See "systemctl status apache2.service" and "journalctl -xe" for details.

Pada excuting "systemctl status apache2.service" mendapat output di bawah ini

apache2.service - (null)
   Loaded: loaded (/etc/init.d/apache2)
   Active: failed (Result: exit-code) since Sat 2015-05-30 02:22:41 IST; 12s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4866 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

apache error.log

AH00489: Apache/2.4.12 (Unix) configured -- resuming normal operations
AH00094: Command line: '/usr/local/apache2/bin/httpd'
Gautam Savaliya
sumber
6
setelah Anda menjalankan apache2 restart dan mendapatkan kesalahan itu, jalankan sudo journalctl -xeyang akan memberi Anda ide yang lebih baik tentang apa yang terjadi. jika Anda masih memiliki masalah memahaminya. Posting hasilnya di sini.
Grag42
baik. Itu juga tidak membantu saya. Apa yang ada di file log apache. /var/log/apache2/error.log
Grag42
@ Grag42 terima kasih atas saran Anda, saya berlari sudo journalctl -xe dan menemukan beberapa masalah aturan penulisan ulang ada di sana dan memperbaikinya dan berjalan sekarang.
Gautam Savaliya
4
Kemungkinan duplikat Apache tidak dimulai
rancho
3
@rancho: Apa yang membuat Anda percaya bahwa pertanyaan itu adalah duplikat? Pertanyaan yang ditautkan mengandung pesan kesalahan yang cukup spesifik yang tidak kami miliki di sini. Kemungkinan penyebab masalah OP agak tidak jelas saat ini.
David Foerster

Jawaban:

61

Mungkin ini akan membantu menemukan penyebabnya:

journalctl | tail

Dalam kasus saya itu adalah kesalahan dalam file konfigurasi:

AH00526: Syntax error on line 5 of /etc/apache2/sites-enabled/mydomain-wsf.lan.conf
Arek
sumber
6
No journal files were found.
Stevie G
5
@StevieG, cobasudo journalctl | tail
Dherik
1
Apa yang Anda lakukan untuk memperbaikinya?
Léo Léopold Hertz 준영
dalam kasus saya, saya juga melakukan kesalahan dalam file apache2.config
alamin
Terima kasih. Saya salah mengetik direktori untuk conf situs saya yang baru ditambahkan.
Lynnell Emmanuel Neri
48

Ada beberapa kesalahan sintaksis dalam file apache2.conf.

Di terminal, ketik:

cd /etc/apache2

Kemudian:

apache2ctl configtest

Ini akan menunjukkan kepada Anda di mana kesalahan dalam apache2.conffile untuk diperbaiki.

rancho
sumber
1
pendekatan hebat tnx, menghemat waktu saya
George Garchagudashvili
1
Ini fantastis.
abalter
1
Terima kasih. Ada masalah dengan opsi redmine dan PassengerResolveSymlinksInDocumentRoot.
Vadim
lol, setelah dieksekusi: apache2ctl configtestdapatkan sintaks ok, tetapi ketika saya menjalankan apache2 --helppunya apache2: Syntax error on line 82 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot dan tidak ada kesalahan di apache error.log!
Vladimir Ch
setelah melihat dengan seksama untuk /etc/apache2/sites-enabled/dir, saya perhatikan, bahwa saya mendapat file, bukan lincah simbolis untuk site.conf + reenable mod php5.6 (sudo a2dismod php5.6; sudo a2enmod php5.6) apache2 layanan saya telah dimulai tanpa "ohh- ahh "
Vladimir Ch
18

Masalahnya adalah karena beberapa file konfigurasi dihapus, Anda harus menginstalnya kembali.

Pasang kembali APACHE2:

Untuk mengganti file konfigurasi yang telah dihapus, tanpa membersihkan paket, Anda dapat melakukan:

sudo apt-get -o DPkg::Options::="--force-confmiss" --reinstall install apache2

Untuk menghapus sepenuhnya file konfigurasi apache2, Anda harus:

sudo apt-get purge apache2

yang kemudian akan memungkinkan Anda menginstalnya kembali seperti biasa dengan:

sudo apt-get install apache2

Pembersihan diperlukan untuk menghapus semua file konfigurasi - jika Anda menghapus file konfigurasi tetapi hanya menghapus paket, maka ini diingat & file konfigurasi yang hilang tidak diinstal ulang secara default.

Kemudian REINSTALL PHP5:

apt-get purge libapache2-mod-php5 php5 && \
apt-get install libapache2-mod-php5 php5
Rujika Rajan
sumber
1
Menurut Anda mengapa beberapa file konfigurasi dihapus?
Léo Léopold Hertz 준영
2

Masalah:

Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

Larutan:

  • Untuk menghapus sepenuhnya file konfigurasi apache2, Anda harus:

    1) sudo apt-get purge apache2

  • yang kemudian akan memungkinkan Anda menginstalnya kembali seperti biasa dengan:

    2) sudo apt-get install apache2

==> Ini berfungsi dengan baik ...

Terima kasih....

Riyal Padhiyar
sumber
2

Saya mendapat kesalahan yang sama setelah menghapus host virtual. Masalahnya adalah file conf SSL yang melekat terkait dengan host yang berlokasi di /etc/apache2/sites-enabled. SSL melalui Let's Encrypt sehingga kode yang harus saya hapus adalah:

sudo rm yourdomain.com-le-ssl.conf
iMarketingGuy
sumber
1

Saya mendapat kesalahan yang sama Saat bekerja dengan .htaccess

Saya hanya menempatkan perintah ini

<Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

dalam /etc/apache2/sites-enabled/000-default.conffolder ini

setelah menambahkan ini saya mendapatkan kesalahan

maka saya menghapus kedamaian perintah ini dari file dan kesalahan saya telah teratasi.

Kaushikdjay
sumber
1

Anda kemungkinan besar memiliki kesalahan sintaksis. bagi saya itu ada di folder 'situs yang diaktifkan'.

saya salah mengeja 'ServerAlias' menjadi 'ServerAlisa'.

Bruce Tong
sumber
Milik saya salah mengeja folder saya.
Lynnell Emmanuel Neri
0

Ini sebagian besar merupakan kesalahan konfigurasi. Saya baru saja mengaktifkan situs lama di apache, apa yang menyebabkan kesalahan ini. Jadi saya harus menonaktifkannya sebelum memuat ulang apache.

sudo a2dissite <my-site>
sudo service apache2 reload

Masalah terpecahkan :)

Thomas Venturini
sumber
0

Terima kasih untuk bantuannya! Saya dapat menginstal dengan benar dengan Solusi:

Untuk menghapus sepenuhnya file konfigurasi apache2, Anda harus:

  1. sudo apt-get purge apache2 yang kemudian akan memungkinkan Anda menginstalnya kembali seperti biasa dengan:

  2. sudo apt-get install apache 2

Sekarang berfungsi dengan baik.

Renata Sembay
sumber
0

Saya pikir masalahnya adalah Anda memiliki beberapa situs yang diaktifkan tetapi Anda menghapus file konfigurasinya. Coba nonaktifkan situs dengan "nama" sudo a2dissite dan kemudian restart server apache. Setidaknya ini adalah masalah bagi saya dan tindakan ini menyelesaikannya.

Ilias Koritsas
sumber
0

Dalam kasus saya, kesalahan mulai muncul setelah melakukan apt upgrade. Setelah bermain banyak saya pergi ke direktori berikut untuk melihat apa yang bisa saya nonaktifkan.

  • / etc / apache2 / mods-enabled - a2dismod (untuk menghidupkan kembali a2enconf)
  • / etc / apache2 / conf-enabled - a2disconf (untuk menghidupkan kembali a2enconf)

Dalam kasus saya, saya harus mengaktifkan MODS tersebut.

masukkan deskripsi gambar di sini

Tampaknya apt-upgradephp7.2 harus sudah dihapus / rusak karena segera setelah saya menonaktifkannya dan me-restart semuanya bekerja. Tentu saja, dalam kasus orang lain, itu mungkin sesuatu yang berbeda. Ketika Apache macet mungkin konfigurasi buruk atau mod buruk. Anda harus memilih pertempuran Anda.

MadBoy
sumber