วิธีติดตั้ง WordPress พร้อม SSL บน Google Cloud Platform
เมื่อช่วงต้นปีที่ผ่านมานั้นผมมีความจำเป็นต้องย้ายเว็บไซต์บางเว็บของผม ขึ้นไปอยู่บน Google Cloud Platform (GCP) จากเดิมที่เช่าบริการ Share Hosting ในประเทศไทยเป็นหลัก แต่พอจำนวนเว็บไซต์ที่ต้องดูแลมันเยอะขึ้น ก็เลยคิดว่าการย้ายไปอยู่บน Cloud นั้น น่าจะช่วยให้เราบริหารและจัดการได้ง่ายยิ่งขึ้น และแอบคาดหวังว่าจะประหยัดเงินขึ้นด้วยครับ
บทความนี้จะพูดถึงการติดตั้ง WordPress พร้อมกับติดตั้ง SSL บน Google Cloud Platform (GCP) แบบง่ายๆผ่าน Package สำเร็จรูปยอดนิยมจาก Bitnami ซึ่งเราสามารถเลือกติดตั้งได้ 2 แบบด้วยกันคือ
- ผ่าน Deployment Manager บน GCP โดยตรง เพียงค้นหา WordPress with NGINX and SSL Certified by Bitnami and Automattic ใน GCP Marketplace ครับ
- ผ่าน Bitnami Launchpad ซึ่งจะเป็นวิธีที่ผมจะเขียนแนะนำในวันนี้ครับ เพราะวิธีนี้เราจะสามารถสร้างไฟล์ Private Key ให้เราใช้งานกับ SFTP ได้ในอนาคตครับ (ไว้เขียนแยกบทความให้ครับ เดี๋ยวจะยาวซะก่อน)
ก่อนที่จะเริ่มต้นกัน เราจะต้องสมัครบัญชีเหล่านี้ให้เรียบร้อยก่อนนะครับ
- บัญชี GCP ให้ไปสมัครใช้งาน GCP ได้ที่นี่ครับ https://cloud.google.com/ โดยการสมัครใช้งานครั้งแรกจะได้เครดิตฟรีมาใช้งานได้ 300$ ในระยะเวลา 1 ปี หลังจากนั้นค่อยคิดเงินเราครับ
- บัญชี Bitnami โดยเข้าไปที่ https://google.bitnami.com/ แล้วสมัครสมาชิก Bitnami ได้เลยครับ
- รวมถึงเราจะต้องมี domain name เป็นของตัวเองด้วยครับ อาจจะเลือกซื้อที่ Google Domains ก็ได้ครับ
เมื่อเรียบร้อยแล้ว เรามาลุยไปพร้อมกันดีกว่าครับ
Step 01 : ติดตั้ง WordPress บน Google Cloud Platform ผ่าน Bitnami Launchpad
ในขั้นตอนนี้เราจะทำการติดตั้ง WordPress ใน Virtual Machine (VM) บน GCP โดยทำผ่าน Bitnami Launchpad วิธีนี้นั้นเหมาะสำหรับมือใหม่ที่ยังไม่คุ้นเคยกับ GCP และไม่ได้มีความรู้ด้าน Network (ผมก็เป็นหนึ่งในนั้น lol) โดยให้เพื่อนๆล็อคอินเข้าบัญชี Bitnami แล้วเลือกไปที่เมนู Virtual Machines ซึ่งเราจะสร้าง VM ได้ที่นี่ครับ
จากนั้นให้เราเลือก New Virtual Machine เพื่อสร้าง VM ตัวแรกของเพื่อนๆกันครับ การตั้งค่าให้กับ VM ของเรานั้นสามารถทำผ่านหน้า Dashboard นี้ได้เลย โดยให้เลือก Image เป็น WordPress with NGIX and SSL และ Region เป็นโซน asia-southeast เนื่องจากใกล้ไทยที่สุดแล้วครับ ขณะที่ Disk Size/Server Size เลือกแบบถูกไว้ก่อนก็ได้ครับ สามารถขยับขยายได้ภายหลังครับ
ในขั้นตอนการเลือก Cloud Account นั้น ให้เราเลือกที่ Add Project แล้วเราจะถูกส่งไปยังหน้า Project Set Up ซึ่งสามารถ Sign in เข้าบัญชี GCP ได้ที่หน้าต่างนี้เลยครับ ให้เพื่อนๆทำการตั้งค่าตามขั้นตอนจากหน้าจอได้เลย โดยส่วนสำคัญคือขั้นตอนการ Enable Compute Engine API และ Deployment Manager API ซึ่งมันจะสอนเรา Enable API เหล่านี้บน Google Cloud Platform ครับ
เมื่อ Enable API บน GCP เรียบร้อย เราก็ใส่ข้อมูลของบัตรเครดิตเพื่อไว้ใช้ในการจ่ายเงินรายเดือนนั่นเองครับ หลังจากเสร็จทุกขั้นตอนในการตั้งค่า Project เราจะถูกส่งมายังหน้า Application Info บน Bitnami Launchpad นั่งรอให้ Bitnami จัดการสักครู่ เราก็จะได้ WordPress ติดตั้งบน VM เรียบร้อย
ตอนนี้เราก็ได้ WordPress ที่ Run ผ่าน VM บน GCP เรียบร้อยนะครับ เพียงแต่การเข้าไปยังเว็บไซต์เรานั้นต้องเข้าผ่านเลข IP เท่านั้นเอง ซึ่งเดี๋ยวเราจะมาตั้งค่าให้ Domain เราชี้ไปยัง IP นี้กันในขั้นตอนถัดๆไปครับ และอย่าลืมเข้าไปเปลี่ยน password ของ WordPress Admin กันด้วยนะครับ
Step 02 : ตั้งค่า Domain และ IP Address
ในขั้นตอนนี้เราจะต้องตั้งค่าใน Google Cloud Platform กันนะครับ แต่ไม่ต้องตกใจไปครับ เป็นการตั้งค่าที่ไม่ยากครับ โดยเราจำเป็นต้องตั้งค่า Static IP Addresss ให้กับ VM ของเรา ให้เลข IP มันไม่เปลี่ยนแปลงนะครับ หลังจากนั้นเราถึงตั้งค่า Domain ของเรากับ IP Address นั้นๆครับ
การตั้งค่า Static IP Address
เข้าไปที่หน้า Dashboard ของ GCP ก่อนนะครับ จากเมนูทางด้านซ้ายมือ ให้เข้าไปยังส่วนนี้ครั้บ VPC network -> External IP Addresses แล้วให้เราเลือกกดปุ่ม “Reserver Static Address” ทำการตั้งชื่อและเลือก Region เป็น Singapore เพราะว่าใกล้ไทยที่สุดนั่นเอง ส่วน Attached To นั้นให้เลือก VM ที่เราสร้างมาจากขั้นตอนก่อนหน้านี้ครับ
การตั้งค่า IP Address
ในส่วนนี้เราจะต้องตั้งค่าผ่านผู้ให้บริการที่เราใช้งานอยู่ครับ หน้าตาอาจจะแตกต่างกันไปบ้าง แต่คิดว่าน่าจะเข้าใจไม่ยากนะครับ ของผมใช้บริการผ่าน Google Domain ให้เข้าไปที่การตั้งค่า DNS และนำ IP Address ของ VM ที่เราสร้าง ระบุ Domain Type’s เป็นประเภท A ก็เป็นอันเรียบร้อยครับ
หลังจากการตั้งค่า DNS และ IP Address นั้นอาจจะใช้เวลา 24-48 ชม. กว่าจะเสร็จสิ้นนะครับ เมื่อเรียบร้อยแล้ว เราก็จะเข้าสู่เว็บไซต์ WordPress บน GCP ผ่านโดเมนเนมของเราเองได้แล้วครับ
Step 03 : การติดตั้ง SSL ให้กับ WordPress ของคุณ
ในขั้นตอนนี้ เราจะทำการติดตั้ง SSL ให้กับเว็บไซต์ของเรากันครับ โดยเราจะใช้บริการของ Let’s Encrypt certificate ที่ให้บริการฟรี วิธีการติดตั้งนั้นต้องทำผ่าน SSH นะครับ โดยให้เราคลิกเชื่อมต่อตรงปุ่ม SSH จากรายชื่อของ VM ที่เราสร้างขึ้นมา
เมื่อเชื่อมต่อเรียบร้อย จะเข้าสู่หน้า command line แบบนี้ครับ
การติดตั้ง Let’s Encrypt ให้ใช้คำสั่งด้านล่างนี้ โดยเปลี่ยน email และเว็บไซต์ (ทั้งมี www และไม่มี www) เป็นของคุณก่อนนะครับ แล้วกด Enter เพื่อส่งคำสั่ง ตามด้วย Y เพื่อคอนเฟิร์ม เป็นอันเรียบร้อย
sudo /opt/bitnami/letsencrypt/scripts/generate-certificate.sh -m i
nfo@featuringtae.com -d featuringtae.com -d www.featuringtae.com
ใช้คำสั่งนี้ในการ restart server นะครับ
sudo /opt/bitnami/ctlscript.sh restart nginx
เมื่อ restart ก็ถือว่าเรียบร้อยให้เข้าไปเชคที่เว็บไซต์ของเราได้เลยครับว่ามี certificate ขึ้นมาเรียบร้อยรึยัง
Step 04 : ตั้งค่า redirect http ไปยัง https
หลังจากที่เว็บไซต์ของเรามี certificate เรียบร้อยแล้ว เราก็สามารถตั้งค่า redirect ให้การเข้าใช้งาน http ถูกบังคับไปยัง https เสมอๆ ซึ่งเราจำเป็นต้องไปแก้ไขไฟล์ config โดยใช้คำสั่งด้านล่างนี้ครับ
sudo nano /opt/bitnami/nginx/conf/bitnami/bitnami.conf
แล้วจัดการเพิ่มบรรทัดนี้เข้าไปครับ return 301 https://www.$host$request_uri; เราสามารถ copy ไปวางแล้วกด control + X เพื่อออก กด Y แล้ว Enter เพื่อยืนยันคำสั่งก็ถือว่าแก้ไขไฟล์เรียบร้อยครับ จากนั้นเราทำการ restart server ด้วยคำสั่งด้านบนได้เลยครับ
Step 05 : เปลี่ยน limit ขนาดของไฟล์ในการ upload
ค่าตั้งต้นของขนาดไฟล์ที่เราสามารถ upload ได้จะอยู่ที่ 40mb อาจจะไม่เพียงพอให้คุณเอาไฟล์ back up ของ wordpress ขึ้นบน GCP ในกรณีของผมนั้นใช้ All-in-one WP Migration ในการ back up (มีทั้ง version ฟรี และจ่ายเงินนะครับ เข้าไปดูตามความต้องการของเราได้)
เราจำเป็นต้องแก้ไขไฟล์ php.ini เพื่อขยาย limit ในการ upload ไฟล์ขึ้น cloud โดยใช้คำสั่งด้านล่างนี้ในการเข้าถึงไฟล์ครับ กด ctrl+w เพื่อค้นหา upload_max_filesize จัดการแก้ไขตัวเลขตามต้องการ แล้วกด ctrl+x และกด Y เพื่อบันทึกการแก้ไขได้เลยครับ
sudo nano /opt/bitnami/php/etc/php.ini
จากนั้นเราก็ restart server ด้วยคำสั่งเดิม เป็นอันเรียบร้อย หลังจากนี้เราก็สามารถ upload back up ไฟล์ที่มีขนาดใหญ่ขึ้นได้จากต้องการครับ
Step 06 : นำแบนเนอร์ Bitnami ออกจากมุมล่างขวาของเว็บไซต์เรา
วิธีนำแบนเนอร์ของ Bitnami ออกนั้นให้ใช้คำสั่งด้านล่างนี้ได้เลยครับ ทำแล้วอย่าลืม restart server อีกทีนึงนะครับ
sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1
น่าจะเรียบร้อยทุกข้อที่เราจะต้องทำแล้วล่ะครับ จริงๆแล้วการติดตั้ง WordPress หรือ SSL บน GCP นั้นสามารถทำได้หลายวิธีด้วยกัน ก็สามารถเลือกวิธีที่สะดวกได้เลยครับ ส่วนวิธีที่ผมเขียนแนะนำให้นั้น หากติดขัดที่ขั้นตอนไหน ลองเข้าไปศึกษาจากเว็บไซต์ของ Bitnami ได้เลยครับ ข้อมูลครบและอ่านง่ายมากๆ ถ้าบทความมีประโยชน์ ฝากแชร์ด้วยนะครับ
Tae