ค้นหาเว็บไซต์

วิธีติดตั้งและกำหนดค่า LEMP บน Debian 8 (Jessie)


สาเหตุที่พบบ่อยที่สุดประการหนึ่งในการตั้งค่าระบบ Linux คือเพื่อจุดประสงค์ในการโฮสต์เว็บไซต์ จากการสำรวจของ NetCraft.com ในเดือนกุมภาพันธ์ 2559 เกี่ยวกับเว็บไซต์ที่มีผู้ใช้งานมากที่สุดในโลก 1 ล้านเว็บไซต์ ประมาณ 15.60% ของเว็บไซต์เหล่านั้นทำงานบน Nginx

เมื่อจับคู่กับความสามารถที่เป็นไปได้สูงที่จะมีเนื้อหาไดนามิกบางประเภทที่ให้บริการ รวมถึงแบ็กเอนด์ฐานข้อมูลบางประเภทสำหรับเว็บไซต์ ความสามารถของผู้ดูแลระบบในการตั้งค่าเซิร์ฟเวอร์ LEMP เป็นประโยชน์ต่อผู้หางานและนายจ้างอย่างมาก!

บทช่วยสอนนี้จะอธิบายเกี่ยวกับพื้นฐานของการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ Linux (โดยเฉพาะ Debian 8 Jessie) เพื่อให้ทำงานเป็นเซิร์ฟเวอร์ LEMP

เซิร์ฟเวอร์ LEMP คืออะไร

คำถามที่ดี! เช่นเดียวกับสิ่งต่างๆ ส่วนใหญ่ในโลกของการประมวลผล LEMP เป็นตัวย่อของ Linux, Nginx, MySQL และ PHP

คำย่อนี้มักใช้เพื่ออ้างอิงคอลเลกชันซอฟต์แวร์บนเว็บเซิร์ฟเวอร์ บทช่วยสอนนี้จะอธิบายการตั้งค่า LEMP โดยเฉพาะ MySQL และ PHP ก่อน

ก่อนที่จะแยกออกเป็นด้านการกำหนดค่าของระบบ สิ่งสำคัญคือต้องทราบเกี่ยวกับ Nginx

Nginx คืออะไร?

Nginx เริ่มต้นขึ้นในปี 2002 เมื่อโลกของคอมพิวเตอร์เริ่มตระหนักว่าเว็บไซต์ที่มีการเชื่อมต่อพร้อมกันนับหมื่นขึ้นไปนั้นมีความเป็นไปได้อย่างแท้จริง และด้วยเหตุนี้ Nginx จึงถูกสร้างขึ้นตั้งแต่ต้นเพื่อแก้ไขปัญหานี้

การติดตั้งและกำหนดค่า MySQL และ PHP

1. ส่วนแรกนี้จะกล่าวถึง Debian ในฐานะเซิร์ฟเวอร์ MySQL และ PHP ส่วน Linux ของเซิร์ฟเวอร์ LEMP ควรจะเสร็จสิ้นแล้วโดยการติดตั้ง Debian! อย่างไรก็ตาม หากจำเป็นต้องมีคำแนะนำในการติดตั้ง Debian โปรดอ่านบทความต่อไปนี้ใน TecMint:

  1. การติดตั้ง Debian 8 Jessie

เมื่อ Debian พร้อมที่จะดำเนินการตามขั้นตอนการติดตั้งซอฟต์แวร์ที่จำเป็นที่เหลือ ก็สามารถดำเนินการให้เสร็จสิ้นได้ด้วยคำสั่งด่วนคำสั่งเดียวโดยใช้ meta-packager 'apt'

apt-get install mysql-server-5.5 php5-mysql php5

ขึ้นอยู่กับฮาร์ดแวร์ของระบบและการเชื่อมต่ออินเทอร์เน็ต กระบวนการนี้อาจใช้เวลาสักครู่ ในขณะที่เขียนบทความนี้ การติดตั้ง Debian Jessie ใหม่พร้อมการอัปเดตทั้งหมดจำเป็นต้องมีไฟล์เก็บถาวรประมาณ 70MB จากที่เก็บ (ไม่ได้แย่ขนาดนั้นเมื่อพิจารณาว่าเซิร์ฟเวอร์จะทำอะไรเมื่อสิ่งต่าง ๆ เสร็จสิ้น)! ในระหว่างกระบวนการติดตั้ง ระบบอาจพร้อมท์ให้ผู้ใช้ตั้งรหัสผ่านผู้ใช้รูท SQL สิ่งนี้แตกต่างจากรหัสผ่านของผู้ใช้รูทจริง และเพื่อความปลอดภัยก็ควรจะแตกต่างออกไป

2. เมื่อ apt ติดตั้งซอฟต์แวร์ทั้งหมดเสร็จแล้ว บริการพื้นฐานจะเริ่มทำงาน อย่างไรก็ตาม การหยุดที่นี่จะทำให้ได้บทเรียนที่สั้นมาก! เรามาดูรายละเอียดเพิ่มเติมอีกเล็กน้อยเกี่ยวกับการกำหนดค่าของซอฟต์แวร์แต่ละชิ้นที่ติดตั้งโดยเริ่มจาก MySQL

3. หลังการติดตั้ง MySQL มักแนะนำให้เซิร์ฟเวอร์ SQL มีการดูแลพื้นฐานบางอย่างในการติดตั้งเริ่มต้น ทำได้อย่างง่ายดายด้วยยูทิลิตี mysql_secure_installation

คำสั่งนี้เรียกใช้จากบรรทัดคำสั่งและจะแจ้งให้ผู้ใช้ลบสิ่งต่างๆ เช่น ผู้ใช้ที่ไม่ระบุชื่อ ฐานข้อมูลทดสอบ และลบความสามารถในการล็อกอินของผู้ใช้รูทระยะไกลไปยังฐานข้อมูล SQL

mysql_secure_installation

คำสั่งนี้จะเริ่มพร้อมท์โต้ตอบที่จะถามคำถามเกี่ยวกับหัวข้อข้างต้น เนื่องจาก apt ได้รับแจ้งให้ใส่รหัสผ่านรูท MySQL จึงต้องป้อนรหัสผ่านนั้นเพื่อทำการเปลี่ยนแปลง เนื่องจากมีการตั้งค่ารหัสผ่านรูทไว้แล้ว No จึงเป็นคำตอบสำหรับการเปลี่ยนรหัสผ่านรูทบนเซิร์ฟเวอร์ MySQL

4. คำถามชุดต่อไปจะเกี่ยวกับผู้ใช้ที่ไม่ระบุชื่อ ฐานข้อมูล 'ทดสอบ' และการเข้าถึงรูทไปยังฐานข้อมูลจากระยะไกล โดยทั่วไปแล้วจะปลอดภัยที่จะตอบ ใช่ สำหรับข้อความแจ้งทั้งหมดเหล่านี้ เว้นแต่จะมีเหตุผลเฉพาะที่ทำให้การตั้งค่าต้องการให้ตัวเลือกใดตัวเลือกหนึ่งเหล่านี้ไม่เสียหาย

หมายเหตุ: อาจมีข้อผิดพลาดเกี่ยวกับความล้มเหลวในการลบฐานข้อมูลที่เรียกว่า 'ทดสอบ' ไม่ต้องกังวลกับเรื่องนี้ เนื่องจากฐานข้อมูลอาจหรือ อาจไม่มีอยู่และไม่ว่าสคริปต์จะยังคงทำสิ่งที่จำเป็นต่อไป

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

5. เมื่อกำหนดค่า MySQL แล้ว เรามาตั้งค่าการตั้งค่า PHP พื้นฐานสำหรับเซิร์ฟเวอร์นี้กันดีกว่า แม้ว่าจะมีการตั้งค่ามากมายที่สามารถจัดการได้สำหรับ PHP แต่ก็มีการตั้งค่าพื้นฐานเพียงไม่กี่อย่างที่ควรแก้ไขเกือบทุกครั้ง ไฟล์การกำหนดค่า php อยู่ที่ /etc/php5/fpm/php.ini เปิดไฟล์นี้ด้วยโปรแกรมแก้ไขข้อความใดก็ได้

nano /etc/php5/fpm/php.ini

การใช้ความสามารถในการค้นหาของ nano ctrl+w ค้นหาสตริง “memory_limit ” (ละเครื่องหมายคำพูด) ในการติดตั้งเริ่มต้น บรรทัดนี้จะถูกตั้งค่าเป็น 128M อยู่แล้ว แต่หากแอปพลิเคชันต้องการมากกว่านี้ บรรทัดนี้สามารถเปลี่ยนแปลงได้เพื่อรองรับข้อกำหนด

ตัวเลือกที่สำคัญอีกตัวที่ต้องตรวจสอบคือ “max_execution_time ” และอีกครั้งโดยค่าเริ่มต้นจะถูกตั้งค่าเป็น 30 หากแอปพลิเคชันต้องการมากกว่านี้ คุณสามารถเปลี่ยนแปลงตัวเลือกนี้ได้ บางคนต้องการตั้งค่าการบันทึก php ไปยังไฟล์/ไดเร็กทอรีพิเศษด้วย หากเป็นข้อกำหนด ให้ค้นหาสตริง “error_log = ” จากนั้นยกเลิกการใส่เครื่องหมายข้อคิดเห็นบรรทัดโดยลบเครื่องหมายอัฒภาคที่โดยทั่วไปจะมีตามค่าเริ่มต้นออก

ณ จุดนี้ คุณสามารถเพิ่มค่าสำหรับไฟล์บันทึกที่ท้ายบรรทัดได้ ตรวจสอบให้แน่ใจว่าเส้นทางนั้นมีอยู่บนระบบ เมื่อทำการเปลี่ยนแปลงที่จำเป็นในไฟล์ php.ini เสร็จแล้ว ให้บันทึกการเปลี่ยนแปลงและออกจากโปรแกรมแก้ไขข้อความ ณ จุดนี้ MySQL และ PHP5 พร้อมที่จะเริ่มโฮสต์ไซต์แล้ว ถึงเวลากำหนดค่า Nginx แล้ว

การติดตั้งและกำหนดค่า Nginx

6. Nginx (engine X) เป็นเว็บเซิร์ฟเวอร์ทางเลือกและมีประสิทธิภาพมาก ในส่วนนี้ของบทช่วยสอนนี้จะอธิบายการตั้งค่าหน้าเว็บเพื่อให้ Nginx โฮสต์ ขั้นตอนแรกในการกำหนดค่า Nginx คือการติดตั้งแพ็คเกจที่จำเป็นโดยใช้ยูทิลิตี้ 'apt'

apt-get install nginx

สมมติว่าเป็นไปตามการขึ้นต่อกันทั้งหมด การนำทางไปยังที่อยู่ IP ของเซิร์ฟเวอร์ในเว็บเบราว์เซอร์ควรให้ผลลัพธ์เป็นเว็บไซต์ Nginx เริ่มต้น

หมายเหตุ: มีบางกรณีที่หลังจากติดตั้ง Nginx แล้ว เซิร์ฟเวอร์จะไม่เริ่มทำงานโดยอัตโนมัติ หากการนำทางไปยังที่อยู่ IP ของเซิร์ฟเวอร์ในเว็บเบราว์เซอร์ไม่ทำให้ได้หน้าด้านล่าง ให้ออกคำสั่งต่อไปนี้เพื่อให้แน่ใจว่า Nginx เริ่มทำงานแล้ว

service nginx start

ตอนนี้ Nginx โฮสต์หน้าเริ่มต้นได้สำเร็จ แม้ว่าหน้าเริ่มต้นของ Debian จะเป็นเว็บไซต์ที่ฉูดฉาด แต่ผู้ใช้ส่วนใหญ่ก็ต้องการโฮสต์บางสิ่งที่กำหนดเอง

7. ขั้นตอนถัดไปจะอธิบายการตั้งค่า Nginx เพื่อโฮสต์เว็บไซต์อื่น Nginx ก็เหมือนกับ Apache 2 มาก โดยมีไดเร็กทอรีการกำหนดค่าของตัวเองอยู่ที่ /etc/nginx สลับไปที่ไดเร็กทอรีนี้โดยใช้ยูทิลิตี cd

cd /etc/nginx

สำหรับบทช่วยสอนนี้มีไฟล์และไดเร็กทอรีที่สำคัญหลายไฟล์สำหรับการตั้งค่าเว็บไซต์โดยใช้ Nginx สองไดเรกทอรีแรกที่มีความสำคัญคือไดเรกทอรี 'sites-available' และ 'sites-enabled' เช่นเดียวกับ Apache 2 Nginx ใช้ไฟล์การกำหนดค่าสำหรับแต่ละไซต์ในไดเร็กทอรีที่มีอยู่ของไซต์ซึ่งเมื่อใช้งานอยู่จะมีการเชื่อมโยงเชิงสัญลักษณ์ในไดเร็กทอรีที่เปิดใช้งานไซต์

สิ่งแรกที่จำเป็นในการกำจัดไซต์เริ่มต้นคือการลบลิงก์สัญลักษณ์ในไซต์ที่เปิดใช้งาน

rm sites-enabled/default

8. ตอนนี้จำเป็นต้องสร้างและเชื่อมโยงไฟล์การกำหนดค่าไซต์ใหม่เพื่อให้ Nginx สามารถให้บริการเพจได้ การสร้างไฟล์การกำหนดค่าไซต์สามารถทำได้ง่ายขึ้นโดยการคัดลอกและแก้ไขการกำหนดค่าไซต์เริ่มต้น

cp sites-available/default sites-available/tecmint-test

สิ่งนี้จะสร้างไฟล์การกำหนดค่าไซต์ใหม่เพื่อใช้งาน เปิดไฟล์นี้ในโปรแกรมแก้ไขข้อความเพื่อเปลี่ยนเส้นทางที่ Nginx จะให้บริการไฟล์

nano sites-available tecmint-test

ภายในไฟล์นี้มีตัวเลือกสำคัญหลายประการที่ต้องเปลี่ยนแปลงเพื่อให้ Nginx ให้บริการไซต์ บรรทัดแรกคือบรรทัดที่ขึ้นต้นด้วย 'root' เนื่องจากบรรทัดนี้กำหนดตำแหน่งที่ Nginx ควรให้บริการไฟล์สำหรับไซต์นี้โดยเฉพาะ

บทช่วยสอนนี้จะปล่อยให้เป็นค่าเริ่มต้นของ '/var/www/html' และเพียงวางไฟล์ html ที่จะให้บริการในไดเร็กทอรีนี้ อย่างไรก็ตาม อย่าลืมแก้ไขเส้นทางนี้หากมีหลายไซต์หรือมีการกำหนดค่าแบบกำหนดเองบนเซิร์ฟเวอร์นี้

บรรทัดถัดไปที่มีความสำคัญคือบรรทัด 'ดัชนี' เนื่องจากบทความนี้เกี่ยวกับการติดตั้ง LEMP และไซต์อาจให้บริการหน้า PHP ได้ ดังนั้น Nginx จึงจำเป็นต้องทราบว่าหน้าเริ่มต้นอาจเป็นหน้า PHP ในการดำเนินการนี้ เพียงเพิ่ม 'index.php' ต่อท้ายรายการดัชนีของไฟล์

ก่อนที่จะเปิดใช้งานไซต์ใหม่ จำเป็นต้องมีบางอย่างเพื่อให้ Nginx ให้บริการ หน้าดัชนีเริ่มต้นมีอยู่แล้ว แต่เพื่อยืนยันว่าไซต์อื่นใช้งานได้ ให้แทนที่เนื้อหาของหน้าเริ่มต้นด้วยอย่างอื่น

echo “It's ALIVE!” > /var/www/html/index.html

9. ขั้นตอนต่อไปคือการเปิดใช้งานไซต์ใหม่โดยการเชื่อมโยงไฟล์การกำหนดค่าที่เพิ่งสร้างขึ้นไปยังไดเรกทอรี ที่เปิดใช้งานไซต์ ซึ่งทำได้อย่างง่ายดายด้วยการใช้คำสั่ง ln จากนั้นโหลดการกำหนดค่าของ Nginx อีกครั้งด้วยยูทิลิตี้บริการ

ln -s /etc/nginx/sites-available/tecmint-test sites-enabled/tecmint-test
service nginx reload

ณ จุดนี้ Nginx ควรให้บริการหน้าเว็บ 'เรียบง่าย' ใหม่ สามารถยืนยันได้โดยการนำทางไปยังที่อยู่ IP ของเซิร์ฟเวอร์ผ่านทางเว็บเบราว์เซอร์!

ขอย้ำอีกครั้งว่าบทความนี้เป็นการกำหนดค่าที่เรียบง่ายของ LEMP ไซต์ส่วนใหญ่จะต้องมีการกำหนดค่าเพิ่มเติมให้กับทุกส่วนที่เกี่ยวข้อง แต่ตัวเลือกการกำหนดค่าอาจมีตั้งแต่หลักพัน! ขอให้โชคดีกับการตั้งค่าที่เคยเลือกไว้เพื่อโฮสต์เว็บไซต์