Site icon Patranun's Sketchbook

ใช้ 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) ระบบจะพาไปยังหน้าจอติดตั้งทันที ขั้นแรกคือให้เราเลือกภาษาที่ต้องการติดตั้งและใช้งานเป็นหลักก่อน

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

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

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

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

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

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

Photo by Pixabay from Pexels

Exit mobile version