รูป Heat sink ของ Intel Extreme series ที่ไม่ได้เกี่ยวเลย

โฮส Wordpress ฟรีบน Google Cloud Always Free Tier

หลังจาก Google Cloud ประกาศ Always Free Tier ออกมาทำให้เราสามารถใช้ Compute Engine ขนาด f1-micro ได้ฟรีโดยมีเงื่อนไขว่าต้องอยู่ภายใน US Region ซึ่งก็เพียงพอแล้วกับการรัน Wordpress ที่ทุกท่าน(ควรจะ)กำลังอ่านอยู่


เงื่อนไข

มี Domain name ของตัวเองแล้ว

สร้าง Instance

เริ่มต้นจากสร้าง Compute Engine ขนาด f1-micro ไว้ที่โซนใดก็ได้ของ US Region ส่วนตัวผมแนะนำเป็น us-west เพราะกลุ่มผู้อ่านเป็นคนไทยฝั่งตะวันตกจะอยู่ใกล้กว่า เลือก Distribution เป็น Ubuntu 16.04 LTS และขนาดของ HDD เป็น 30 GB (มากที่สุดที่ Free Tier ให้)

ติดตั้ง Caddy

Caddy Server เป็นอีกหนึ่ง Web Server ที่ทำ Reverse proxy ได้ อาจมีความแตกต่างกับ nginx เล็กน้อย แต่มีข้อดีคือทำ SSL จาก Let’s Encrypt ให้เอง

เริ่มด้วยการติดตั้ง

$ sudo curl -s https://getcaddy.com | bash

สร้าง Directory สำหรับการทำงานของ Caddy

$ sudo mkdir /etc/caddy
$ sudo chown -R root:www-data /etc/caddy
$ sudo touch /etc/caddy/Caddyfile
$ sudo mkdir /etc/ssl/caddy
$ sudo chown -R www-data:root /etc/ssl/caddy
$ sudo chmod 0770 /etc/ssl/caddy

เนื่องจาก Caddy ณ เวลาที่เขียนยังไม่ได้เป็น Service ใดๆ ดังนั้นจะทำการเพิ่มลงใน systemd unit

$ sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service
$ sudo systemctl daemon-reload
$ sudo systemctl enable caddy.service

เปิดใช้งาน UFW

เปิดใช้งาน UFW หรือ Uncomplicated Firewall โดยจะอนุญาตให้เฉพาะ HTTP, HTTPS, และ SSH เข้ามาได้

$ sudo ufw allow http
$ sudo ufw allow https
$ sudo ufw allow ssh
$ sudo ufw enable

ติดตั้ง PHP

ณ ตอนที่เขียน Current Stable คือ 7.1.8 และยังไม่มีให้โหลดจาก Repository พื้นฐาน ดังนั้นต้องเพิ่มก่อน

$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update

ต่อด้วยการลง PHP และ Library ที่จำเป็น

$ sudo apt-get install php7.1-fpm php7.1-mysql php7.1-curl php7.1-gd php7.1-mbstring php7.1-mcrypt php7.1-xml php7.1-xmlrpc

ติดตั้งฐานข้อมูล

ผมเลือกใช้ MariaDB แทน MySQL Server

$ sudo apt-get install mariadb-server

ทำการตั้งค่าเพื่อความปลอดภัยเบื้องต้น ให้เปลี่ยนรหัสของ root, ลบฐานข้อมูลทดสอบ, และปิดการใช้ root จากภายนอก

$ sudo mysql_secure_installation

จากนั้นก็สร้างฐานข้อมูลใหม่สำหรับ Wordpress

$ sudo mysql
mysql> CREATE DATABASE wordpress;
mysql> GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

โหลด Wordpress

เราจะใช้ /var/www/wordpress เป็น Root Directory นะครับ

$ cd /var/www
$ sudo curl -O https://wordpress.org/latest.tar.gz
$ sudo tar zxf latest.tar.gz
$ sudo chown -R www-data:www-data wordpress

ตั้งค่า Caddyfile

ปกติแล้ว Caddy จะเรียกไฟล์ตั้งค่าจาก /etc/caddy/Caddyfile เพื่อใช้งาน ดังนั้นสร้างไฟล์ที่ว่า อย่าลืมเปลี่ยน Domain name ให้ตรงกับ DNS Record ด้วยล่ะ

example.com {
tls admin@example.com
root /var/www/wordpress
gzip
fastcgi / /run/php/php7.1-fpm.sock php
rewrite {
if {path} not_match ^\/wp-admin
to {path} {path}/ /index.php?_url={uri}
}
}

เสร็จงาน

เมื่อเราตั้งค่าทุกอย่างเสร็จแล้วเพียงแค่สั่ง Restart Caddy Server เท่านี้ก็พร้อมสำหรับการเริ่มติดตั้ง Wordpress ตามปกติแล้วครับ

$ sudo systemctl restart caddy.service

เนื่องจากส่วน Tutorial ผมตัดแปะโดยไม่ได้ทำตามอีกรอบ หากมีข้อผิดพลาดตรงไหนแนะนำกันได้ครับ แล้วนี้ก็เป็นวิธีการโฮส Wordpress แบบฟรีของผม แล้วของทุกคนเป็นอย่างไร เล่าให้ผมฟังด้วยนะ สวัสดีครับ


ตอนต่อไป แบ็คอัพข้อมูลจากโฮส WordPress ฟรีแบบฟรีๆ บน Google Cloud Always Free Tier

อ้างอิง