วิธีเริ่มบริการอัตโนมัติ (apache2) ด้วย Linux Mint


11

(Strangley) Apache2 ที่ติดตั้งแล้วของฉันไม่เริ่มทำงานเมื่อลงชื่อเข้าใช้ Linux Mint

การรันคำสั่งนี้จะทำให้มันเกิดขึ้น:

sudo service apache2 start

ฉันจะพยายามเริ่มบริการนี้เมื่อลงชื่อเข้าใช้แต่ละครั้งได้อย่างไร


คุณสามารถวางคำสั่ง~/.xinitrcนั้นซึ่งจะทำงานเมื่อเริ่มต้น
n0pe

2
@MaxMackie ตรงกันข้าม~/.xinitrcจะทำงานในเวลาเข้าสู่ระบบซึ่งไม่ถูกต้อง Apache จะต้องเริ่มต้นโดยรูทเมื่อบู๊ตเครื่อง
Gilles 'หยุดความชั่วร้าย'

@Gilles ใช่ฉันลืมไปแล้วขอบคุณสำหรับการแก้ไข อย่างไรก็ตามทำไม apache ต้องเริ่มทำงานตอนบู๊ต การเข้าสู่ระบบจะไม่ประสบความสำเร็จในสิ่งเดียวกันหรือไม่
n0pe

@ MaxMackie ไม่ได้ถ้าคุณไม่ได้เข้าสู่ระบบทันทีหลังจากบูตแน่นอน Apache ยังไม่ทำงานเหมือนคุณดังนั้นคุณต้องให้สิทธิ์พิเศษ มันควรเริ่มต้นที่ส่วนหนึ่งของสคริปต์บูตและโดยปกติแล้ว
Gilles 'SO- หยุดความชั่วร้าย'

@Gilles ด้านขวา ขอบคุณสำหรับการส่องแสงที่
n0pe

คำตอบ:


12

Debian (Ubuntu / Linux Mint)

rcconf (CLI-GUI)

sudo apt-get install rcconf
sudo rcconf

ปรับปรุง rc.d

sudo update-rc.d -f apache2 add

หรือ

sudo update-rc.d apache2 defaults

RedHat / Fedora / CentOS

chkconfig

sudo chkconfig --add apache2

หรือ

sudo chkconfig -- level 35 apache2 on

Apache ได้รับการตรวจสอบแล้วเมื่อฉันรัน rcconf
eoinoc

การรันupdate-rc.dคำสั่งทำให้เกิดข้อผิดพลาด: update-rc.d: warning: apache2 start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5).
eoinoc

คุณได้รับการอัปเดตค่าเริ่มต้น apache2 apache2หรือupdate-rc.d -f apache2 เพิ่ม 3 5
earthmeLon

1
ขอบคุณ แต่ก็ไม่ได้ผล ครั้งแรกส่งผลให้ "อยู่แล้ว" warning: apache2 start runlevel arguments (none) do not batch LSB default-Start values (2 3 4 5)คำเตือนที่สองส่งผลให้
eoinoc

6

เนื่องจาก Mint ใช้ Ubuntu และ Ubuntu ได้เปลี่ยนเป็นUpstart ตำรา Upstartจึงมีข้อมูลทั้งหมดสำหรับการเริ่มให้บริการในการบู๊ตหรือที่ runlevel ที่ระบุ

เว็บไซต์นี้ ให้ตำราอาหารโดยละเอียดสำหรับการเริ่มต้น Apache ตอนบูท


/etc/init.d/apache2ที่พูดถึงหน้าเกี่ยวกับการวางสคริปต์ทุบตีใน แต่ไฟล์นั้นเต็มไปด้วยสคริปต์ทุบตีที่มีความซับซ้อนมากกว่านี้อยู่แล้วซึ่ง Apache จะต้องวางไว้ที่นั่น
eoinoc

3

สาเหตุอีกประการของปัญหาเดียวกันคือลำดับความสำคัญของลิงก์ apache ใน rc [0-6] .d ของฉันคือ S90 และ K09 และ Apache จะไม่เริ่มการบู๊ต การตั้งค่าลำดับความสำคัญเป็นค่าเริ่มต้นของพวกเขา, 20, ทำงานให้ฉัน ลิงค์ที่มีอยู่จะต้องถูกลบออกก่อน

sudo update-rc.d -f apache2 remove
sudo update-rc.d apache2 defaults

2

เมื่อปิดเครื่องฉันเห็นข้อผิดพลาด:

ข้อผิดพลาดทางไวยากรณ์ในบรรทัด 230 ของ /etc/apach2/apache.conf .... / etc / apache / sites-enable / mysite: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

สิ่งนั้นคือmysiteถูกเชื่อมโยงกับไฟล์ในโฟลเดอร์บ้านของฉัน

ปกติแล้วฉันไม่ควรจะมีปัญหา

แต่เท่าที่ผมรู้ว่าพาร์ทิชันที่บ้านของฉันคือการเข้ารหัส ดังนั้นฉันเดาว่า Apache ไม่สามารถอ่านไฟล์ไซต์เสมือนเมื่อโหลด ไฟล์ไม่สามารถเข้าถึงได้จนกว่าฉันจะพิมพ์รหัสผ่านของฉัน

สถานการณ์ที่ซับซ้อนและใช้เวลาหลายเดือนกว่าจะสำเร็จ :)


แล้วคุณคิดยังไง
Jonas Äppelgran

0

คำตอบใหม่อัพเดทในปี 2562:

sudo systemctl เริ่ม httpd

sudo systemctl เปิดใช้งาน httpd

คำสั่ง systemctl เป็นเครื่องมือใหม่ในการควบคุมระบบและบริการ นี่คือการแทนที่การจัดการระบบเริ่มต้น SysV เก่า ระบบปฏิบัติการ Linux ที่ทันสมัยส่วนใหญ่ใช้เครื่องมือใหม่นี้ หากคุณทำงานกับ CentOS 7, Ubuntu 16.04 หรือใหม่กว่าหรือระบบ Debian 9 พวกเขาได้เลือกใช้ systemd ตอนนี้

บริการเริ่มใช้งานอัตโนมัติเมื่อบูตระบบ นี่คือตัวเลือกที่คล้ายกันสำหรับ systemd กว่า chkconfig สำหรับ SysV init


1
คุณอาจลองพลิกคำสั่งซื้อเพื่อให้มันเปิดใช้งานก่อนที่คุณจะขอให้เริ่ม
Jeff Schaller
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.