ติดตั้ง WordPress บน CentOS 7

หลังจากที่เราติดตั้งลีนุกซ์ CentOS 7  ลงเว็บเซิร์ฟเวอร์ Apache ที่มีโมดูล PHP  แล้วก็ติดตั้งคอนฟิกเซิร์ฟเวอร์ฐานข้อมูล  MariaDB เสร็จเรียบร้อยแล้ว

ลองมาทดสอบการใช้งานกัน ด้วยการลง WordPress โปรแกรม CMS ยอดนิยม

ในที่นี้ผู้เขียนจะใช้ล็อกอินสองอันสลับไปมา ระหว่าง root และ ผู้ใช้งานธรรมดา (user) ในที่นี้ขอยกตัวอย่างชื่อ alice เพื่อเป็นตัวอย่างแนวทางปฏิบัติ คือให้ล็อกอินแค่ให้มีสิทธิ์เพียงพอต่อการทำงานเท่านั้น งานบางอย่างไม่จำเป็นต้องใช้ root ก็ล็อกอินด้วยผู้ใช้ธรรมดารันคำสั่ง

หมายเหตุ จะใช้ sudo เพื่อรันคำสั่งด้วยสิทธิ์ root ก็ได้ผลเหมือนกัน

เริ่มต้น ล็อกอินด้วย root เพื่อสร้างไดเรกทอรีสำหรับเก็บไฟล์ wordpress และเปลี่ยนเจ้าของ (chown) ให้ผู้ใช้งานธรรมดา (alice) เขียนไฟล์ในนี้ได้

[root@cent7 ~]# cd /var/www/html/
[root@cent7 html]# mkdir wordpress
[root@cent7 html]# chown alice wordpress/

ล็อกอินด้วยผู้ใช้ธรรมดา ดาวน์โหลดไฟล์ติดตั้ง wordpress เวอร์ชันล่าสุดด้วยคำสั่ง curl ระบุ URL ที่ใช้ดาวน์โหลดตามตัวอย่าง

[alice@cent7 ~]$ cd /var/www/html/wordpress/
[alice@cent7 wordpress]$ curl -O https://wordpress.org/latest.tar.gz

ตัวอย่างไฟล์ที่ดาวน์โหลดได้

[alice@cent7 wordpress]$ ls -l
total 6168
-rw-rw-r--. 1 alice alice 6313518 Jul 24 14:44 latest.tar.gz

ใช้คำสั่ง tar แตกไฟล์ที่ดาวน์โหลดมา

[alice@cent7 wordpress]$ tar zxvf latest.tar.gz
wordpress/
wordpress/wp-settings.php
wordpress/wp-cron.php
wordpress/wp-comments-post.php
wordpress/wp-activate.php
...

คำสั่ง tar จะสร้างไดเรกทอรีที่ชื่อ wordpress แล้วแตกไฟล์ในนั้น

[alice@cent7 wordpress]$ ls -l
total 6172
-rw-rw-r--. 1 alice alice 6313518 Jul 24 14:44 latest.tar.gz
drwxr-xr-x. 5 alice alice    4096 Jul 23 18:03 wordpress

ใช้คำสั่ง mv เพื่อย้ายไฟล์ออกมา

[alice@cent7 wordpress]$ mv wordpress/* .

ลบไดเรกทอรีและไฟล์ที่ดาวน์โหลดมา

[alice@cent7 wordpress]$ rmdir wordpress/
[alice@cent7 wordpress]$ rm -f latest.tar.gz

สรุปตอนนี้เรามีไฟล์ของ wordpress อยู่ในไดเรกทอรี /var/www/html/wordpress

[alice@cent7 wordpress]$ pwd
/var/www/html/wordpress
[alice@cent7 wordpress]$ ls
index.php             wp-config-sample.php  wp-mail.php
license.txt           wp-content            wp-settings.php
readme.html           wp-cron.php           wp-signup.php
wp-activate.php       wp-includes           wp-trackback.php
wp-admin              wp-links-opml.php     xmlrpc.php
wp-blog-header.php    wp-load.php
wp-comments-post.php  wp-login.php

หมายเหตุ จากตัวอย่างด้านบน เหตุผลที่แนะนำให้ล็อกอินด้วยผู้ใช้งานธรรมดา (user) ในการดาวน์โหลดไฟล์และการแตกไฟล์ ก็เพื่อป้องกันความเสียหายที่อาจเกิดขึ้น เช่นไฟล์ที่ดาวน์โหลดมาอาจถูกฝังด้วยสคริปต์เพื่อกระทำการบางอย่างกับเครื่องเซิร์ฟเวอร์ ถ้ารันด้วยผู้ใช้ธรรมดา ความเสียหายที่เกิดขึ้นจะน้อยกว่าการรันด้วย root ที่สามารถทำได้ทุกอย่างกับเครื่องเซิร์ฟเวอร์ได้

ล็อกอินด้วย root แก้ไขไฟล์คอนฟิกเว็บเซิร์ฟเวอร์ เพื่อแก้ไขค่าคอนฟิกไดเรกทอรีหลักในการเก็บไฟล์เว็บ (DocumentRoot) ให้ชี้มายังไดเรกทอรีที่เก็บไฟล์ wordpress

[root@cent7 ~]# vi /etc/httpd/conf/httpd.conf
...
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html/wordpress"
...

รีสตาร์ตเซอร์วิสเว็บเซิร์ฟเวอร์ (httpd) เพื่อให้คอนฟิกที่แก้ไขมีผล

[root@cent7 ~]# systemctl restart httpd

ลองใช้ browser ระบุ IP ของเซิร์ฟเวอร์ ถ้าทำตามขั้นตอนถูกต้อง จะเข้าสู่หน้าคอนฟิก WordPress
c-wp01-Setup-Config

กดปุ่ม [Let’s go!] เพื่อไปหน้าถัดไป

หน้าจอให้กรอกข้อมูลการเชื่อมต่อฐานข้อมูล เพื่อเก็บข้อมูลของ WordPress
c-wp02-Database-Connection-Details

ระบุชื่อฐานข้อมูล (Database Name) ชื่อผู้ใช้ (User Name) รหัสผ่าน (Password) ที่ใช้ในการเชื่อมต่อ

ก่อนที่จะกด [Submit] ต้องรันคำสั่ง mysql เพื่ออนุญาตให้ผู้ใช้ (User Name) ที่ระบุในฟอร์นี้ มีสิทธิ์เขียนอ่านในชื่อฐานข้อมูลได้

ตัวอย่างการใช้คำสั่ง mysql เพื่ออนุญาตสิทธิ์

[alice@cent7 ~]$ mysql -u root -p
...
MariaDB [(none)]> CREATE database wordpress;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'db-username'@'localhost' IDENTIFIED BY 'db-password';
Query OK, 0 rows affected (0.00 sec)

รันคำสั่ง GRANT เสร็จเรียบร้อย ถึงค่อยกลับไปกดปุ่ม [Submit] บนหน้าเว็บ

หน้าจอแสดงการเขียนไฟล์ wp-config.php ซึ่งเป็นไฟล์คอนฟิกหลักของ WordPress เช่นค่าคอนฟิกในการเชื่อมต่อฐานข้อมูล
c-wp03-wp-config

หน้าจอจะฟ้องว่าไม่สามารถเขียนไฟล์ wp-config.php ได้ เราต้องสร้างไฟล์ขึ้นมาเอง โดย copy ข้อความที่อยู่ในฟอร์มมาทั้งหมด แนะนำให้กด [Ctrl]+[a] เพื่อเลือกข้อความทั้งหมดในฟอร์ม

หลังจาก copy แล้ว ล็อกอินด้วย alice สร้างไฟล์ /var/www/html/wordpress/wp-config.php แล้ว paste ข้อความที่ copy มา ลงไปทั้งหมด

ตัวอย่างไฟล์ wp-config.php

[alice@cent7 ~]$ vi /var/www/html/wordpress/wp-config.php
<?php
/**
 * The base configurations of the WordPress.
 *
 * This file has the following configurations: MySQL settings, Table Prefix,
 * Secret Keys, and ABSPATH. You can find more information by visiting
 * {@link https://codex.wordpress.org/Editing_wp-config.php Editing wp-config.php}
 * Codex page. You can get the MySQL settings from your web host.
 *
 * This file is used by the wp-config.php creation script during the
 * installation. You don't have to use the web site, you can just copy this file
 * to "wp-config.php" and fill in the values.
 *
 * @package WordPress
 */
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'db-username');
/** MySQL database password */
define('DB_PASSWORD', 'db-password');
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
...

หลังจากสร้างไฟล์ wp-config.php แล้ว กลับมาหน้าเว็บ กดปุ่ม [Run the install] ต่อไป

หน้าจอให้กรอกข้อมูลเบื้องต้น ระบุชื่อ Username, Password ที่จะใช้เป็น admin ของ WordPress
c-wp04-welcome-to-famous-five-minute

c-wp05-Information-Needed

กดปุ่ม [Install WordPress]

หน้าจอแสดงการติดตั้งเสร็จสิ้น
c-wp06-Success

กดปุ่ม [Log In] เพื่อไปหน้าล็อกอินของ WordPress

หน้าจอล็อกอินของ WordPress กรอก Username, Password ของ admin แล้วกดปุ่ม [Login In]
c-wp07-Login

ตัวอย่างหน้าจอ admin ของ WordPress
c-wp08-Dashboard

ตัวอย่างหน้าแรกของเว็บไซต์เราที่สร้างด้วย WordPress
c-wp09-Wordpress-Site

ยินดีด้วยครับ คุณได้สร้างลีนุกซ์เซิร์ฟเวอร์ขึ้นมาด้วยตนเองตั้งแต่เริ่มต้น จนกระทั่งมีเว็บไซต์ CMS พร้อมใช้งานจริง

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.