Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีที่ดีที่สุดในการรีสตาร์ทเว็บเซิร์ฟเวอร์ Apache

เมื่อคุณโฮสต์เว็บไซต์ของคุณบนแพลตฟอร์มโอเพ่นซอร์ส เป็นไปได้มากที่แพลตฟอร์มนี้ใช้ Apache เป็นเว็บเซิร์ฟเวอร์เริ่มต้นที่ทำงานบนการกระจาย Linux ระดับเซิร์ฟเวอร์ เมื่อคุณทำการเปลี่ยนแปลงที่สำคัญกับโครงสร้างของการกำหนดค่าของเว็บเซิร์ฟเวอร์ คุณจะต้องรีสตาร์ทเว็บเซิร์ฟเวอร์ (ไม่ใช่โดยแท้จริงแล้วคือระบบปฏิบัติการ) ขั้นตอนการรีสตาร์ท Apache ขึ้นอยู่กับระบบปฏิบัติการของเซิร์ฟเวอร์

ข้อกำหนดเบื้องต้น

ในการรีสตาร์ทเซิร์ฟเวอร์ คุณจะต้องมีสิทธิ์เข้าถึงระบบปฏิบัติการที่ Apache กำลังทำงานอยู่ ด้วยเซิร์ฟเวอร์ส่วนตัวเสมือนโดยเฉพาะ คุณจะเข้าสู่ระบบเชลล์พร้อมต์ผ่านเบราว์เซอร์หรือใช้เซสชัน Secure Shell ที่เริ่มต้นจากคอมพิวเตอร์ในพื้นที่ของคุณ หากคุณไม่สามารถเข้าสู่ระบบเซิร์ฟเวอร์และรันคำสั่งที่มีสิทธิ์ระดับสูงได้ (เช่น โดยใช้ sudo ) คุณไม่สามารถรีสตาร์ทเซิร์ฟเวอร์ Apache ได้ ในกรณีนี้ คุณจะต้องพูดคุยกับผู้ดูแลระบบเพื่อขอความช่วยเหลือ

การทำงานกับเซิร์ฟเวอร์ใน Linux

วิธีที่ดีที่สุดในการรีสตาร์ทเว็บเซิร์ฟเวอร์ Apache

ลีนุกซ์หลายรุ่นรองรับชุดของเชลล์สคริปต์ที่ควบคุมบริการหลัก. สคริปต์เหล่านี้ตอบสนองต่ออาร์กิวเมนต์หลายตัวที่กำหนดลักษณะการทำงานของสคริปต์:

  • เริ่ม :เริ่มให้บริการ
  • หยุด :ยุติบริการ
  • เริ่มต้นใหม่ :เริ่มบริการใหม่โดยไม่คำนึงถึงการใช้งานในปัจจุบัน
  • โหลดซ้ำ :เริ่มบริการใหม่อย่างนุ่มนวล ปล่อยให้การเชื่อมต่อปัจจุบันดำเนินต่อไปหากทำได้

หากทำได้ ให้ใช้ โหลดซ้ำ แทน รีสตาร์ท เนื่องจากอันแรกไม่ได้ฆ่าเซิร์ฟเวอร์จริง ๆ มันแค่เริ่มต้นใหม่โดยการอ่านไฟล์การกำหนดค่าปัจจุบันอีกครั้ง รีสตาร์ท ยกเลิกการเชื่อมต่อไคลเอ็นต์ที่เชื่อมต่ออยู่ในปัจจุบันกับเซิร์ฟเวอร์นอกเหนือจากการเริ่มต้นไฟล์การกำหนดค่าใหม่

โดยทั่วไป คุณจะเริ่มบริการเซิร์ฟเวอร์ใหม่โดยใช้หนึ่งในสามวิธี

อย่างแรกคือการใช้สคริปต์จาก /etc/init.d/—โดยทั่วไปสำหรับเซิร์ฟเวอร์ที่ใช้ Debian ก่อนเวอร์ชัน 8.x หรือ Ubuntu ก่อน 15.04 ประการที่สองคือการใช้ systemctl สั่งการ. วิธีที่สามและไม่ปลอดภัยคือการใช้ apachectl .

การใช้ Init.d

ลีนุกซ์รุ่นที่ใช้สคริปต์ /etc/init.d/ อาจใช้คำสั่งสามคำสั่งต่อไปนี้เพื่อรีสตาร์ท Apache:

/etc/init.d/apache2 รีสตาร์ท
sudo /etc/init.d/apache2 รีสตาร์ท
sudo service apache2 รีสตาร์ท

หากต้องการเริ่มต้นใหม่อย่างนุ่มนวล ให้แทนที่ รีสตาร์ท ด้วย รีโหลด

สำหรับเซิร์ฟเวอร์ CentOS และ RHEL 6.x หรือเก่ากว่า ให้ใช้บริการ สคริปต์ แต่แทนที่จะเรียกมันว่า apache2 คุณจะเรียกมันว่า httpd แทน:

บริการ httpd รีสตาร์ท

การใช้ Systemctl

ระบบปฏิบัติการที่ใหม่กว่า เช่น Debian 8.x, Ubuntu 15.04, CentOS/RHEL 7.x และเวอร์ชันที่ใหม่กว่า ใช้ httpd ดำเนินการคำสั่งต่อไปนี้:

systemctl รีสตาร์ท httpd.service

การใช้ Apachectl

apachectl สคริปต์เสนอวิธีการทั่วไปที่มีจุดมุ่งหมายที่จะไม่เชื่อเรื่องพระเจ้าเกี่ยวกับการกระจายเซิร์ฟเวอร์เฉพาะของคุณ ในการดำเนินการ คุณต้องเรียกใช้ในฐานะผู้ใช้รูท:

sudo apachectl -k restart
sudo apachectl -k สง่างาม

สง่างาม วิธีการจะคล้ายกับ รีโหลด วิธีการ