วิธีปรับใช้ไซต์ WordPress ของคุณด้วย Docker

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

นักเทียบท่าคืออะไร?

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

นักเทียบท่าทำงานอย่างไร?

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

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

คอนเทนเนอร์ลินุกซ์ (LXC)

นักเทียบท่าใช้คอนเทนเนอร์ Linux (LXC) LXC อนุญาตให้มีเครื่องเสมือนหลายเครื่องในเครื่องเดียว ฟิสิคัลเซิร์ฟเวอร์ เพื่อดำเนินการ เครื่องเสมือนแต่ละเครื่องมี CPU, RAM และฮาร์ดไดรฟ์ของตัวเอง อย่างไรก็ตาม คอนเทนเนอร์ LXC ไม่ได้ถูกแยกออกจากคอนเทนเนอร์อื่นและระบบโฮสต์โดยสิ้นเชิง

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

ประโยชน์ของนักเทียบท่า

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

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

ข้อดีอีกประการหนึ่งคือคอนเทนเนอร์ Docker สามารถพกพาได้ ซึ่งหมายความว่าคอนเทนเนอร์ที่สร้างขึ้นบนระบบ Linux สามารถทำงานบนระบบ Windows หรือ macOS ได้เช่นกัน

คอนเทนเนอร์นักเทียบท่าสามารถทำงานได้บนแพลตฟอร์มใด ๆ นักเทียบท่ารองรับ Linux Windows และแมคโอเอส

ข้อเสียของนักเทียบท่า

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

ข้อเสียเปรียบที่ใหญ่ที่สุดประการหนึ่งของ Docker ก็คือมันเป็นผลิตภัณฑ์ที่ค่อนข้างใหม่ ซึ่งหมายความว่าไม่มีประสบการณ์ระยะยาวกับผลิตภัณฑ์ ดังนั้นจึงยังไม่มีการกำหนดแนวทางปฏิบัติที่ดีที่สุด

ข้อเสียอีกประการหนึ่งของ Docker ก็คือมันมีข้อจำกัดบางประการในแง่ของฮาร์ดแวร์และระบบปฏิบัติการที่สามารถติดตั้งได้ ตัวอย่างเช่น คุณไม่สามารถเรียกใช้คอนเทนเนอร์ Windows บน Mac หรือ Linux ได้

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

เหตุใดคุณจึงควรปรับใช้ไซต์ WordPress ของคุณด้วย Docker

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

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

คุณจะเตรียมเว็บไซต์ WordPress ด้วย Docker อย่างไร?

ในบทความนี้ เราจะพูดถึงวิธีการปรับใช้ไซต์ WordPress ของคุณโดยใช้ Docker เป็นครั้งแรก หากคุณยังไม่ได้ติดตั้ง Docker คุณสามารถดูคำแนะนำในการติดตั้งได้ที่นี่

ขั้นแรก คุณต้องสร้างไดเร็กทอรีสำหรับไซต์ WordPress ของคุณ นี่คือไดเร็กทอรีที่เก็บไฟล์ทั้งหมดสำหรับไซต์ของคุณ ตัวอย่างเช่น:

mkdir / my-wordpress-site

นักเทียบท่า-compose.yml

ถัดไป คุณต้องสร้างไฟล์ docker-compose.yml ในไดเร็กทอรีนี้ ไฟล์ docker-compose.yml เป็นไฟล์กำหนดค่าที่กำหนดการตั้งค่าทั้งหมดสำหรับไซต์ WordPress ของคุณ ตัวอย่างเช่น:

รุ่น: '2' บริการ: db: รูปภาพ: mysql: 5.7 รีสตาร์ท: สภาพแวดล้อมเสมอ: MYSQL_ROOT_PASSWORD: ตัวอย่าง MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: ตัวอย่าง wp: รูปภาพ: รีสตาร์ท wordpress: สภาพแวดล้อมเสมอ: WORDPRESS_DB_HOST : db : 3306 WORDPRESS_DB_NAME : wordpress WORDPRESS_DB_USER : wordpress WORDPRESS_DB_PASSWORD : ตัวอย่างพอร์ต : – “8080 : 80”

เวอร์ชันนักเทียบท่าเขียนถูกกำหนดครั้งแรกในไฟล์นี้ ตัวอย่างนี้ใช้เวอร์ชัน 2

ฐานข้อมูล MySQL

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

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

มีการตั้งค่าอื่นๆ อีกมากมายที่คุณสามารถกำหนดได้ในไฟล์ docker-compose.yml ข้อมูลเพิ่มเติมสามารถพบได้ใน เอกสารประกอบนักเทียบท่า.

.htaccess

ถัดไป คุณต้องสร้างไฟล์ .htaccess ในไดเร็กทอรีของคุณ ไฟล์นี้ใช้ในการสร้าง URL ที่ สำหรับไซต์ WordPress ของคุณ ตัวอย่างเช่น:

RewriteEngine บน RewriteRule ^$ ดัชนี php [QSA] เขียนซ้ำ % {REQUEST_FILENAME} ! -f เขียนใหม่ % {REQUEST_FILENAME} ! -d RewriteRule ^( . * )$ ดัชนี php? $1 [ถามตอบ]

ไฟล์นี้บังคับให้คำขอทั้งหมดไปยังไซต์ WordPress ของคุณถูกกำหนดเส้นทางผ่าน index.php นี่คือการกำหนดค่าเริ่มต้นสำหรับไซต์ WordPress

WP-config.php

ถัดไปคุณต้องสร้างไฟล์ wp-config.php ในไดเร็กทอรีของคุณ ไฟล์นี้มีการตั้งค่าสำหรับไซต์ WordPress ของคุณ คุณสามารถใช้ไฟล์ wp-config.php เริ่มต้นของ WordPress หรือสร้างไฟล์ของคุณเองก็ได้

ตัวอย่างเช่น:define('DB_NAME', 'wordpress'); /** ชื่อผู้ใช้ฐานข้อมูล MySQL */กำหนด('DB_USER', 'wordpress'); /** รหัสผ่านฐานข้อมูล MySQL */ Defin('DB_PASSWORD', 'example'); /** MySQL ชื่อโฮสต์ */กำหนด('DB_HOST', 'db:3306'); /** Database Charset เพื่อใช้ในการสร้างตารางฐานข้อมูล */กำหนด('DB_CHARSET', 'utf8'); /** ชนิดเทียบฐานข้อมูล อย่าเปลี่ยนแปลงสิ่งนี้หากมีข้อสงสัย */กำหนด('DB_COLLATE', ”);

ในไฟล์นี้ คุณต้องกำหนดค่าข้อมูลฐานข้อมูลสำหรับไซต์ WordPress ของคุณ ตัวอย่างเช่น จำเป็นต้องตั้งค่า DB_HOST เป็นบริการ db เพื่อให้ WordPress รู้ว่าฐานข้อมูล MySQL อยู่ที่ใด

มีการตั้งค่าอื่นๆ อีกมากมายที่คุณสามารถกำหนดได้ในไฟล์ wp-config.php ของคุณ ข้อมูลเพิ่มเติมสามารถพบได้ใน เอกสารเวิร์ดเพรส.

index.php

ต่อไปคุณจะต้องสร้างไฟล์ index.php ในไดเร็กทอรีของคุณ ไฟล์นี้เป็นไฟล์หลักสำหรับเว็บไซต์ WordPress ของคุณ ตัวอย่างเช่น:

ในไฟล์นี้ ตัวแปร WP_USE_THEMES จะถูกตั้งค่าเป็นจริงก่อน เพื่อให้ WordPress ใช้ธีมที่ใช้งานอยู่ จากนั้นไฟล์ wp-blog-header.php จะถูกโหลด ซึ่งจะเริ่มต้นส่วนที่เหลือของแอปพลิเคชัน WordPress

robots.txt

ถัดไป คุณต้องสร้างไฟล์ Robots.txt ในไดเร็กทอรีของคุณ ไฟล์นี้ใช้เพื่อควบคุมบอทเครื่องมือค้นหาที่รวบรวมข้อมูลเว็บไซต์ของคุณ ตัวอย่างเช่น:

ตัวแทนผู้ใช้: * ไม่อนุญาต: / wp-admin / อนุญาต: / wp-admin / admin-ajax.php

ตัวอย่างนี้ระบุว่าบอททั้งหมดไม่ควรเรียกดูไดเร็กทอรี /wp-admin/ นี่เป็นวิธีที่ดีในการป้องกันไม่ให้บอทดำเนินการที่ไม่พึงประสงค์กับการติดตั้ง WordPress ของคุณ

favicon.ico

ถัดไปคุณต้องสร้างไฟล์ favicon.ico ในไดเร็กทอรีของคุณ นี่เป็นกราฟิกขนาดเล็กที่ปรากฏในแถบที่อยู่ของเบราว์เซอร์เมื่อคุณเยี่ยมชมไซต์ของคุณ คุณสามารถใช้กราฟิกใดก็ได้ที่คุณชอบหรือใช้ตัวสร้างแบบนี้

ไฟล์คอนฟิกูเรชัน Apache

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

ชื่อเซิร์ฟเวอร์ my-wordpress-site.example.com DocumentRoot / my-wordpress-site ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log รวมกัน

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

มีการตั้งค่าอื่นๆ อีกมากมายที่คุณสามารถกำหนดได้ในไฟล์การกำหนดค่า Apache ของคุณ ข้อมูลเพิ่มเติมสามารถพบได้ใน เอกสารของอาปาเช่.

php.ini

ถัดไปคุณต้องสร้างไฟล์ php.ini ในไดเร็กทอรีของคุณ ไฟล์นี้ใช้เพื่อกำหนดค่าการกำหนดค่า PHP สำหรับเว็บไซต์ของคุณ ตัวอย่างเช่น:

display_errors = บน display_startup_errors = เมื่อ error_reporting = E_ALL memory_limit = 512M upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300

การตั้งค่า PHP พื้นฐานบางอย่างได้รับการกำหนดค่าไว้ในไฟล์นี้ มีการตั้งค่าอื่นๆ อีกมากมายที่คุณสามารถกำหนดได้ในไฟล์ php.ini ของคุณ ข้อมูลเพิ่มเติมสามารถพบได้ใน เอกสารประกอบ PHP.

ไฟล์อาปาเช่ vhost

ต่อไปคุณจะต้องสร้างไฟล์ Apache vhost ในไดเร็กทอรีของคุณ ไฟล์นี้ใช้เพื่อกำหนดค่าการกำหนดค่าโฮสต์เสมือนสำหรับไซต์ของคุณ ตัวอย่างเช่น:

ชื่อเซิร์ฟเวอร์ my-wordpress-site.example.com ServerAlias ​​www.my-wordpress-site.example.com DocumentRoot / my-wordpress-site ErrorLog $ {APACHE_LOG_DIR} / ข้อผิดพลาด บันทึก CustomLog $ {APACHE_LOG_DIR} / การเข้าถึง บันทึกรวม < Directory / my-wordpress – site > AllowOverride All ต้องได้รับสิทธิ์ทั้งหมด

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

มีการตั้งค่าอื่นๆ อีกมากมายที่คุณสามารถกำหนดได้ในไฟล์ Apache vhost ของคุณ ข้อมูลเพิ่มเติมสามารถพบได้ใน เอกสารของอาปาเช่

ไฟล์การกำหนดค่า Apache SSL

ถัดไป คุณต้องสร้างไฟล์การกำหนดค่า Apache SSL ในไดเร็กทอรีของคุณ ไฟล์นี้ใช้เพื่อกำหนดค่าการกำหนดค่า SSL/TLS สำหรับเว็บไซต์ของคุณ ตัวอย่างเช่น:

ชื่อเซิร์ฟเวอร์ my-wordpress-site.example.com DocumentRoot / my-wordpress – ไซต์ ErrorLog $ {APACHE_LOG_DIR} / ข้อผิดพลาด บันทึก CustomLog $ {APACHE_LOG_DIR} / การเข้าถึง บันทึก SSLEngine รวมบน SSLCertificateFile / path / to / your /certificate crt SSLCertificateKeyFile / เส้นทาง / ถึง / ของคุณ / ใบรับรอง สำคัญ

มีการตั้งค่าอื่นๆ มากมายที่คุณสามารถกำหนดได้ในไฟล์การกำหนดค่า Apache SSL ข้อมูลเพิ่มเติมสามารถพบได้ใน เอกสารของอาปาเช่.

สุดท้าย คุณต้องสร้างใบรับรอง SSL สำหรับเว็บไซต์ของคุณ ซึ่งสามารถทำได้โดยใช้เครื่องมือเช่น Let's Encrypt สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารประกอบของ Apache

เมื่อคุณสร้างไฟล์ทั้งหมดข้างต้นแล้ว คุณสามารถเปิดไซต์ WordPress ของคุณได้โดยใช้คำสั่ง docker-compose up -d ปรับใช้ คำสั่งนี้เริ่มบริการทั้งหมดในไฟล์ docker-compose.yml และปรับใช้ไซต์ WordPress ของคุณ

Fazit

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

บันทึก..เป็นสิ่งสำคัญ!

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

Jan Domke

พร้อมท์วิศวกร | ผู้จัดการโซเชียลมีเดีย | ผู้จัดการโฮสติ้ง | ผู้ดูแลเว็บ

ฉันจัดทำนิตยสารออนไลน์แบบส่วนตัวตั้งแต่ปลายปี 2021 SEO4Business และด้วยเหตุนี้จึงเปลี่ยนงานของฉันให้เป็นงานอดิเรก
ฉันทำงานเป็น A มาตั้งแต่ปี 2019 Senior Hosting Managerที่หนึ่งในเอเจนซี่ด้านอินเทอร์เน็ตและการตลาดที่ใหญ่ที่สุดในเยอรมนี และกำลังขยายขอบเขตความรู้ของฉันอย่างต่อเนื่อง

Jan Domke