วิธีการติดตั้ง 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/