pengembangan-web-mp-pd.com

Bagaimana cara mendapatkan Apache untuk memulai saat boot di Linux?

Saya telah menginstal Apache 2 dari sumber pada kotak Linux saya. apachectl -k start berfungsi dengan baik, tetapi bagaimana saya membuat Apache untuk memulai saat boot?

Ini adalah distribusi Red Hat Linux:

Linux <hostname> 2.6.9-55.ELsmp # 1 SMP Jumat 20 Apr 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux

32
grieve

Anda ingin menambahkan skrip init-nya ke level run yang sesuai. Skrip init biasanya /etc/init.d/Apache2 tempat Anda dapat menjalankan secara manual /etc/init.d/Apache2 start untuk memulainya.

Di Gentoo Anda akan menulis:

rc-update add Apache2 default

Di Ubuntu/Debian ini berfungsi:

Sudo update-rc.d Apache2 defaults

Di Red Hat Linux/Fedora/CentOS sedikit googling menunjukkan ini:

chkconfig --add httpd

Ini sedikit bervariasi dari distribusi ke distribusi, tetapi idenya biasanya sama. Pada dasarnya, semua perintah ini membuat tautan simbolis dari /etc/init.d/ ke folder run-level yang sesuai di /etc/.

46
Evan Teran

Inilah yang akhirnya berhasil untuk saya. Ini mengasumsikan Anda adalah pengguna root.

  1. vi /etc/init.d/Apache2 (edit seperti yang ditunjukkan di bawah ini)
  2. chmod 755 /etc/init.d/Apache2
  3. chkconfig --add Apache2
  4. chkconfig --list Apache2 (untuk memverifikasi bahwa itu berfungsi)

Isi dari /etc/init.d/Apache2:

 #!/bin/bash 
 # 
 # Skrip pembuka Apache2 untuk Server HTTP Apache 
 # 
 # chkconfig: 3 85 15 
 # description: Apache adalah server World Wide Web. Ini digunakan untuk melayani\
 # File HTML dan CGI. 
 
/Usr/local/Apache2/bin/apachectl $ @ 

Anda bisa mendapatkan runlevel dengan menjalankan/sbin/runlevel, yang dalam kasus saya adalah 3. Dan tentu saja Anda perlu memanggil versi apachectl Anda, yang dalam kasus saya adalah/usr/local/Apache2/bin/apachectl

Berkat yang berikut ini:

26
grieve

Periksa apakah Anda memiliki skrip httpd init di /etc/rc.d direktori. Jika ya, maka Anda bisa menjalankan perintah berikut ini yang memungkinkan layanan httpd dimulai saat boot.

chkconfig --level 345 httpd on

Jika Anda tidak memiliki skrip init, maka tambahkan saja /etc/rc.local file dengan apachectl -k start (perintah untuk memulai Apache).

8
Viky

Karena Anda telah menginstal berdasarkan sumber, skrip init tidak akan diinstal pada direktori /etc/init.d/. Biner apachectl dirancang agar kompatibel dengan opsi skrip init standar sehingga Anda mungkin dapat dengan mudah menyinkronkannya daripada membuat skrip pembungkus (mis. Ln -s/usr/local/sbin/apachectl /etc/init.d/ Apache)

Anda kemudian dapat mengikuti prosedur yang diuraikan dalam posting lain untuk menambahkan tautan untuk menjalankan skrip init di runlevel yang benar.

Kutipan: Dokumentasi Apache http://httpd.Apache.org/docs/2.2/invoking.html

Mulai saat Boot

Jika Anda ingin server Anda terus berjalan setelah reboot sistem, Anda harus menambahkan panggilan ke apachectl ke file startup sistem Anda (biasanya rc.local atau file di direktori rc.N). Ini akan memulai Apache sebagai root. Sebelum melakukan ini, pastikan server Anda dikonfigurasi dengan benar untuk pembatasan keamanan dan akses.

Skrip apachectl dirancang untuk bertindak seperti skrip init SysV standar; dapat mengambil argumen mulai, restart, dan berhenti dan menerjemahkannya ke sinyal yang sesuai untuk httpd. Jadi, Anda seringkali dapat dengan mudah menghubungkan apachectl ke direktori init yang sesuai. Tetapi pastikan untuk memeriksa persyaratan yang tepat dari sistem Anda.

4

Di Red Hat Linux ada utilitas berguna yang disebut ntsysv yang memungkinkan Anda memilih layanan mana yang ingin Anda mulai di level run saat ini. Anda memanggil juga menentukan level run mana yang ingin Anda edit ketika Anda memulai utilitas menggunakan --level.

Gulir ke bawah ke httpd dan tekan Space jadi bintang muncul di kotak kiri. Kemudian Tab ke OK. tekan Return untuk menyimpan dan kembali ke Shell.

Saya telah menemukan bahwa itu menginstal cukup banyak secara default. Saya tidak pernah berada di posisi yang tidak diinstal.

Anda harus menginstal layanan terlebih dahulu dengan menyalin skrip layanan ke /etc/init.d lalu menjalankan:

chkconfig --add <script name>
1
Garry Harthill

chkconfig --levels 345 httpd

akan memulai httpd di runlevel 3,4,5.

chkconfig --list akan menampilkan semua layanan dan runlevel startup mereka saat ini. 345 adalah tipikal untuk layanan jaringan.

1
elint

Itu tergantung pada rasa Linux Anda. Dengan asumsi file /etc/init.d/Apache2 telah dibuat, coba:

chkconfig -a Apache2

atau

update-rc.d Apache2 defaults

Salah satunya harus bekerja.

1
Neobyte