Deploy WordPress บน cloud แบบง่ายๆ (มี SSL ด้วยนะ)

Posted byHappio Team Posted onApril 1, 2019 Comments0
deploy wordpress with ssl on gcp

บทความนี้จะเป็นบทความสั้นๆในการช่วย deploy WordPress บน cloud โดยมี HTTPS แบบง่ายจนน่าตกใจครับ ก่อนอื่นเริ่มจากการเตรียมไฟล์ที่ได้ backup WordPress ซึ่งวิธีที่น่าสะดวกที่สุดน่าจะเป็นการใช้ All-in-One WP Migration ที่เป็น plugin มหาเมพของ WordPress ในการ backup นั่นเองครับ

All-in-One WP Migration Logo
Plugin ขั้นเทพที่จะช่วยให้ชีวิตการทำงานคุณง่ายขึ้นเยอะครับ

พอได้ backup file แล้วก็เริ่มตั้ง GCP instance กันเลยครับ โดยถ้าเบื้องต้นเรายังไม่เคยสมัคร GCP(Google Cloud Platform) เราสามารถขอรับ credit มูลค่า 300$ ได้เลยครับ (300$ นี่ผูกบัตรเครดิตและใช้งานได้ 1 ปี นะครับ ซึ่งยังไงก็คุ้มยิ่งกว่าคุ้มสมัครเถอะครับ)

ทีนี้ผมมีข้อแนะนำว่าถ้าต้องการจะแค่เอา WordPress site ขึ้น Cloud แบบแยก 1 site ต่อ 1 instance วิธีการมันก็จะไม่ซับซ้อนมากครับ วิธีที่ผมว่าจ่ายสุดๆก็คือใช้ Cloud Lancher ของทาง GCP เองก็เป็นทางเลือกที่ดีครับ ในบทความนี้เราจะใช้ Image ของ Bitnami ที่ชื่อยาวๆว่า WordPress with NGINX and SSL Certified by Bitnami ในการตั้ง server แบบ click to deploy ซึ่งง่ายมากกครับ 🙂

wordpress with NGINX and SSL by Bitnami

ก่อนจะสร้างจริงๆ ให้ลองย้อนกลับมาดูความจำเป็นของการเลือกขนาดของ instance ที่กำลังจะขึ้นเพื่อให้ค่าใช้จ่ายน้อยที่สุดเท่าที่เป็นไปได้ สำหรับผมถ้า site ไม่มี traffic เยอะมาก ก็เลือกแค่ f1-micro ซึ่งค่าใช้จ่ายรายๆ 5$ ต่อเดือนเท่านั้นเองครับ แล้วถ้าต่อไปถ้าไม่ไหวค่อยเพิ่มเอาก็ได้ครับ อันนี้เป็นข้อดีข้อนึงของ cloud service เลยครับ หุหุ

ส่วนเรื่องการเลือก zone จริงๆก็มีความสำคัญนะครับ เดี๋ยวจะเขียนบทความเรื่องนี้ให้อ่านอีกทีนึง เบื้องต้นเอาเป็นใกล้บ้านเราอย่าง asia-southeast อันไหนก็ได้ครับ ส่วน Bootdisk เนี่ย ถ้าไม่ได้ใช้อะไรมากก็ไม่ต้องเลือก SSD ก็ได้ครับจะได้ประหยัดขึ้นอีกนิด เมื่อดูแล้วโอเคก็กด Deploy ได้เลย

select the smallest as possible instance type in GCP

รอซักพักครับ ให้มัน set ระบบให้เรียบร้อย เมื่อเสร็จแล้วก็เข้า SSH ไปแก้ไขค่าที่จำเป็นก่อนครับ สิ่งที่เค้าแนะนำคือเปลี่ยน password ก่อนครับ

wait for gcp deployment worker

เมื่อเปลี่ยน password แล้วก็ลองเข้าไปดูไซต์ที่ตั้งเสร็จแล้วดูกันครับ โดยกดที่ IP ที่ขึ้นด้านข้างๆ ก็จะพบกับไซต์ WordPress แบบง่ายๆแล้วครับ

เปิดดูแล้วเรียบร้อยขั้นต่อไปคือการเอา website ของเราที่ backup ไว้มาใช้งานนะครับ ก่อนคือดูก่อนว่าขนาด file ของ backup file ใหญ่แค่ไหน ถ้าเกิด 40 mb เราต้องมาปรับแต่ง instance นิดหน่อยครับเพราะ instance ที่เค้าตั้งมาเนี่ย default เค้ากำหนดให้ up file ได้แค่ไม่เกิน 40 mb เองครับ

check the current upload file size limit of WordPress

กดที่ปุ่ม SSH แล้วเราเริ่มจากการปรับ nginx ก่อน

sudo vim /opt/bitnami/apps/wordpress/conf/nginx-app.conf

หา client_max_body_size และเพิ่มให้มากกว่าขนาดของ backup file ในตัวอย่างเราจะปรับเป็น 128 mb ครับ

client_max_body_size 128m; #ศรัทธา
insert client_max_body_size to nginx-app.conf

เสร็จละก็ไปปรับ php.ini ต่อครับ แต่ด้วย image ของ bitnami นั้น path ของ php.ini อยู่ที่ /opt/bitnami/php/etc/ ครับ ก็พิมพ์ตามนี้

sudo vim /opt/bitnami/php/etc/php.ini

ตรงนี้เป็นการปรับ memory limit ครับ เบื้องต้นปรับเป็น 128 mb เช่นกันก็ยังไหว

memory_limit = xxxM
change the post max size in php.ini
change the file upload max size in php.ini

อะไหนก็ไหนเราก็เข้า SSH มาแล้ว ก็จะ set เพื่อเอา banner bitnami ออกไปด้วย

sudo /opt/bitnami/apps/wordpress/bnconfig — disable_banner 1

เสร็จแล้วก็ restart server ด้วย command นี้ครับ

sudo /opt/bitnami/ctlscript.sh restart

เสร็จแล้วก็ เข้า website ที่เราสร้างขึ้นมา เข้า plugins => All-in-One WP Migration ครับ ถ้าไม่มีก็ต้องลงและ activate มันด้วย แล้วเลือก Import เราก็จะรู้ว่าไอ้ที่เราทำมามันได้ผลมั้ย

import .wordpress file in all-in-one WP Migration

เสร็จแล้วก็เลือก Import From ละหาไฟล์ .wordpress ที่เราเตรียมไว้จากข้อ 1 แล้วก็รอให้จนเสร็จครับ

เสร็จแล้วกด refresh หน้าจอใหม่ดูว่ามันเปลี่ยนเป็น site ที่เรา import ไปละหรือ

ยังไม่จบครับ มันยังไม่ปลอดภัยพอ website เราควรจะอยู่บนพื้นฐานแห่ง SSL ด้วย เริ่มจากกลับไปที่ SSH อีกรอบ แล้วรัน command ดังนี้

sudo /opt/bitnami/letsencrypt/scripts/generate-certificate.sh -m EMAIL -d DOMAIN

อย่าลืมเปลี่ยน EMAIL กับ DOMAIN นะครับ 🙂

รอมัน run จนเสร็จ แล้วเข้าไปแก้ nginx config ที่นี่

sudo vim /opt/bitnami/nginx/conf/bitnami/bitnami.conf
remove bitnami banner with configuration file

เราจะเปลี่ยนให้ site http นั้น redirect ไปที่ https แทนนะครับ โดยเพิ่มบรรทัดนี้

return 301 https://$host$request_uri;

เสร็จแล้วก็ restart อีกรอบครับ

sudo /opt/bitnami/ctlscript.sh restart

เท่านี้ก็ได้ website WordPress ที่มี SSL เรียบร้อยแล้วครับ 🙂

เสร็จละมั้ง จำไม่ได้

 

 

Facebook Comments
Category