How to – วิธีติดตั้ง LEMP ( Linux + Nginx + MySQL + PHP ) บน CentOS 7

บทนำ

ในบทความนี้จะเป็นการแนะนำการติดตั้ง Web Server ผ่าน Nginx ใน Operation System ( OS ) ที่ชื่อ CentOS ที่ผมเคยกล่าวถึงใน “เล่าประสบการณ์ – จากการโดนยิงจนล้ม” ไปแล้วนิดหน่อย ถึงเหตุผลที่ผมใช้ OS นี้แทนที่จะเลือกใช้งาน UbuntuOS เอาหล่ะวันนี้เราจะมีพูดถึงวิธีการติดตั้งระบบกันดีกว่า โดยในบทความนี้ผมขอข้ามวิธีการติดตั้ง CentOS นะครับ ถ้ามีโอกาสจะมาเขียนบทความสำหรับการติดตั้ง CentOS ใหม่

เอาหล่ะเรามาเริ่มกันเลยดีกว่า

ติดตั้ง Nginx

อันดับแรกเลยก่อนที่จะทำการติดตั้ง Nginx เราต้องติดตั้ง Package สำหรับชี้ Repository ของ Nginx โดยติดตั้ง Package ดังกล่าวดังนี้

เราจะทำการติดตั้งผ่าน Terminal ทั้งหมดนะครับ ( Command Line )

ในการติดตั้งระบบอาจจะร้องข้อรหัสผ่านเพื่อ install ผ่าน user root ครับ

เอาหล่ะหลังจากเราติดตั้งตัวชี้  Repository นี้เสร็จแล้วเราก็จะสามารถติดตั้ง Nginx ได้แล้วครับ โดยผ่านคำสั่ง

เพียงเท่านี้ Nginx คุณก็พร้อมที่จะเปิดใช้งานแล้วครับ เราก็จะทำการเปิดใช้งานผ่านคำสั่ง

เอาหล่ะหลังจากนี้คุณสามารถตรวจสอบได้แล้วหล่ะว่า Nginx ทำงานแล้วหรือไม่ผ่านโดยทำการเข้าไปที่ http://your_ip_address/ ผ่าน Web Browser ( IE, Chrome, Safari, FireFox ) ถ้ามีหน้าจอชึ้นดังนี้ถือว่าผ่านครับ

ขอขอบคุณภาพจาก https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7
ขอขอบคุณภาพจาก https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7

ก่อนที่จะไปขั้นตอนถัดไปให้ทำการตั้งค่าให้ Nginx เปิดทำงานเหมือนมีการเปิดปิดเครื่อง server ใหม่ด้วยคำสั่งนี้

ติดตั้ง MySQL

ก่อนอื่นเลยต้องขอบอกก่อนว่าในที่นี้เราจะใช้ MariaDB แทน MySQL แต่ ไม่ต้องกังวนไปมันคือตัวเดียวกันที่แยกออกมาพัฒนาต่างหาก เข้าใจตามนี้นะครับ เอาหล่ะเรามาเริ่มติดตั้งกันดีกว่า เริ่มจากคำสั่งติดตั้งนี้เลยครับ

เมื่อระบบทำการติดตั้ง MariaDB เสร็จสิ้นให้ทำการเปิดใช้งานด้วยคำสั่ง

เอาหล่ะ MariaDB เปิดเครื่องเตรียมพร้อมที่จะทำงานละ แต่เราก็ยังไม่สามารถใช้งานมันได้เพราะเรายังไม่ได้ทำการตั้งค่ารหัสผ่าน Root กันเลย

เราจะทำการตั้งค่ารหัสผ่าน Root ด้วยคำสั่ง

เมื่อรันคำสั่งระบบจะถามรหัสผ่านปัจจุบัน (ซึ่งตอนนี้ยังไม่มี) ให้ทำการกด Enter เพื่อข้ามไปเลย แล้วทำการตั้งค่ารหัสผ่านใหม่ขึ้นมา

ส่วนคำถามการตั้งค่าอื่น ๆ คุณสามารถกด Enter เพื่อใช้การตั้งค่าดั้งเดิมของระบบได้เลย

สุดท้ายให้เราทำการตั้งค่าให้เปิด MariaDB ทุกครั้งเมื่อมีการเปิดปิด Server ด้วยคำสั่ง

ติดตั้ง PHP

เอาหล่ะมาถึงขึ้นตอนการติดตั้ง PHP กันแล้ว เป็นอะไรที่ค่อนข้างวุ่นวายหน่อยนะครับ เพราะว่าต้องมีการไปตั้งค่าอะไรอีก เอาเป็นว่าเรามาค่อย ๆ เริ่มไปพร้อมกันเลยหล่ะกันครับ :))

เริ่มการคำสั่งในการติดตั้ง PHP และส่วนเสริมที่จำเป็นต่อการทำงาน

เมื่อติดตั้ง PHP เสร็จแล้วให้เราทำการไปตั้งค่า เพื่อเป็นการเพิ่มความปลอดภัย เอาหล่ะเริ่มด้วยไฟล์ /etc/php.ini เราจะแก้ไขด้วยคำสั่ง

หลังจากนั้นให้มองหาบรรทัดที่เขียนว่า cgi.fix_pathinfo เมื่อเจอแล้วให้นำ comment ออก ซึ่งก็คือ Semi-colon ( ; ) ลบมันออกซะ

แล้วให้เปลี่ยนการตั้งค่าของ cgi.fix_pathinfo จากแต่เดิมระบบจะตั้งค่ามาให้เป็น 1 ให้เปลี่ยนเป็น 0 ดังนี้

ให้ทำการบันทึกแล้วก็ออกจากการแก้ไข

เมื่อเสร็จแล้วเราจะไปทำการแก้ไขไฟล์ www.conf ต่อดังนี้

มองหาตัวแปรที่ชื่อว่า listen แล้วเปลี่ยนให้มันเป็นดังนี้

ถัดมาให้มองหา listen.owner และ listen.group และให้ทำการลบ comment ออก โดยเมื่อแก้ไขแล้วหน้าตาก็จะได้ประมาณนี้

สุดท้ายให้มองหา user และ group แล้วให้ทำการเปลี่ยนจาก apache เป็น nginx

บันทึกแล้วออกมา หลังจากนั้นก็ให้ทำการตั้งค่าให้เปิด php-fpm ทุกครั้งเหมือนมีการเปิดปิด server ด้วยคำสั่ง

ถึงเวลาแนะนำ Nginx ให้รู้จักกับ PHP แล้ว

เมื่อเราทำการติดตั้งอะไรเสร็จหมดแล้วก็จริง แต่ Nginx กับ PHP นั้นยังไม่มีความสัมพันธ์อันดีกันเท่าไหร่นักเราก็ต้องทำให้เค้าทั้ง 2 มารู้จักกันโดยการแก้ไขไฟล์ /etc/nginx/conf.d/default.conf ผ่านคำสั่ง

โดยแรกเริ่มเดิมทีเลยถามเราเข้าไปเราจะเจอไฟล์หน้าตาประมาณนี้

เอาหล่ะหลังจากนี้เราจะทำการแก้ไขไฟล์นี้ให้มีหน้าตาดังนี้

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

ขั้นตอนเสริม ทดสอบว่า PHP ใช้งานได้หรือยัง ?

เมื่อเราแนะนำให้ทั้ง 2 รู้จักกันแล้วทีนี้เราก็ต้องมาลองดูกันว่าเค้าทั้ง 2 นั้นรู้จักกันจริง ๆ แล้วหรือยัง ? โดยเราจะสร้างไฟล์ /var/www/html/info.php เพื่อเป็นการทดสอบ ด้วยคำสั่ง

แล้วให้เราทำการเขียน code PHP เข้าไปในไฟล์นั้นดังนี้

เมื่อเสร็จแล้วก็ทำการบันทึกแล้วก็ออกมา เอาหล่ะที่นี้ก็ลองทดสอบโดยไปยัง http://your_ip_address/info.php 

default_php_fpm
ขอขอบคุณภาพจาก https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7

ถ้าคุณเห็นหน้าจอแบบนี้แสดงว่า 2 คนนั้นเค้ารู้จักกันแล้วหล่ะ ยินดีด้วยคุณได้ WebServer ใช้เรียงร้อยแล้ว

ขอขอบคุณวิธีการติดตั้งจาก Digitalocean ซึ่งผมก็เอาข้อมูลวิธีการติดตั้งมาจาก ที่นี่ เพื่อมาเขียนให้แปลเป็นภาษาไทยกันให้อ่านนะครับ :))