Saya menginstal Apache sejak lama sebagai bagian dari pengaturan lingkungan pengembangan di laptop saya.
Namun, karena saya menghentikannya beberapa bulan lalu, itu tidak lagi mulai secara otomatis saat boot. Saya memiliki masalah ini di laptop saya di rumah DAN di laptop saya di tempat kerja.
Saya kedua kasus, saya menginstal Apache di Ubuntu 10,10 beberapa bulan yang lalu, menggunakannya selama beberapa minggu tanpa kesalahan, tetapi kemudian suatu hari saya menghentikannya dan sekarang tidak lagi mulai secara otomatis. Saya mencoba menjalankan pembaruan rc untuk itu secara manual, tetapi diberitahu bahwa skrip init sudah digunakan.
Namun, memulai / memulai ulang secara manual dengan
sudo service apache2 start/restart
bekerja dengan baik. Dalam kedua kasus, saya membiarkannya sampai setelah upgrade ke 11,04, karena saya berharap itu akan diselesaikan oleh versi baru. Tapi ternyata tidak! Saya akan berterima kasih jika seseorang dapat memberi tahu saya cara membuat Apache mulai secara otomatis sekali lagi.
Saya menambahkan jawaban ini berdasarkan masalah terkini yang saya temui dengan gejala yang sama.
Pertama beberapa data latar belakang:
/etc/init.d/
folder untuk memulai / menghentikan layanan./etc/init.d/
skrip - skrip tersebut, disimpan di/etc/rc#.d/
folder, untuk memulai / menghentikan layanan berdasarkan "runlevel"./etc/rc1.d/
, runlevel 2 menggunakan/etc/rc2.d/
, dan sebagainya.sudo update-rc.d apache2 defaults
yang menciptakan symlink yang sesuai di/etc/rc#.d/
folder.Jadi sepertinya di server saya ada sesuatu, atau seseorang, pada suatu titik berlari
sudo update-rc.d apache2 disable
yang menghapus semua symlink "S" dan menggantinya dengan symlink "K". Dengan demikian membunuh, atau hanya tidak memulai, Apache ketika menginisialisasi runlevel.Solusi saya hanyalah mengaktifkan kembali Apache:
Sekarang Apache mulai / berhenti seperti yang diharapkan saat memulai atau mengganti runlevel.
NB:
Perlu dicatat bahwa hanya menjalankan
sudo update-rc.d apache2 defaults
lagi tidak cukup karena ia melihat bahwa symlink ada dan menganggap bahwa itulah yang diinginkan. Itu hanya menanggapi dengan:sumber
sudo update-rc.d apache2 enable defaults
menghapus apa yang saya miliki dan kemudian meletakkannya kembali. Saya milikiK09apache2
di rc0, 1, dan 6, dan saya punyaS91apache2
di rc2, rc3, rc4, rc5.service apache2 start
berfungsi dengan baik, tetapi saya harus melakukannya setelah setiap restart karena itu tidak akan mulai secara otomatis. mysql, di sisi lain, selalu dimulai dengan baik./var/log/syslog
dan/var/log/apache2/error.log
. Kirimi saya pesan dengan tautan ke pertanyaan dan saya akan melihat apakah saya dapat membantu.Dalam hal ini, saya mencari tahu mengapa Apache tidak memulai. Saya tidak dapat menemukan jejak ini di log startup, hanya dalam output yang dicetak ke layar saat bootup.
Tapi ini dia: Baris terakhir dalam skrip
/etc/apache2/apache2.conf
gagal.Mengapa?
Ia mengatakan:
Include sites-enabled/
Namun, dua situs yang saya siapkan terletak di direktori home saya sendiri - yang dienkripsi!
Jadi, saat boot (saat startup Apache) situs-situs ini tidak ada, dan Apache gagal dan menolak untuk berjalan.
Larutan?
Saya telah membuat skrip kecil bernama "disable_sites" dan menghubungkannya dengan
/etc/rc0.d
dan/etc/rc6.d
(shutdown dan reboot):Saya juga membuat skrip untuk mengaktifkan kembali situs setiap kali saya masuk dan menambahkannya sebagai program startup di Pengaturan Sistem saya. Jadi sekarang berhasil!
Jadi, saya kira pelajaran di sini adalah bahwa ketika Apache secara misterius gagal memuat saat bootup dan Anda tidak dapat menemukan kesalahan dalam log atau ketika memulai server secara manual, periksa apakah semua direktori yang dibutuhkan tersedia. Ini mungkin juga bisa diselesaikan dengan cara lain.
sumber
apachectl configtest
akan memberi tahu Anda tentang kurangnya izin untuk mengakses file, saat berjalan sebagai daemon.Untuk orang lain yang mencari (googling) untuk masalah ini periksa apakah Anda menjalankan:
Anda mendapatkan
lain lakukan:
(maaf pada ubuntu chkconfig setara adalah update-rc.d lihat alternatif Chkconfig untuk Server Ubuntu? )
sumber
Saya memiliki masalah yang sama, dan saya menjalankan Ubuntu 14 pada pengaturan Vagrant lokal. Saya menghapus
/etc/apache2/sites-enabled
direktori dan menambahkan tautan ke direktori rumah saya, yang tentu saja dipasang ke drive lokal saya sesuai dengan konfigurasi Vagrant.Ternyata apache tidak melihat direktori karena sumber dayanya belum terpasang. Saya menulis ulang provisi saya di Vagrant untuk hanya menyalin
sites-enabled
direktori alih-alih menambahkan symlink.Saya juga melakukan
sudo update-rc.d apache2 enable
seperti yang disarankan olehKarl Wilbur
untuk memastikan apache init diaktifkan.sumber