วิธีการติดตั้ง Wordpress บนเซิร์ฟเวอร์ Ubuntu 18.04

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

หากคุณมีเซิร์ฟเวอร์เป็นของตัวเอง คุณสามารถโฮสต์การติดตั้ง Wordpress ได้โดยไม่ต้องติดต่อกับบุคคลที่สาม และนั่นคือสิ่งที่เรากำลังจะทำที่นี่ ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีติดตั้งส่วนประกอบที่จำเป็นรวมถึงแพลตฟอร์ม Wordpress บน Ubuntu เซิร์ฟเวอร์ 18.04. สิ่งนี้จะถือว่าสิ่งเดียวเท่านั้น: คุณมีเซิร์ฟเวอร์ Ubuntu และทำงานอยู่

รหัสเลขฐานสองพร้อมเครือข่าย
Yuichiro Chino / Getty Images

การพึ่งพา

สิ่งแรกที่ต้องทำคือรับ LAMP ของเรา (ลินุกซ์ Apache MySQL PHP) เซิร์ฟเวอร์เริ่มทำงาน เนื่องจากอูบุนตูมีอยู่แล้ว สิ่งที่ต้องทำคือติดตั้งส่วนประกอบรอง เนื่องจากเราใช้ Ubuntu จึงสามารถทำได้ด้วยคำสั่งเดียว อย่างไรก็ตาม ก่อนที่เราจะทำเช่นนั้น เราต้องการให้แน่ใจว่าเซิร์ฟเวอร์ของเราเป็นปัจจุบัน เปิดหน้าต่างเทอร์มินัลและออกคำสั่งต่อไปนี้:

sudo apt-get update
sudo apt-get อัปเกรด

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

เมื่ออัปเดต/อัปเกรดจนหมดแล้ว ก็ถึงเวลาติดตั้งเซิร์ฟเวอร์เว็บ/ฐานข้อมูลและ PHP สามารถทำได้ด้วยคำสั่งเดียว:

sudo apt ติดตั้ง apache2 php mariadb-server 

ระหว่างการติดตั้ง คุณจะได้รับแจ้งให้สร้าง/ยืนยันรหัสผ่านสำหรับผู้ใช้ผู้ดูแลระบบ MySQL เมื่อดำเนินการเสร็จสิ้น คุณสามารถชี้เบราว์เซอร์ไปที่ http://SERVER_IP (โดยที่ SERVER_IP คือที่อยู่ IP ของเซิร์ฟเวอร์ Ubuntu ของคุณ) เพื่อดูหน้าจอต้อนรับของ Apache

ต่อไปเราต้องติดตั้งส่วนขยาย PHP ที่จำเป็นสองสามตัว สามารถทำได้ด้วยคำสั่ง:

sudo apt ติดตั้ง php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip 

การเปิดใช้งาน SSL

ก่อนที่เราจะเข้าสู่การกำหนดค่าของ Apache และการติดตั้ง Wordpress เราจะเตรียมเซิร์ฟเวอร์ของเราเพื่อใช้ SSL (Secure Sockets Layer) ซึ่งเป็นโปรโตคอลเว็บต่างๆ ที่ทำงานร่วมกันเพื่อรวมทราฟฟิก HTTP ปกติในการป้องกันและเข้ารหัส กระดาษห่อ ดังนั้น HTTP จึงกลายเป็น HTTPS เนื่องจากฉันกำลังตั้งค่าเซิร์ฟเวอร์ทดสอบเท่านั้น ฉันจะสร้างใบรับรอง SSL ที่ลงชื่อด้วยตนเองสำหรับที่อยู่ IP โดยทำตามขั้นตอนเหล่านี้

สร้างใบรับรอง SSL ด้วยคำสั่งต่อไปนี้:

sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt 

เมื่อคุณเรียกใช้คำสั่งนั้น คุณจะต้องตอบคำถามต่อไปนี้:

ชื่อประเทศ (รหัส 2 ตัวอักษร) [AU]:
ชื่อรัฐหรือจังหวัด (ชื่อเต็ม) [บางรัฐ]:
ชื่อท้องที่ (เช่น เมือง) []:
ชื่อองค์กร (เช่น บริษัท)[]
ชื่อหน่วยขององค์กร (เช่น ส่วน) []:
ชื่อสามัญ (เช่น เซิร์ฟเวอร์ FQDN หรือชื่อของคุณ) []:
ที่อยู่อีเมล []:

เป็นสิ่งสำคัญ สำหรับใบรับรองที่ลงนามเอง คุณต้องป้อนที่อยู่ IP ของเซิร์ฟเวอร์ของคุณสำหรับรายการ Common Name

ต่อไปเรากำหนดค่า Apache ให้ใช้ SSL สร้างไฟล์ใหม่ด้วยคำสั่ง:

sudo nano /etc/apache2/conf-available/ssl-params.conf. 

ในไฟล์ใหม่นั้น ให้วางสิ่งต่อไปนี้:

SSLCipherSuite EECDH+AESGCM: EDH+AESGCM: AES256+EECDH: AES256+EDH
SSLProtocol ทั้งหมด -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipher สั่งเปิด
# ปิดใช้งานการโหลด HSTS ล่วงหน้าในตอนนี้ คุณสามารถใช้บรรทัดส่วนหัวที่แสดงความคิดเห็นซึ่งรวมถึง
# คำสั่ง "พรีโหลด" หากคุณเข้าใจความหมาย
# Header ตั้งค่า Strict-Transport-Security เสมอ "max-age=63072000; รวมโดเมนย่อย; พรีโหลด"
ส่วนหัวตั้งค่า X-Frame-Options DENY. เสมอ
ส่วนหัวตั้งค่า X-Content-Type-Options nosniff. เสมอ
# ต้องใช้ Apache >= 2.4
SSLการบีบอัดปิด
SSLใช้การเย็บบน
SSLStaplingCache "shmcb: บันทึก/stapling-cache (150000)"
# ต้องการ Apache >= 2.4.11
SSLSessionTickets ปิด

ตอนนี้เรากำลังจะสร้างไฟล์ default-ssl.conf ใหม่ ก่อนที่เราจะทำอย่างนั้น สำรองข้อมูลต้นฉบับด้วยคำสั่ง:

sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak 

สร้างไฟล์ใหม่ด้วยคำสั่ง:

sudo nano /etc/apache2/sites-available/default-ssl.conf. 

ในไฟล์ใหม่นั้น ให้วางสิ่งต่อไปนี้:


ผู้ดูแลระบบเซิร์ฟเวอร์ YOUR_EMAIL
ชื่อเซิร์ฟเวอร์ SERVER_IP
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log รวมกัน
SSLEngine บน
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
SSLOptions +StdEnvVars
SSLOptions +StdEnvVars

บันทึกและปิดไฟล์นั้น

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

sudo nano /etc/apache2/sites-available/000-default.conf. 

ในไฟล์นั้น เพิ่มบรรทัดต่อไปนี้ภายใต้รายการ DocumentRoot:

เปลี่ยนเส้นทาง “/” “ https://SERVER_IP/”

โดยที่ SERVER_IP คือที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ

บันทึกและปิดไฟล์นั้น

ต่อไป เราต้องเปิดใช้งานโมดูลและโฮสต์บางส่วนด้วยคำสั่ง:

sudo a2enmod ssl
sudo a2enmod ส่วนหัว
sudo a2ensite default-ssl
sudo a2enconf ssl-params

สุดท้ายให้รีสตาร์ท Apache ด้วยคำสั่ง:

sudo systemctl รีสตาร์ท apache2 

ตอนนี้คุณควรจะสามารถชี้เบราว์เซอร์ของคุณไปที่ https://SERVER_IP (โดยที่ SERVER_IP คือที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ) และยังคงเห็นหน้าจอต้อนรับของ Apache

ฐานข้อมูล

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

sudo mysql_secure_installation

เมื่อเสร็จแล้ว คุณก็พร้อมที่จะเริ่มทำงานกับ MariaDB โดยใช้คำสั่ง "mysql"

Wordpress ขึ้นอยู่กับฐานข้อมูลในการทำงาน ในการสร้างนั้น ก่อนอื่นคุณต้องล็อกอินเข้าสู่พรอมต์ MySQL ด้วยคำสั่ง:

sudo mysql -u root -p 

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

สร้างฐานข้อมูล wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; 

ถัดไป สร้างผู้ใช้ใหม่และให้สิทธิ์ผู้ใช้ในการเข้าถึงฐานข้อมูลด้วยคำสั่ง:

ให้สิทธิ์ทั้งหมดบน wordpress * ถึง 'wordpressuser'@'localhost' ที่ระบุโดย 'PASSWORD'; 

โดยที่ PASSWORD เป็นรหัสผ่านที่รัดกุมและไม่ซ้ำใคร

ล้างสิทธิ์ฐานข้อมูลและออกด้วยคำสั่ง:

สิทธิ์ในการล้าง;
ออก

อนุญาต .htaccess และเปิดใช้งาน Rewrite Module

เราจำเป็นต้องเปิดใช้งาน .htaccess สำหรับ Wordpress ในการดำเนินการนี้ ให้สร้างไฟล์การกำหนดค่า Apache ใหม่โดยใช้คำสั่ง:

sudo nano /etc/apache2/sites-available/wordpress.conf. 

ในไฟล์นั้นให้วางสิ่งต่อไปนี้:


AllowOverride All

เปิดใช้งานโมดูลการเขียนซ้ำด้วยคำสั่ง:

sudo a2enmod เขียนใหม่ 

รีสตาร์ท Apache ด้วยคำสั่ง:

sudo systemctl รีสตาร์ท apache2 

ดาวน์โหลด แกะ และเตรียม Wordpress

เราจะดาวน์โหลดไฟล์ Wordpress อย่างเป็นทางการด้วยคำสั่งต่อไปนี้:

cd /tmp
ขด -O https://wordpress.org/latest.tar.gz.

แกะ Wordpress ด้วยคำสั่ง:

tar xvzf latest.tar.gz 

สร้างไฟล์จำลอง .htaccess ด้วยคำสั่ง:

แตะ /tmp/wordpress/.htaccess 

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

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

สร้างไดเร็กทอรีการอัพเกรด (เพื่อหลีกเลี่ยงปัญหาการอนุญาต) ด้วยคำสั่ง:

mkdir /tmp/wordpress/wp-content/อัพเกรด. 

คัดลอกเนื้อหาของไดเร็กทอรี wordpress ลงในรูทเอกสารด้วยคำสั่ง:

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

สุดท้าย ปรับความเป็นเจ้าของและการอนุญาตของไดเร็กทอรี 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 {} \;

การกำหนดค่า Wordpress

ส่วนนี้จะซับซ้อนเล็กน้อย ไฟล์ wp-config.php จำเป็นต้องแก้ไข แต่ก่อนจะสามารถทำได้ คุณต้องดาวน์โหลดคีย์ลับเฉพาะเพื่อเพิ่มลงในไฟล์ปรับแต่ง หากต้องการรับกุญแจเหล่านั้น โปรดไปที่ เครื่องกำเนิดไฟฟ้าออนไลน์จากนักพัฒนา WordPress.

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

AUTH_KEY
SECURE_AUTH_KEY
LOGGED_IN_KEY
NONCE_KEY
AUTH_SALT
SECURE_AUTH_SALT
LOGGED_IN_SALT
NONCE_SALT

คัดลอกค่าเหล่านั้นไปยังไฟล์อื่น ถัดไปเปิดไฟล์กำหนดค่า Wordpress ด้วยคำสั่ง:

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

ค้นหาค่าด้านบนและวางรหัสลับสำหรับแต่ละค่า หลังจากนั้น เลื่อนขึ้นและแก้ไขค่าสำหรับ:

DB_NAME
DB_USER
DB_PASSWORD

ค่าข้างต้นถูกสร้างขึ้นก่อนหน้านี้ (ด้วย MySQL)

บันทึกและปิดไฟล์นั้น

เสร็จสิ้นการติดตั้ง

โปรแกรมติดตั้ง Wordpress บนเว็บ

ตอนนี้คุณสามารถชี้เบราว์เซอร์ของคุณไปที่ https://SERVER_IP/wordpress และดำเนินการติดตั้งบนเว็บเพื่อทำการติดตั้งให้เสร็จสิ้น หลังจากคลิกและพิมพ์เพียงเล็กน้อย อินสแตนซ์ Wordpress ของคุณจะเริ่มทำงาน