การติดตั้ง WordPress และ HTTPS ด้วย Apache2 MySQL และ CertBot บน Ubuntu 20.04.2 LTS

Apache2 เป็นโปรแกรม Web Server ที่นิยมใช้กันมากโดยเฉพาะกับเวปไซต์ขนาดเล็ก เพราะติดตั้งง่าย ใช้กันมานานแล้ว เวลาเกิดปัญหาอะไรสามารถค้นหาคำตอบในเวปได้ง่าย ในบทความนี้ผมจะแนะนำการสร้างเวปไซต์ด้วยโปรแกรม Apache2 และ MySQL บน Ubuntu 20.04.2 LTS พร้อมตั้งค่าให้รองรับ HTTPS ด้วย CertBot (Let’s Encrypt)

การติดตั้ง Apache2

ขั้นตอนที่ 1: ติดตั้ง Apache2 โดยการพิมพ์คำสั่งข้างล่างนี้

sudo apt install apache2

ขั้นตอนที่ 2: เปิดไฟล์ 000-default.confเพื่อปรับแต่ง Apache2 โดยการพิมพ์คำสั่งข้างล่างนี้

sudo pico /etc/apache2/sites-enabled/000-default.conf

ขั้นตอนที่ 3: แก้ไขไฟล์ 000-default.conf เพื่อระบุชื่อเวปไซต์ของคุณ โดยการพิมพ์คำสั่งข้างล่างนี้เพิ่มเข้าไปภายใน <VirtualHost *:80> โดยเปลี่ยน www.piyabute.com เป็นชื่อเวปไซต์ของคุณ จากนั้นให้ Save การตั้งค่าโดยการกด Ctrl+X

ServerName www.piyabute.com

ขั้นตอนที่ 4: รีสตาร์ทโปรแกรม Apache2 เพื่อให้อัพเดทการตั้งค่าในขั้นตอนที่ 3 โดยการพิมพ์คำสั่งข้างล่างนี้

sudo service apache2 restart

การติดตั้งโปรแกรมฐานข้อมูล MySQL 

ขั้นตอนที่ 1: ติดตั้ง MySQL โดยการพิมพ์คำสั่งข้างล่างนี้

sudo apt install mysql-server

ขั้นตอนที่ 2: เข้าโปรแกรม MySQL ด้วยสิทธิ์ของ root โดยการพิมพ์คำสั่งข้างล่างนี้

sudo mysql

ขั้นตอนที่ 3: เปลี่ยนรหัสผ่านของ root โดยการพิมพ์คำสั่งข้างล่างนี้ โดยเปลี่ยน your_new_password เป็นรหัสผ่านใหม่ที่ต้องการ

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';

ขั้นตอนที่ 4: สร้าง user ชื่อ wordpress_user (หรือชื่ออื่นที่ต้องการ) ใน MySQL เพื่อใช้กับโปรแกรม WordPress โดยการพิมพ์คำสั่งข้างล่างนี้

CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'new_wordpress_password';

ขั้นตอนที่ 5: สร้างฐานข้อมูลชื่อ wordpress_db (หรือชื่ออื่นที่ต้องการ) ใน MySQL เพื่อใช้กับโปรแกรม WordPress โดยการพิมพ์คำสั่งข้างล่างนี้

CREATE DATABASE wordpress_db;

ขั้นตอนที่ 6: กำหนดสิทธิ์ในการงานฐานข้อมูลชื่อ wordpress_db ให้กับ user ชื่อ wordpress_user โดยการพิมพ์คำสั่งข้างล่างนี้

GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';

ขั้นตอนที่ 7: อัพเดทการตั้งค่าที่ผ่านมาใน MySQL โดยการพิมพ์คำสั่งข้างล่างนี้

FLUSH PRIVILEGES;

ขั้นตอนที่ 8: ออกจาก MySQL โดยการพิมพ์คำสั่งข้างล่างนี้

EXIT;

การติดตั้งโปรแกรม PHP สำหรับ Apache2 และ WordPress

ขั้นตอนที่ 1: ติดตั้ง PHP และโมดูลต่างๆที่จำเป็นต้องใช้กับ WordPress โดยการพิมพ์คำสั่งข้างล่างนี้

sudo apt install php php-common php-curl php-json php-mbstring php-mysql php-imagick php-xml php-zip

การติดตั้งโปรแกรม WordPress

ขั้นตอนที่ 1: สมมติว่าคุณไม่ได้มีการแก้ไข directory ที่เก็บไฟล์ของเวปไซต์ ให้พิมพ์คำสั่งข้างล่างนี้เพื่อย้ายการทำงานไปยัง directory ดังกล่าว

cd /var/www/html

ขั้นตอนที่ 2: ดาวน์โหลดโปรแกรม WordPress รุ่นล่าสุดจากเวปไซต์ WordPress โดยการพิมพ์คำสั่งข้างล่างนี้

sudo wget https://wordpress.org/latest.tar.gz

ขั้นตอนที่ 3: ไฟล์ latest.tar.gz ที่ดาวน์โหลดมาถูกลดขนาดด้วยโปรแกรม gzip จึงมีนามสกุล .gz ซึ่งจำเป็นขยายขนาดกลับไปเป็นแบบเดิมให้เหลือแค่ .tar โดยการพิมพ์คำสั่งข้างล่างนี้

sudo gzip -d latest.tar.gz

ขั้นตอนที่ 4: แตกไฟล์ latest.tar ออกเป็นไฟล์ย่อยๆ ใส่ใน directory ชื่อ wordpress โดยการพิมพ์คำสั่งข้างล่างนี้

sudo tar -xvf latest.tar

ขั้นตอนที่ 5: [OPTION] หากต้องการย้ายไฟล์ใน directory wordpress ทั้งหมดให้ไปอยู่ที่ /var/www/html เพื่อให้สามารถเข้าดู homepage โดยไม่ต้องมี /wordpress ให้พิมพ์คำสั่งข้างล่างนี้ หรือข้ามขั้นตอนนี้

sudo mv wordpress/* .

ขั้นตอนที่ 6: [OPTION] ลบ directory wordpress โดยการพิมพ์คำสั่งข้างล่างนี้

sudo rm -R wordpress

ขั้นตอนที่ 7: โอนสิทธิ์ในการจัดการไฟล์ใน directory /var/www/html ให้กับ user www-data ซึ่งอยู่ใน group www-data โดยการพิมพ์คำสั่งข้างล่างนี้

sudo chown -R www-data:www-data /var/www/html

ขั้นตอนที่ 8: ลบไฟล์ latest.tar หากไม่ต้องการเก็บไว้ โดยการพิมพ์คำสั่งข้างล่างนี้

sudo rm latest.tar

การติดตั้ง HTTPS ด้วย Certbot (Let’s Encrypt)

ขั้นตอนที่ 1: ติดตั้งโปรแกรม snap และอัพเดทข้อมูลของโปรแกรม โดยการพิมพ์คำสั่งข้างล่างนี้

sudo snap install core; sudo snap refresh core

ขั้นตอนที่ 2: ติดตั้งโปรแกรม certbot โดยการพิมพ์คำสั่งข้างล่างนี้

sudo snap install --classic certbot

ขั้นตอนที่ 3: สร้างลิงก์ให้สามารถเรียกใช้โปรแกรม certbot ได้ โดยการพิมพ์คำสั่งข้างล่างนี้

sudo ln -s /snap/bin/certbot /usr/bin/certbot

ขั้นตอนที่ 4: ตั้งค่า certbot ให้ทำงานกับ Apache2 โดยการพิมพ์คำสั่งข้างล่างนี้

sudo certbot --apache

การตั้งค่า Apache2 ให้มีความปลอดภัย

ขั้นตอนที่ 1: เปิดไฟล์ 000-default.conf เพื่อปรับแต่ง Apache2 โดยการพิมพ์คำสั่งข้างล่างนี้

sudo pico /etc/apache2/sites-enabled/000-default.conf

ขั้นตอนที่ 2: แก้ไขไฟล์ 000-default.conf เพื่อบังคับให้ Apache2 ใช้ HTTPS ตลอดเวลา โดยการพิมพ์คำสั่งข้างล่างนี้เพิ่มเข้าไปภายใน <VirtualHost *:80> โดยเปลี่ยน www.piyabute.com เป็นชื่อเวปไซต์ของคุณ จากนั้นให้ Save การตั้งค่าโดยการกด Ctrl+X

Redirect permanent / https://www.piyabute.com

ขั้นตอนที่ 3: ตั้งค่า Apache2 ให้มีการใช้งาน security headers โดยการพิมพ์คำสั่งข้างล่างนี้

sudo a2enmod headers

ขั้นตอนที่ 4: เปิดไฟล์ 000-default-le-ssl.conf เพื่อปรับแต่ง HTTPS ของ Apache2 โดยการพิมพ์คำสั่งข้างล่างนี้

sudo pico /etc/apache2/sites-enabled/000-default-le-ssl.conf

ขั้นตอนที่ 5: แก้ไขไฟล์ 000-default-le-ssl.conf เพื่อเพิ่มการตั้งค่า security headers โดยการพิมพ์คำสั่งข้างล่างนี้เพิ่มเข้าไปภายใน <IfModule mod_ssl.c> จากนั้นให้ Save การตั้งค่าโดยการกด Ctrl+X

Header always set Strict-Transport-Security "max-age=31536000;includeSubdomains; preload"
Header always set Referrer-Policy "SAME-ORIGIN"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"

ขั้นตอนที่ 6: เปิดไฟล์ security.conf เพื่อเปิดใช้งาน permalinks ใน Apache2 โดยการพิมพ์คำสั่งข้างล่างนี้

sudo pico /etc/apache2/conf-enabled/security.conf

ขั้นตอนที่ 7: พิมพ์คำสั่งข้างล่างนี้ บริเวณด้านบนสุดของไฟล์

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
</Directory>

ขั้นตอนที่ 8: แก้ไข/เพิ่มข้อมูลคำสั่งข้างล่างนี้ เพื่อซ่อนรายละเอียดของเวปไซต์ จากนั้นให้ Save การตั้งค่าโดยการกด Ctrl+X

ServerTokens Prod
ServerSignature Off
FileETag None

ขั้นตอนที่ 9: รีสตาร์ทโปรแกรม Apache2 เพื่อให้อัพเดทการตั้งค่าในขั้นตอนด้านบน โดยการพิมพ์คำสั่งข้างล่างนี้

sudo service apache2 restart

ขั้นตอนที่ 10: เปิดดูเวปไซต์ของคุณ ซึ่งจะเห็นได้ว่าจะมีการบังคับใช้ HTTPS โดยอัตโนมัติ

Leave a Reply