Tuesday, 19 March 2024

ใช้ GCP f1-micro รันเว็บไซต์ส่วนตัวฟรีๆ – ตอนที่ 7 ลง WordPress!

ขั้นตอนนี้เราก็มาถึงส่วนสำคัญที่สุดครับ… ได้เวลาลง WordPress นั่นเอง (เฮ) คราวนี้เราจะสามารถทำเว็บไซต์ได้ตามใจชอบแล้วครับ

เตรียมฐานข้อมูลให้พร้อม

ขั้นตอนแรก เราต้องเตรียมฐานข้อมูลของเราให้พร้อมกับการใช้งานเสียก่อน เริ่มต้นที่เปิด Terminal ขึ้นมา จากนั้นพิมพ์คำสั่งด้านล่าง เพื่อล็อคอินเข้าสู่ระบบ MariaDB ในฐานะผู้ดูแลระบบ

mysql -u root -p

หรือในกรณีที่เราใช้ auth_socket ก็ลุยเลยครับด้วยคำสั่งด้านล่าง

sudo mysql

หลังจากนั้นระบบจะพาเข้า MariaDB Command Line ไว้สำหรับเขียนคำสั่ง SQL สังเกตได้จากข้างหน้าจะเป็น MariaDB> หรือถ้าเป็น MySQL ก็จะเป็น mysql> ก่อนที่จะเป็นช่องให้เราใส่คำสั่ง

ตอนนี้เราจะมาสร้างฐานข้อมูลสำหรับ WordPress ทำงานโดยเฉพาะ จะชื่ออะไรก็ได้ ในตัวอย่างนี้ขอให้คำว่า WordDBPress ครับ พิมพ์ดังนี้

CREATE DATABASE WordDBPress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

จากนั้น เราก็สร้างผู้ใช้ที่เข้าถึงฐานข้อมูลดังกล่าวได้ ด้วยคำสั่งนี้ โดยผมจะสมมติชื่อผู้ใช้งานและรหัสผ่าน (แทนชื่อด้วย XXXXX และรหัสผ่านเป็น YYYYY)

GRANT ALL ON WordDBPress.* TO 'XXXXX'@'localhost' IDENTIFIED BY 'YYYYY';

ชื่อผู้ใช้และรหัสผ่านอันนี้สำคัญมาก เพราะจะต้องใช้เชื่อมต่อกับ WordPress ตอนติดตั้งฐานข้อมูล ดังนั้นควรต้องจำได้ หรือไม่ก็จดไว้แล้วถ้าเชื่อมต่อแล้วทำลายทิ้งทันทีครับ

จากนั้นส่งคำสั่ง FLUSH PRIVILEGES; เพื่อทำการโหลดฐานข้อมูลเราใหม่ แล้วสั่ง EXIT; เพื่อออกจากระบบครับ

ติดตั้งส่วนขยายเพิ่มของ PHP เพิ่มเติม

เนื่องจาก WordPress มักต้องการความสามารถต่างๆ ของ PHP เพิ่มเติม ดังนั้นเราจึงต้องใส่คำสั่งลงไป เพื่อให้ติดส่วนขยายต่างๆ ได้เพิ่มเติม อีกอย่างคือเพื่อป้องกันความผิดพลาดที่อาจจะเกิดขึ้นได้ ถ้าเรียกคำสั่งแล้วไม่มี

พิมพ์คำสั่งตามนี้ลง Terminal เพื่ออัพเดตคลังซอฟต์แวร์ในระบบ และปรับปรุงซอฟต์ในเครื่องให้เป็นล่าสุดก่อน

sudo apt update && sudo apt upgrade

จากนั้นพิมพ์คำสั่งด้านล่างนี้ เพื่อติดตั้งส่วนขยายเหล่านี้เพิ่มเติม

sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

เมื่อได้แล้ว ระบบจะถามยืนยันแบบการติดตั้งซอฟต์แวรที่ผ่านๆ มา จากนั้นก็ติดตั้งตามปกติ เมื่อเสร็จเรียบร้อยแล้ว พิมพ์คำสั่งด้านล่าง เพื่อให้ Apache ทำงานใหม่ และสามารถเพิ่มาส่วนขยายเหล่านี้เข้าไปในระบบ

sudo systemctl restart apache2

ดาวน์โหลด WordPress เตรียมไว้ในระบบ

ขั้นต่อมา คือการดาวน์โหลด WordPress เข้าไปในระบบ และจัดการแก้ไขข้อมูลต่างๆ ได้ ก่อนจะทำงานจริง ดังนี้

ไปที่ Terminal จากนั้นพิมพ์คำสั่งนี้ เพื่อเปลี่ยนโฟลเดอร์ที่เราทำงานไป /tmp

cd /tmp

จากนั้น ให้พิมพ์คำสั่งด้านล่าง เพื่อดาวน์โหลดตัว WordPress ล่าสุดเข้าสู่ระบบ

curl -O https://wordpress.org/latest.tar.gz

ระบบจะทำการดาวนืโหลดไฟล์มาเก็บเอาไว้ที่ /tmp ที่เป็นไฟล์แบบบีบอัด จากนั้นก็สั่งแตกไฟล์ออกมาด้วยคำสั่งด้านล่าง

tar xzvf latest.tar.gz

เนื่องจากเรามีไฟล์ .htaccess แล้ว เราจะข้ามไป แต่ถ้ายังไม่ได้สร้าง (ซึ่ง ฮึ่ม… ควรจะสร้างนานแล้วนะ) ก็กลับไปอ่านตอนเก่ากันได้

หลังจากนี้ เราจะคัดลอกแฟ้มสำหรับตั้งค่า WordPress โดยพิมพ์คำสั่งดังนี้

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

แล้วก็สร้างโฟลเดอร์ใหม่ (directory) เผื่อในกรณีอัพเกรด WordPress ในภายหลัง จะได้ไม่เจอปัญหา ด้วยคำสั่งนี้

mkdir /tmp/wordpress/wp-content/upgrade

จากนั้นก็ย้ายไฟล์ทั้งหมดไปไว้ที่ตำแหน่งไฟล์เลยครับ ด้วยคำสั่งนี้

sudo cp -a /tmp/wordpress/. /var/www/html

ตั้งค่าความปลอดภัย

แม้ตอนนี้เราจะมี WordPress พร้อมใช้งานแล้ว แต่เราต้องตั้งค่าความปลอดภัยก่อนครับ ไม่งั้นใครก็เข้ามาเจาะระบบได้ง่ายๆ

พิมพ์คำสั่งนี้ลงไปใน Terminal ครับ

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

จากนั้นให้พิมพ์คำสั่งเหล่านี้ เพื่อกำหนดการตั้งค่าการอนุญาตเข้าถึงโฟลเดอร์ โดยพิมพ์ว่า

sudo find /var/www/html/ -type d -exec chmod 750 {} \;

และ

sudo find /var/www/html/ -type f -exec chmod 640 {} \;

จากนี้ ถ้าไม่ใช่ Superuser หรือ root ก็จะไม่สามารถยุ่งกับโฟลเดอร์ /var/www/html ได้ตรงๆ อีกต่อไปครับ 😀

ตั้งค่า WordPress

เราต้องเริ่มต้นตั้งค่า WordPress ก่อนติดตั้ง คำสั่งส่วนนี้สำคัญมาก เพราะจะมีผลกับการทำงานของ WordPress เลยทีเดียว

ขั้นแรกให้ขอค่าความปลอดภัย (secure values) ประจำเว็บของเราก่อน ด้วยคำสั่งนี้ใน Terminal (รันแบบ sudo ก็ได้)

curl -s https://api.wordpress.org/secret-key/1.1/salt/

ระบบจะบ้วนคืนค่าออกมาให้ชุดหนึ่ง ให้เก็บเอาไว้ให้ดี (ใครจะจดก็ไม่ว่ากัน แต่ถ้าทำผ่าน SSH ก็น่าจะก๊อปปี้ได้นะ) เพราะเราต้องใช้ตั้งค่าเว็บครับ

define('AUTH_KEY',         'xxxxxxxxxxxxxxxx');
define('SECURE_AUTH_KEY',  'yyyyyyyyyyyyyyyy');
define('LOGGED_IN_KEY',    'zzzzzzzzzzzzzzzz');
define('NONCE_KEY',        'aaaaaaaaaaaaaaaa');
define('AUTH_SALT',        'bbbbbbbbbbbbbbbb');
define('SECURE_AUTH_SALT', 'cccccccccccccccc');
define('LOGGED_IN_SALT',   'dddddddddddddddd');
define('NONCE_SALT',       'eeeeeeeeeeeeeeee');

จากนั้น เปิดคำสั่งขอแก้ไขและตั้งค่า WordPress ครับ ด้วยคำสั่งนี้

sudo nano /var/www/html/wp-config.php

เราก็จะเจอหน้าจอนี้ปรากฎออกมาให้เห็นครับ

ในส่วนนี้เราต้องแก้อะไรบ้าง? ตอนแรกแก้ตามนี้ครับ

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */

define( 'DB_NAME', 'ชื่อฐานข้อมูลที่เราสร้าง' );

/** MySQL database username */
define( 'DB_USER', 'ชื่อผู้ใช้สำหรับ WordPress' );

/** MySQL database password */
define( 'DB_PASSWORD', 'รหัสผ่านสำหรับ WordPress' );

จากนั้นในส่วนที่ระบุว่าเป็น define('AUTH_KEY' ก็ให้เอารหัสที่เราได้ยาวๆ ยึกยือที่ได้จากการทำ curl เมื่อสักครู่ ใส่ลงไปครับ

เมื่อใส่เสร็จ เหนือก่อนบรรทัดที่เขียนว่า /* That's all, stop editing! Happy publishing. */ ให้เราใส่อันนี้เข้าไปครับ

define('FS_METHOD', 'direct');

คำสั่งส่วนนี้สำคัญ เพราะจะทำให้เราอัพโหลดไฟล์ขึ้นสู่ระบบโดยตรงได้นั่นเอง

แก้ไขเสร็จ บันทึกไฟล์เอาไว้ จากนั้นออกจากโปรแกรม nano เสร็จแล้วพิมพ์ exit ที่หน้าจอ Terminal หรือ SSH ได้เลยครับ ภารกิจทรมานด้วยตัวอักษรเสร็จสิ้นแล้ว (เฮ)

จากนั้นเราก็เข้าไปที่หน้าติดตั้ง WordPress ด้วยเว็บเบราว์เซอร์ของเราครับ ด้วยการเข้าไปยังเว็บเราโดยตรง (ในกรณีนี้คือ https://patranun.tk) ระบบจะพาไปยังหน้าจอติดตั้งทันที ขั้นแรกคือให้เราเลือกภาษาที่ต้องการติดตั้งและใช้งานเป็นหลักก่อน

จากนั้นในหน้าถัดมา ระบบจะถามการตั้งค่าต่างๆ ดังนี้

  • Site Title ชื่อเว็บไซต์ของเรา
  • Username ชื่อผู้ใช้สำหรับผู้ดูแลเว็บไซต์รายหลัก
  • Password รหัสผ่าน ซึ่งปกติจะให้ออกมาเป็นค่าสุ่ม (ไม่ต้องพยายามเอาค่าที่หน้าจอนี้ไปครับ ผมเปลี่ยนแล้ว ฮ่า!)
  • Your Email ให้ระบุอีเมลหลักของระบบที่จะสามารถใช้ได้ครับ
  • Search Engine Visibility ส่วนนี้ระบบของ WordPress สามารถบอกระบบค้นหาของ Search Engine ได้ว่า ไม่ต้องการให้เว็บนี้ค้นหา ซึ่งถ้าท่านติ๊กเลือกว่า Discourage… ไปแล้ว และต้องการติด Search Engine อันนี้ท่านก็ต้องไปเอาออกนะครับ

เมื่อตั้งค่าเสร็จแล้ว ระบบจะทำการติดตั้ง WordPress ให้เรา จากนั้นจะแจ้งมาแบบนี้ว่าสำเร็จแล้ว สิ่งที่เราทำคือแค่ล็อกอินเข้าไปในระบบเท่านั้นครับ

หน้าจอ Login ก็จะประมาณนี้

แล้วก็สามารถเข้าหน้าจัดการ เพิ่มผู้ใช้ เพิ่มรหัสผ่าน ฯลฯ ตามใจชอบครับ เป็นอันเสร็จสิ้น

ในตอนหน้าเราจะมาติดตั้งระบบ CDN (Content Delivery Network) เพื่อช่วยลดภาระของเครื่องเรา แถมลดค่าใช้จ่ายในการส่งเครือข่ายต่างๆ ได้อีกด้วยนะครับ 😉

ไว้เจอกันตอนหน้าครับ

Photo by Pixabay from Pexels

เรื่องแนะนำ

ใช้ GCP f1-micro รันเว็บไซต์ส่วนตัวฟรีๆ – ตอนที่ 4 เปิด swap + ล็อค IP Address

หลังจากเราเปิดบัญชี GCP และ เริ่มรัน Virtual Machine บน Compute Engine ตามขั้นตอนในตอนที่แล้ว มาในตอนนี้เราจะเริ่มต้นเปิด swap และล็อค IP Address กันครับ
  1. ถ้าต้องการอัพโหลดไฟล์ผ่าน sFTP ต้องทำยังไงครับ
    พอดีทำตามที่ปิดการเข้าถึงทางอื่นตามที่แนะนำไปแล้ว
    แต่พอดีว่าต้องการอัพไฟล์บางอย่างทางทาง sFTP มันขึ้นว่าไม่อนุญาต
    Directory /var/www/html: permission denied

LEAVE A REPLY

Please enter your comment!
Please enter your name here