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

การพึ่งพา
สิ่งแรกที่ต้องทำคือรับ 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)
บันทึกและปิดไฟล์นั้น
เสร็จสิ้นการติดตั้ง

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