Mr.Green

สร้าง บันทึกและแบ่งปัน

พิมพ์ค้นหาบทความได้ในช่องค้นหา

Install WordPress on Ubuntu 22.04

Install WordPress on Ubuntu 22.04

Install WordPress on Ubuntu 22.04 เป็นขั้นตอนถัดมาหลังจากที่เราติดตั้ง Famp เสร็จเรียบร้อยแล้ว และได้ทดสอบพร้อมจะใช้งานแล้ว หรือในกรณีที่เราต้องการจะทำเป็นอย่างอื่นก็ทำได้ เช่นต้องการสร้าง Nextcloud หรืออะไรก็ตามที่เกี่ยวข้องกับ Web Server สามารถดัดแปลงหรือดำเนินการต่างๆๆ ได้ เพียงแต่เราอาจจะต้องติดตั้ง php extension เพิ่มเติมเพื่อให้เหมาะสมแค่นั้นเอง

Creating a MySQL Database and User for WordPress

ขั้นตอนแรกเป็นขั้นตอนการเตรียมการ Install WordPress on Ubuntu 22.04 ในการใช้งาน WordPress นั้น WordPress จะใช้ MySQL ในการจัดการและเก็บข้อมูลเว็บไซต์และข้อมูลของผู้ใช้ หากเราติดตั้ง MySQL  พร้อมแล้ว สิ่งที่ต้องทำต่อมาคือการสร้างฐานข้อมูลและผู้ใช้สำหรับ WordPress ใช้งาน

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

mysql -u root -p

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

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

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

CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

ต่อมาเพื่อให้ ฐานข้อมูลรู้ว่า ผู้ใช้ที่เราสร้างนั้นสามารถเข้าใช้งานได้ ให้กำหนดค่าดังนี้

GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

ตอนนี้ เราสร้างชื่อผู้ใช้และฐานข้อมูลสำหรับใช้งานของ WordPress ต่อมาเราต้องใช้คำสั่งอีกคำสั่ง ใช้คำสั่งนี้ เพื่อให้ MySQL รู้ว่าเรามีการเปลี่ยนแปลงค่าหรือเปลี่ยนแปลงสิทธิ์ในการเข้าถึง

FLUSH PRIVILEGES;

ใช้คำสั่งเพื่อออกจาก MySQL

EXIT;

Installing Additional PHP Extensions

ในการติดตั้ง LAMP ที่ผ่านมา การติดตั้งส่วนขยายของ PHP ไม่ได้มีการติดต่อมากเท่าไร เป็นการติดตั้งเพียงเพื่อให้ PHP สามารถติดต่อกับ MySQL ได้  แต่ในการติดตั้ง เพื่อจะใช้งาน WordPress และPlugin ต่างๆๆ จำเป็นต้องติดตั้ง ส่วนขยายของ PHP เพิ่มเติมเพื่อให้รองรับในการใช้งานได้สูงสุด ในส่วนนี้ สามารถเข้าไปดูคู่มือการติดตั้งของ PHP หรือ Theme แต่ละตัวได้ว่าข้อกำหนดต้องติดตั้งตัวขยายของ PHP ตัวไหนเพิ่มบ้าง

เราสามารถดาวโหลดและติดตั้ง ส่วนขยายของ PHP ที่ใช้บ่อยได้โดยใช้คำสั่ง APT ซึ่งเป็น package management tools  โดยคำสั่งแรกเป็นการสั่งให้อัพเดทสารบัญ แพ็คเก็ตในคอมพิวเตอร์ของเรา

sudo apt update

หลังจากนั้น เราสามารถติดตั้งส่วนขยายของ PHP หลายๆๆ ตัวพร้อมกัน เพื่อสำหรับใช้งาน WordPress ตามบทความ Install WordPress on Ubuntu 22.04 นี้

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

นั้นคือการติดตั้งส่วนขยายที่ถือว่าเป็นพื้นฐานสำหรับการใช้งานด้านการติดตั้ง Plugin เพื่มเติมของ WordPress หากเราพบว่าบาง Plugin หรือ Theme บางตัว มีความต้องการส่วนขยายของ PHP เราสามารถติดตั้งเพิ่มเติมได้ตามตัวอย่างคำสั่งดังกล่าว

เมื่อเสร็จจากการติดต้้งส่วนขยายแล้ว ต้องใช้คำสั่งเพื่อ รีสตาร์ทการทำงานของ Apache เพือโหลดส่วนขยายที่เราเพิ่งติดตั้งไป

หรือไม่หากเราปรับแต่งส่วนใดของ Apache เพิ่มเติมก็ต้องใช้คำสั่งนี้ทุกครั้ง รวมทั้งกรณีในการติดตั้งส่วนขยายของ PHP ด้วย เพื่อให้กระบวนการในการทำงานสมบูรณ์

sudo systemctl restart apache2

Enabling the Rewrite Module

เราจำเป็นต้องเปิดค่า Mod rewrite  เพื่อให้สามารถใช้งานคุณสมบัติของ WordPress  permalink ได้ (คือ link ส่งเป็นชื่อไปได้ เช่น https://knupan.com/knowledge-base/wordpress-famp/

ในการเปิดให้ใช้งาน ให้ใช้คำสั่งนี้

sudo a2enmod rewrite

Warning, Tip, Notice, or Information.

บางทีเปิดด้วยคำสั่งนี้ แล้ว Mod_rewrite ยังไม่ทำงาน ก็จำเป็นต้องคอนฟิกเพิ่มโดยใช้วิธีการตามนี้

เปิดค่าใช้งานที่เปลี่ยนแปลง

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

sudo apache2ctl configtest

ในขั้นตอนทดสอบไฟล์คอนฟิกว่าเราปรับแต่งถูกต้องหรือไม่ หากมีปัญหาแจ้งว่า 

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

ให้เข้าไปแก้ไขตรงไฟล์  /etc/apache2/apache2.conf และกำหนดค่าตรง ServerName ตามที่โปรแกรมแจ้งมา

หลังจากนั้นก็ใช้คำสั่งรีสตาร์ท Apache 

sudo systemctl restart apache2

Downloading WordPress

ตอนนี้ เป็นอันว่าเราได้ปรับแต่งซอฟร์แวร์ในการใช้งานสำหรับ Server ของเราเสร็จเรียบร้อย ขั้นตอนต่อมาเป็นการเริ่มการติดตั้ง WordPress และเพื่อความปลอดภัย แนะนำว่าให้ดาวโหลดน์ WordPress รุ่นล่าสุดมาติดตั้ง จากแหล่งที่เปิดให้ดาวโหลด WordPress 

เริ่มด้วยเปลี่ยน ไปยังไดเร็กเตอรี /tmp ซึ่งเป็นไดเร็กเตอรี่ที่เก็บไฟล์ชั่วคราว 

cd /tmp

ใช้คำสั่ง curl ในการดาวโหลดตัวที่บีบอัดตัวล่าสุด หากยังไม่มีคำสั่ง curl ให้ใช้คำสั่งติดตั้ง curl ก่อน

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

ใช้คำสั่ง tar xzvf เพื่อแตกไฟล์ที่ดาวโหลดมา ให้อยู่ใน ไดเร็กเตอรี่ WordPress

tar xzvf latest.tar.gz

ก่อนที่เราจะไฟล์ของ WordPress ทั้งหมดไปเก็บไว้ที่สำหรับเก็บข้อมูลเว็บไซต์ นั้นคือ /var/www/ชือที่เราตั้งไว้ เราอาจจะเพิ่มไฟล์จำลอง .htaccess เพื่อสามารถจะใช้ WordPress ได้ภายหลัง (ขั้นตอนนี้ อาจจะไม่ต้องทำก็ได้)

หากจะสร้างไฟล์ สร้างได้โดยใช้คำสั่งดังนี้

touch /tmp/wordpress/.htaccess

ใช้คำสั่งเพื่อ คัดลอกไฟล์ตัวอย่างทั้งหมด ไปยังไฟล์ใหม่ที่ WordPress สามารถเข้าใจและอ่านได้ นั้นคือชื่อ wp-config.php

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

เพิ่มเติม อีกอย่างคือการสร้าง ไดเร็กเตอรีที่มีชื่อว่า upgrade  เพื่อป้องกันปัญหาที่จะเกิดเกี่ยวกับค่า Permission  เมื่อเราอัพเดท

mkdir /tmp/wordpress/wp-content/upgrade

ในตอนนี้ เราสามารถใช้คำสั่งคัดลอก เนื้อหาทั้งหมดของไดเร็กเตอรี่ ไปยังที่เก็บเอกสารหลักในการสร้างเว็บไซต์ของเรา จากตัวอย่าง หากในไดเร็กเตอรี่ /var/www/wordpress เรากำหนดค่าเป็นค่าอื่น ต้องให้ตรงกับที่เรากำหนดค่าไว้ในขั้นตอนการสร้างพื้นทีใหม่ สำหรับเก็บเว็บไซต์ แต่หากเราไม่แก้ไขอะไร จะอยู่ใน /var/www/html

ในคำสั่งต้นทางจะเห็นว่า ท้ายคำสั่งเป็นเครื่องหมาย . (จุด) นั้นหมายถึงเป็นคำสั่งที่ให้คัดลอกทุกไฟล์ แม้ว่าไฟล์นั้นจะซ่อนไว้

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

ตอนนี้ เป็นอันว่าเราพร้อมแล้วสำหรับการปรับแต่งไดเร็กเตอรีของ WordPress

การปรับแต่ง the WordPress Directory

ก่อนจะเริ่มใช้งานเว็บไซต์โดยการติดตั้ง WordPress เราต้องจัดการปรับแต่งบางรายการในส่วนที่เกี่ยวข้องกับไดเร็กเตอรี WordPress เริ่มจาก

Adjusting the Ownership and Permissions

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

เริ่มจากการใช้คำสั่ง มอบสิทธิ์ให้กับผู้ใช้และกลุ่มของไฟล์ทั้งหมด ให้เป็น www-data  ซึ่งเป็นผู้ที่มีสิทธิใช้ ของ Apache ที่ให้บริการเว็บเซิร์ฟเวอร์ เพราะ Apache จำเป็นต้องอ่านและเขียนไฟล์ WordPress เพื่อบริการงานทางได้เว็บไซต์

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

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

ต่อมา ใช้คำสั่ง find  2 คำสั่งเพื่อปรับค่าการเข้าถึงของไดเร็กเตอรีและไฟล์ต่างๆ 

คำสั่งแรก กำหนดให้การเข้าถึงไดเร็กเตอร์รี ภายใน /var/www/wordpress มีค่า permission เท่า 750

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

ต่อมากำหนดให้ไฟล์แต่ละไฟล์ ให้มีค่าเท่า 640 (หากไม่เข้าใจต้องไปทำความเข้าใจเกี่ยวกับค่า Permission ในระบบ Linux)

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

Setting Up the WordPress Configuration File

คือการตั้งค่าของไฟล์คอนฟิกของ WordPress เมื่อเราเปิดไฟล์คอนฟิกสำหรับ WordPress สิงแรกคือเราจะต้องปรับแต่งคีย์ลับ บางสวน เพื่อให้มีความปลอดภัยสูงขึ้นสำหรับการติดตั้ง  ในการสร้างนัั้นไม่มีอะไรยุ่งยากหรือซัำซ้อน เพราะ WordPress ได้สร้างเครื่องมือไว้ให้แล้ว   โดยใช้คำสั่งนี้

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

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

define('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES  07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

ในการนำคีย์ลับดังกล่าวไปใช้งาน เราต้องเปิดไฟล์ wp-config.php ขึ้นมา แล้วคัดลอกคีย์ที่เราใช้คำสั่งตามที่อธิบายมาแล้วไปวางแทนที่ในไฟล์ดังกล่าว  ให้ครบทุกแถวที่เราคัดลอกมา

การใช้คำสั่งเพื่อเปิดไฟล์

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

เมื่อคัดลอกคีย์ลับไปวางแทน ข้อความเดิมในไฟล์ คอนฟิกแล้ว ขั้นตอนต่อมา ให้ไปแก้ไข ชื่อของฐานข้อมูล  ชื่อผู้ใช้ฐานข้อมูลและพาสเวิร์ดของผู้ใช้ฐานข้อมูล ตามที่เรากำหนดไว้ในตอนปรับแต่งค่า MySQL

. . .

// ** 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', 'wordpressuser' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );


. . .

define('FS_METHOD', 'direct');

การติดตั้ง WordPress ผ่านเว็บ

หลังจากที่ปรับแต่งค่าต่างเสร็จสิ้น จะเข้าสู่ขั้นตอนการติดตั้งผ่านทาง Web Interface โดยพิมพ์ ชื่อโดเมนหรือไอพี  เพื่อเข้าสู่กระบวนการติดตั้งต่อไป

https://server_domain_or_IP

เมื่อพิมพ์ หมายเลขไอพีหรือโดเมนเนมแล้ว จะเข้าสู่ขั้นตอนการตั้ง WordPress  ตามขั้นตอนต่อไป

เป็นอันว่าจบบทความ Install WordPress on Ubuntu 22.04 with a LAMP

อ้างอิงบทความจากเว็บไซต์ของ DigitalOcean

สรุป คำสั่งสำหรับคนที่ต้องการความรวดเร็ว

กรณีต้องการลบฐานข้อมูลก่อน เพื่อสร้างใหม่

Drop database wordpress;

สร้างฐานข้อมูลใหม่ ชื่อว่า wordpress และผู้ใช้ Username ,passwd

CREATE DATABASE wordpress  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'UserName'@'%' IDENTIFIED WITH mysql_native_password BY 'passwd';
GRANT ALL ON wordpress.* TO 'username'@'%';
FLUSH PRIVILEGES;
EXIT;
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
touch /tmp/wordpress/.htaccess
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
mkdir /tmp/wordpress/wp-content/upgrade
sudo cp -a /tmp/wordpress/. /var/www/wordpress
sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;
curl -s https://api.wordpress.org/secret-key/1.1/salt/
sudo nano /var/www/wordpress/wp-config.php
sudo systemctl restart apache2

บทความนี้ อ้างอิงมาจาก

Tags:  ,

Leave a Reply

Your email address will not be published. Required fields are marked *