วิธีการติดตั้ง WordPress โดยใช้นักแต่งเพลง: คู่มือการติดตั้งทีละขั้นตอน
เผยแพร่แล้ว: 2023-02-28บทนำ: ทำไมต้องใช้ WordPress ฐานนักแต่งเพลง?
เช่นเดียวกับแอปพลิเคชันอื่นๆ ไซต์ WordPress ของคุณจะปลอดภัยที่สุดเมื่อคุณสามารถรับประกันการสร้างซ้ำและการอัปเดตที่ยอมรับได้สำหรับโค้ดและการอ้างอิง โครงสร้างพื้นฐานของคุณได้รับการคอมมิตผ่านชุดไฟล์คอนฟิกูเรชันที่ระบุเวอร์ชันของ PHP และ MariaDB ที่คุณต้องการใช้ นี่เป็นวิธีที่ดีที่สุดเพื่อให้แน่ใจว่าโครงการของคุณยังคงสามารถทำซ้ำได้เมื่อพัฒนาคุณสมบัติใหม่
คอร์ WordPress รวมถึงธีมและปลั๊กอินควรทำงานในลักษณะเดียวกัน แต่มักจะไม่เป็นเช่นนั้น แผงการดูแลระบบของ WordPress มีปุ่มเพียงคลิกเดียวเพื่ออัปเดตส่วนประกอบเหล่านี้ทั้งหมดเมื่อล้าสมัยหรือคาดว่าจะมีการเข้าถึงแบบเขียนไปยังระบบไฟล์เพื่อทำการเปลี่ยนแปลงการกำหนดค่าในขณะรันไทม์ อย่างไรก็ตาม การพัฒนาด้วยวิธีนี้มีผลที่ตามมา
ประการแรก คุณจะไม่มีสิทธิ์เขียนระบบไฟล์ในขณะรันไทม์เสมอไป ดังนั้นขึ้นอยู่กับกลไกนี้สำหรับการอัปเดตและการเปลี่ยนแปลงการกำหนดค่าจึงถูกจำกัดโดยสิ้นเชิงสำหรับโซลูชันโฮสติ้งจำนวนมาก ในทางกลับกัน หากคุณมีสิทธิ์ในการเขียนในขณะรันไทม์ซึ่งคุณกำลังโฮสต์อยู่ การติดตั้งโมดูลหรือธีมใหม่จะมีความเสี่ยงด้านความปลอดภัยเล็กน้อย (เมื่อไม่ทราบแหล่งที่มา)
แต่ที่สำคัญที่สุด การอัปเดต WordPress ที่รันไทม์จะแยกสถานะของไซต์ของคุณออกจากโค้ดในที่เก็บของคุณ เพื่อนร่วมงานที่ทำงานเกี่ยวกับฟีเจอร์ใหม่ในการลอกแบบโลคัลของโครงการอาจเป็นเวอร์ชันเต็มเบื้องหลังไซต์ที่ใช้งานจริงได้เป็นอย่างดี จากผลเวิร์กโฟลว์นี้ คุณสามารถแนะนำจุดบกพร่องที่มีผลลัพธ์ที่ไม่รู้จัก (และยังไม่ได้ทดสอบ)
ข้อดีของการใช้นักแต่งเพลง
จากข้อเท็จจริงข้างต้น การจัดการไซต์ WordPress ของคุณด้วย Composer มีข้อดีที่ชัดเจน ประการแรก อนุญาตให้คุณกำหนดการอ้างอิงของคุณอย่างชัดเจนในไฟล์คอมมิต (composer.lock) ไฟล์ล็อคนี้สร้างขึ้นจากรายการข้อจำกัดการพึ่งพา (composer.json) ที่อธิบายได้มากขึ้นเมื่อการอ้างอิงของคุณได้รับการติดตั้ง และจะกลายเป็นส่วนหนึ่งของประวัติการคอมมิตของโปรเจ็กต์ของคุณ ตั้งแต่นั้นมา สาขาใหม่ใดๆ จะทำงานจากการรวบรวมการพึ่งพาที่เหมือนกันไปจนถึงแฮชการคอมมิตที่แน่นอน ณ จุดนี้ ไม่สำคัญว่าใครจะมีส่วนร่วมในโครงการหรือแม้แต่ที่ใดที่จะถูกปรับใช้ – รหัสเดียวกันสำหรับทุกคนทุกที่
นักแต่งเพลงยังขจัดความจำเป็นในการส่งโค้ดภายนอกจำนวนมากไปยังที่เก็บของคุณ ในกรณีของ WordPress การไม่ใช้ Composer มักจะกำหนดให้คุณต้องคอมมิตโค้ดทั้งหมดสำหรับธีมและแม้กระทั่งคอร์และปลั๊กอินของ WordPress ในโครงการของคุณเอง นอกจากการทำให้พื้นที่เก็บข้อมูลมีขนาดใหญ่โดยไม่จำเป็นและทำให้โคลนช้าแล้ว การอัปเดตสำเนาเหล่านี้ยังกลายเป็นเรื่องเล่นกลที่ไม่มีใครต้องจัดการด้วย
ด้วย Composer คุณสามารถเพิ่มและอัปเดตการอ้างอิงไปยังโครงการของคุณ จากนั้นล็อคเวอร์ชันที่แน่นอนเพื่อให้แต่ละสาขาใหม่ได้รับการอัปเดตเดียวกันนั้น หากมีการอัปเดตบนไซต์ที่ปรับใช้ในขณะรันไทม์ คุณจะต้องอย่าลืม git pull ก่อน
การติดตั้งคอร์ WordPress ด้วยนักแต่งเพลง
ในทำนองเดียวกัน การใช้ Composer ทำให้คุณไม่จำเป็นต้องส่ง WordPress ทั้งหมดไปยังที่เก็บของคุณ เนื่องจากคุณสามารถเพิ่มเป็นการอ้างอิงได้ มีหลายวิธีในการทำเช่นนี้ (เช่น Bedrock) ขึ้นอยู่กับจำนวนสมมติฐานที่คุณต้องการสร้างสำหรับการกำหนดค่าและโครงสร้างโครงการของคุณ วิธีที่ง่ายที่สุดคือใช้ John Bloch Composer fork เพื่อเพิ่มตัวติดตั้งให้กับงานสร้างของคุณสำหรับ WordPress:
ผู้แต่ง $ ต้องการ johnpbloch/wordpress-core-installer ผู้แต่ง $ ต้องการ johnpbloch/wordpress-core
คำสั่งด้านบนจะสร้างไฟล์ Composer.json และติดตั้ง WordPress core ในไดเร็กทอรี WordPress ผู้แต่ง json จะมีลักษณะดังนี้
{ "จำเป็นต้อง": { "johnpbloch/wordpress-core-installer": "^2.0", "johnpbloch/wordpress-core": "^6.1" }, "กำหนดค่า": { "อนุญาตปลั๊กอิน": { "johnpbloch/wordpress-core-installer": จริง } } }
เรามี WordPress core ในโฟลเดอร์ WordPress แต่เราจำเป็นต้องคัดลอก index.php นอกไดเร็กทอรี WordPress เพื่อให้เราสามารถชี้เว็บเซิร์ฟเวอร์ไปยังไดเร็กทอรีหลักได้
ใน การจัดการ WordPress ด้วย Composer อย่างเต็มรูปแบบ เราจำเป็นต้องใช้ไดเร็กทอรีอื่นสำหรับ wp-content แทน WordPress/wp-content ที่เป็นค่าเริ่มต้น
มาสร้างไดเร็กทอรีใหม่ในรูทของโปรเจ็กต์ชื่อ wp-content
เมื่อคัดลอก index.php จากโฟลเดอร์ WordPress เราจำเป็นต้องเปลี่ยนตำแหน่งของไฟล์ wp-blog-header.php ซึ่งเป็นที่ตั้งของไดเร็กทอรี WordPress ของเรา
หลังจากแก้ไขแล้ว จะได้ index.php หน้าตาแบบนี้
<?php กำหนด ('WP_USE_THEMES' จริง); ต้องการ( dirname( __FILE__ ) . '/wordpress/wp-blog-header.php' );
เราจำเป็นต้องสร้างไฟล์ .htaccess ในไดเร็กทอรีรูทโดยมีเนื้อหาดังต่อไปนี้:
# เริ่มต้น WordPress <IfModule mod_rewrite.c> RewriteEngine เปิดอยู่ ฐานการเขียนซ้ำ / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d กฎการเขียนซ้ำ /index.php [L] </หากโมดูล> # จบเวิร์ดเพรส
ไปข้างหน้าและคัดลอกตัวอย่างไฟล์ wp-config.php จากนั้นเพิ่มโค้ดต่อไปนี้:
$domain = 'โดเมนของฉัน.com; กำหนด ('WP_SITEURL', "https://{$domain}/wordpress"); กำหนด ('WP_HOME',"https://{$domain}"); $httpHost = isset($_SERVER['HTTPS_HOST']) ? $_SERVER['HTTPS_HOST'] : $โดเมน; กำหนด ( 'WP_CONTENT_DIR', dirname ( __FILE__ ) . '/wp-content' ); กำหนด ( 'WP_CONTENT_URL', 'https://' . $httpHost . '/wp-content' ); /** เส้นทางที่สมบูรณ์ไปยังไดเร็กทอรี WordPress */ ถ้า ( !defined('ABSPATH') ) { กำหนด ('ABSPATH', dirname (__FILE__) . '/wordpress'); }
เราได้เพิ่ม WordPress ใน ABSPATH เนื่องจาก WordPress core อยู่ใน /WordPress
เนื่องจากไฟล์ wp-config.php มีข้อมูลละเอียดอ่อน เราจะไม่ส่งไปยังที่เก็บของเราโดยการสร้างไฟล์ .gitignore:
/wp-config.php /เวิร์ดเพรส/ /wp-เนื้อหา/ /ผู้ขาย/
ไดเร็กทอรี WordPress, wp-content และ vendor จะต้องถูกละเว้น เพื่อที่เราจะเพิ่มลงในไฟล์ .gitignore ด้วย
หมายเหตุ: คุณต้องเปลี่ยนไดเร็กทอรี wp-content ในกรณีที่คุณต้องการเพิ่มหลักการตั้งชื่ออื่นสำหรับ wp-content ของคุณ
ไดเร็กทอรีรูทโปรเจ็กต์ของเราควรมีลักษณะดังนี้
.git .gitignore ผู้แต่ง.lock ผู้แต่ง.json ผู้ขาย wp-config.php index.php เวิร์ดเพรส
คุณต้องสร้างฐานข้อมูลและเปลี่ยนรายละเอียดใน wp-config.php เว็บไซต์ WordPress ของคุณจะถูกเรียกที่ “mydomain.com” และแบ็กเอนด์ของ WordPress จะสามารถเข้าถึงได้โดย mydomain.com/wordpress/wp-admin
การเพิ่มปลั๊กอินและธีมจาก WordPress Repository
ตามค่าเริ่มต้น นักแต่งเพลงจะดูที่ที่เก็บ packagegist.org เท่านั้น แต่ไม่มีปลั๊กอินและธีมของ WordPress

ในการดึงปลั๊กอินและธีมของ WordPress คุณต้องชี้ Composer ไปที่ที่เก็บ wpackagist.org คุณทำได้โดยเพิ่มส่วนกำหนดค่านี้ลงในไฟล์ Composer.json ของคุณ:
"ที่เก็บ": [ { "ประเภท": "ผู้แต่ง", "url": "https://wpackagist.org", "เท่านั้น": [ "wpackagist-plugin/*", "wpackagist-theme/*" ] } ]
เราต้องบอกนักแต่งเพลงด้วยว่าจะวางปลั๊กอินและธีมไว้ที่ใด สิ่งนี้เกี่ยวข้องกับการเพิ่มการกำหนดค่าอีกเล็กน้อยใน Composer.json:
"พิเศษ": { "เส้นทางตัวติดตั้ง": { "wp-content/mu-plugins/{$name}/": [ "ประเภท: wordpress-muplugin" ] "wp-content/plugins/{$name}/": [ "ประเภท: ปลั๊กอิน wordpress" ] "wp-content/themes/{$name}/": [ "ประเภท:เวิร์ดเพรส-ธีม" ] } }
ด้วยวิธีนี้ ตอนนี้คุณสามารถติดตั้งปลั๊กอินหรือธีมใดก็ได้จากที่เก็บข้อมูลอย่างเป็นทางการโดยใช้คำสั่งผู้แต่งต้องการเช่นเดียวกับที่เราทำในการติดตั้ง WordPress
# หากต้องการติดตั้งปลั๊กอิน ให้ใช้รูปแบบนี้:
ผู้แต่งต้องการ "wpackagist-plugin/:"
# หากต้องการติดตั้งธีม ให้ใช้รูปแบบนี้:
ผู้แต่งต้องการ "wpackagist-theme/:"
ข้อจำกัดของเวอร์ชันมีความซับซ้อน แต่รูปแบบที่ง่ายที่สุดในการจดจำคือการใช้สัญลักษณ์แทน * หากต้องการติดตั้งปลั๊กอิน WP Migrate เวอร์ชันฟรีโดยใช้เวอร์ชัน 2.x คุณต้องเรียกใช้:
composer require "wpackagist-plugin/wp-migrate-db:2.*"
หากคุณต้องการให้อัปเดตเป็นเวอร์ชันล่าสุดอยู่เสมอ คุณสามารถใช้ * เป็นข้อจำกัดเวอร์ชันได้:
composer require "wpackagist-plugin/wp-migrate-db:*"
ครั้งแรกที่คุณเรียกใช้คำสั่งเช่นนี้ ระบบอาจถามคุณว่าต้องการ "เชื่อถือ "ผู้แต่ง/ผู้ติดตั้ง" เพื่อรันโค้ดหรือไม่ สิ่งนี้ทำได้อย่างปลอดภัย แต่โปรดทราบว่าสิ่งนี้จะทำให้ Composer เรียกใช้โค้ดบนคอมพิวเตอร์ของคุณ
หากทุกอย่างเรียบร้อยดี คุณควรติดตั้งปลั๊กอิน (แต่ไม่ได้เปิดใช้งาน) ฉันขอแนะนำให้ทำการเปลี่ยนแปลง Git ณ จุดนี้
การเพิ่มปลั๊กอินและธีมที่กำหนดเองหรือของบุคคลที่สาม
ทั้งหมดนี้ใช้ได้ถ้าคุณต้องการปลั๊กอินและธีมจากพื้นที่เก็บข้อมูล แต่ถ้าคุณต้องการเพิ่มปลั๊กอินของบุคคลที่สามที่ไม่ได้อยู่ในที่เก็บ wordpress.org หรือโค้ดที่คุณกำหนดเองล่ะ ไดเร็กทอรี WordPress ไม่ได้อยู่ใน Git แล้วคุณจะควบคุมเวอร์ชันของคุณเองได้อย่างไร
ผู้เขียนธีมและปลั๊กอินบางคนสนับสนุนที่เก็บแบบกำหนดเองสำหรับปลั๊กอินของตน
และบางธีมและปลั๊กอินไม่ได้รับอนุญาตให้ใช้พื้นที่เก็บข้อมูลใดๆ สำหรับปลั๊กอิน เช่น ปลั๊กอินแบบชำระเงิน
แต่ถ้าใช้ไม่ได้ เคล็ดลับในที่นี้คือการเลือกเลิกละเว้นไดเร็กทอรีเฉพาะเจาะจงโดยใช้ไฟล์ .gitignore และเพิ่มปลั๊กอินและธีมที่กำหนดเองเหล่านั้นใน Composer.json
นอกจากนี้ เรายังสามารถใส่ปลั๊กอินเหล่านั้นในไดเร็กทอรีอื่นเพื่อติดตั้งจากผู้แต่ง json
เนื่องจากเราเพิกเฉยต่อโฟลเดอร์ปลั๊กอินใน .gitignore เราจำเป็นต้องสร้างโฟลเดอร์อื่นชื่อ dist
ใน dist เราสามารถมีปลั๊กอินแบบชำระเงินและกำหนดเองได้ และเราสามารถติดตั้งได้จาก Composer
- ดิสท์/
- ปลั๊กอิน/
- ธีม/
- mu-ปลั๊กอิน/
เราจำเป็นต้องคัดลอกปลั๊กอินและธีมที่กำหนดเองของเราลงในโฟลเดอร์ที่เหมาะสม
และเราต้องสร้าง Composer.json สำหรับแต่ละปลั๊กอินที่เพิ่มใน dist/plugins
ปัจจุบัน เรามี Advanced-custom-fields-pro ซึ่งชำระเงินแล้ว เรายังต้องการเพิ่มปลั๊กอินนั้นผ่านตัวเขียนสำหรับการติดตั้งด้วยคลิกเดียวและปรับใช้โดยอัตโนมัติ
เราต้องดาวน์โหลดปลั๊กอินนั้นจากพอร์ทัลเว็บไซต์ผู้เขียนและแตกปลั๊กอินนั้นในโฟลเดอร์ dist/plugins/advanced-custom-fields-pro และสร้างไฟล์ Composer.json ในโฟลเดอร์เดียวกัน โดยมีเนื้อหาดังนี้
{ "ชื่อ": "ปลั๊กอินแบบกำหนดเอง/acf-pro", "description": "ฟิลด์กำหนดเองขั้นสูง PRO", "เวอร์ชัน": "5.12.2", "ประเภท": "ปลั๊กอิน wordpress", "จำเป็นต้อง": { "ผู้แต่ง/ผู้ติดตั้ง": "^1.0", "johnpbloch/wordpress-core": ">=5.4" } }
เราสามารถเพิ่มเวอร์ชันและชื่อด้วยคำนำหน้าที่กำหนดเองได้ที่นี่ และเพิ่มโค้ดบางส่วนในไฟล์ root Composer.json เพื่อเรียกใช้ปลั๊กอินนี้ในขณะที่เราติดตั้ง
ในส่วน "ที่เก็บ": เพิ่มรหัสต่อไปนี้ในส่วนสุดท้าย
"ที่เก็บ": [ { "ประเภท": "เส้นทาง", "url": "dist/plugins/*", "ตัวเลือก": { "symlink": เท็จ }
คุณมีรายการอื่นเช่นกันในส่วนที่เก็บ ในการติดตั้งปลั๊กอินนี้ เรามีสองวิธี วิธีแรกเพิ่มชื่อปลั๊กอินพร้อมเวอร์ชันใน
"จำเป็นต้อง": { "ปลั๊กอินแบบกำหนดเอง/acf-pro": ">=5.12.2" }
หรือรันคำสั่งต่อไปนี้ มันจะติดตั้งปลั๊กอินและเพิ่มรายการด้านบนใน Composer.json
นักแต่งเพลง $ ต้องการปลั๊กอินที่กำหนดเอง / acf-pro
ในทำนองเดียวกัน เราสามารถติดตั้งธีมและปลั๊กอิน mu ได้
สำหรับธีม เราจำเป็นต้องเพิ่มตำแหน่งโฟลเดอร์ธีม
"ที่เก็บ": [ { "ประเภท": "เส้นทาง", "url": "dist/themes/*", "ตัวเลือก": { "symlink": เท็จ }
คุณต้องเพิ่มผู้แต่ง json ในธีมที่กำหนดเองพร้อมรายละเอียดชื่อและเวอร์ชัน ใช้ชื่อนั้น เราสามารถติดตั้งธีมโดยใช้คำสั่งผู้แต่งต้องการ
สรุปแล้ว
การใช้ Composer เป็นวิธีการที่มีประสิทธิภาพที่สุดในการรับรองว่า WordPress ของคุณยังคงปลอดภัย ทันสมัย และทำซ้ำได้ นักแต่งเพลงช่วยให้นักพัฒนาสามารถเพิ่มและอัปเดตการพึ่งพาในโครงการของพวกเขาได้อย่างง่ายดายและล็อคเวอร์ชันที่แน่นอนเพื่อให้แน่ใจว่าแต่ละสาขาใหม่ทำงานกับรหัสเดียวกัน
ด้วยข้อได้เปรียบเหล่านี้ Composer จึงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับการจัดการโปรเจกต์ WordPress ทำให้มั่นใจได้ว่าสามารถสร้างซ้ำได้และอัปเดตที่คอมมิตได้
เราเข้าใจดีว่าการเริ่มต้นใช้งานนักแต่งเพลงอาจเป็นเรื่องที่หนักใจเล็กน้อย หากคุณมีคำถามใดๆ โปรดอย่าลังเลที่จะติดต่อเรา เราอยู่ที่นี่เพื่อช่วยให้คุณได้รับประโยชน์สูงสุดจากประสบการณ์ WordPress ของคุณ
อ้างอิง:
- https://docs.platform.sh/guides/wordpress/composer.html
- https://deliciousbrains.com/storing-wordpress-in-git/
- https://time2hack.com/composer-wordpress-deployment/