ทุกวันนี้จะเห็นว่ามีคนหันมาใช้ VPS (Virtual Private Server) กันเยอะขึ้น  และคงจะรู้จักตัวจัดการ Hosting อย่าง Vesta CP กันมาบ้างแล้ว  ซึ่งเจ้า Vesta CP มันก็คือ Web Hosting Control Panel (หรือจะว่า มันคือตัวจัดการ web Hosting ก็ได้) ทีสำคัญ มันเป็น open source  (ฟรี) ใช้งานค่อนข้างง่าย มี option เยอะแยะมากมาย ถ้าใครสนใจก็ลองไปอ่านรายละเอียดเพิ่มเติมได้ที่ https://vestacp.com/#documentation  (ปล. ผมเองก็พึ่งมีโอกาส ได้เล่น เมื่อไม่นานนี้เอง แหะๆ)

และบทความนี้ผมจะมาเล่าถึงวิธีติดตั้ง Vesta CP และวิธีการ Upgrade Vesta CP ให้รองรับ PHP 7 เพื่อใช้งานร่วมกับ Web Server อย่าง Nginx นั่นเอง  เหตุที่ผมเลือก Nginx ก็เพราะว่ามันใช้ memory ค่อนข้างน้อยกว่า Apache นั้นเอง แถมยังรองรับ concurrent ได้มากกว่าอีกด้วย และเจ้า Nginx มันยังรองรับ HTTP/2.0 ชึ่งจะเป็น Protocol มาตรฐานที่จะมาแทนที่ HTTP/1.X version เก่า ในวันข้างหน้า  แล้วเรามาลุยถึงขึ้นตอนการติดตั้งและ config เจ้า Nginx กับ VestaCP กันเลย

อันดับแรกเลยให้ทำการ download ไฟล์ vst-install.sh จากเว็บ https://vestacp.com/ มาก่อน (เราจะใช้ไฟล์นี้ในการติดตั้ง Vesta CP)

ทำการเลือก option ที่ต้องการ generate command ในการติดตั้ง
ในที่นี้ผมจะเลือก Nnigx + PHP-FPM   เพื่อใช้ในการทดสอบ ส่วน option อื่น เราสามารถกำหนดเองได้เลย ว่าจะใช้ service ตัวไหนบ้าง ถ้าไม่คิดไรมาก ก็เลือกหมดเลยก็ได้

หลังจากเราทำการ Generate command ในการติดตั้งแล้ว ให้ login เข้า server อีกรอบ ผ่าน SSH แล้วทำการติดตั้งด้วย Command line ได้เลย
ในการติดตั้งอาจจะใช้เวลา 3-5 นาที


หลังจากติดตั้งเสร็จ  มันจะส่ง Credential เข้า Email (รวมถึง link ในการ login เข้า Vesta CP)

ก็เป็นอันเสร็จในส่วนของการติดตั้ง Vesta CP
จากนั้นมาถึงขึ้นตอนการเปิดใหับริการ WebSite ละ  ให้ทำการเลือกหัวข้อ WEB
แล้วทำการ Add เพิ่ม Domain เข้าไป

ถ้าหากเราได้ตรวจสอบ PHP version ที่ติดมากับ Vesta CP จะพบว่า มันยังคง Default PHP 5.X อยู่เลย (ณ. วันที่เขียนบทความนี้)
ชึ่งมันยังไม่ใช่สิ่งที่เราต้องการ.. ^ ^”  ครวมนี้มาทำการติดตั้ง PHP 7 กันต่อเลยนะครับ
ทำการติดตั้ง package RMP

ทำการลบ php version เก่าออกก่อน  แล้วค่อย install php7 เข้าไปใหม่

ทำการยกเลิก php-fpm version เก่า แล้วสั่ง start php70-fpm ของ version 7 แทน

ทำการลบ symlink เดิมออก แล้ว map link php ใหม่

ทำการ restart service

เพื่อให้ชัวส์ ทำการตรวจสอบ version สะหน่อย

เปิดใช้ Service ให้มัน start ทุกครั้งเมือมีการ reboot เข้า OS

ทีนี้ ลองสร้าง php ไฟล์เพื่อทดสอบ

แล้วเข้าเว็บอีกครั้งเพื่อดูว่า ปรกติดีหรือป่าว
http://mydomain.com/

จะพบว่ามันจะติด ERROR 502 (Bad Gatway) หรือ 500 (Internal Server Error)
จากนั้นลองทำการ check log อีกที จะพบ error ว่า มันมีปัญหากับ upstream/fastcgi ซึ่งมันชี้ port ไม่ถูกนั้นเอง

tail -f /var/log/nginx/domains/mydomain.com.error.log

/etc/opt/remi/php70/php-fpm.d/www.conf
จะเห็นวา่ เจ้า php-fpm นั้นมันรันบน port 9000  (ถ้ามีหลาย domain ก็จะมี ไฟล์ *.conf ที่ใช้ port ต่างกัน)

กรณีถ้าหากบน Vesta CP มีมากหลายๆ Domain เวลา add domain ใหม่เข้ามา ของเดิมมันจะไปสร้างไฟลฺ์ .conf ใน /etc/php-fpm.d/*.conf
ดังนั้น เราควรจะต้องย้ายให้มันไปอยู่ใน /etc/opt/remi/php70/php-fpm.d/ ด้วย

ทำการตรวจสอบ tcp-connection ด้วยคำสั่ง netstat -an  เพื่อให้แน่ใจ

จากนั้นให้ทำการแก้ไข nginx configuration เพื่อแก้ไข port เป็น 9000
vi /home/admin/conf/web/nginx.conf

ทำการ restart service อีกรอบ


ลองเข้าเว็บอีกรอบ  จะเห็นว่า ตอนนี้สามารถใช้งาน php + fpm/FastCGI ได้เรียบร้อยละ

แถมนะครับ
สำหรับ Vesta CP นั้น เราสามารถนำ cert จาก let’s encrypt มาใช้ได้เหมือนกัน
โดยทำการแก้ไข vesta cofig ดังนี้

มองหา tag : ssl_certificate แล้ว แปะ path ของ certificate ที่เราได้สร้างไว้ตั้งแต่ข้างต้น

จากนั้นทำการ restart vesta อีกรอบ

สำหรับท่านที่ใช้ Vesta CP อยู่ แล้วอยากลอง Upgrade  ไป PHP7 ก็ลองเอาวิธีนี้ไปใช้ดูนะครับ

อีกบทความที่อยากแนะนำ เป็นการเปิดใช้งาน HTTP/2 บน Nginx ถ้าใครสนใจก็สามารถติดตาม link ด้านล่างได้เลย
– วิธีเปิดใช้งาน Nginx ให้รองรับ HTTP/2 บน CentOS 7

หากมีข้อผิดพลาดประการใด ขออภัยมา ณ ที่นี้ด้วยนะครับ   ^ ^ 😉

Admin@Rockdevper.com

Facebook Comments
Share Button

Watchara Pongsri

Senior Software Engineer, Network Engineer CEH, CHFI, ECSA, MCSA My hobby is - Blogger - Programming & Security Researcher

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

วิธีเปิดใช้งาน PHP 7 บน Vesta CP เพื่อใช้งานร่วมกับ Nginx + PHP-FPM