Cum se instalează WordPress folosind Composer: Ghid de instalare pas cu pas
Publicat: 2023-02-28Introducere: De ce WordPress baza pe Composer?
La fel ca orice altă aplicație, site-ul dvs. WordPress este cel mai sigur atunci când puteți asigura versiuni repetabile și actualizări care pot fi angajate pentru codul dvs. și dependențele sale. Infrastructura dvs. este angajată printr-un set de fișiere de configurare care specifică ce versiune de PHP și MariaDB doriți să utilizați. Acesta este cel mai bun mod de a vă asigura că proiectul dumneavoastră rămâne reproductibil atunci când dezvoltați noi funcții.
Nucleul WordPress, plus temele și pluginurile sale, ar trebui să funcționeze în mod ideal în același mod, dar adesea nu este cazul. Panoul de administrare WordPress oferă butoane cu un singur clic pentru a actualiza toate aceste componente atunci când acestea sunt învechite sau, altfel, se așteaptă să acceseze în scriere sistemul de fișiere pentru a face modificări de configurare în timpul execuției. Cu toate acestea, dezvoltarea acestui mod are consecințele sale.
În primul rând, nu veți avea întotdeauna acces de scriere la sistemul de fișiere în timpul execuției. Deci, în funcție de acest mecanism pentru actualizări și modificări de configurare, este total limitat pentru multe soluții de găzduire. Pe de altă parte, dacă aveți acces de scriere în timpul execuției în care găzduiți în prezent, instalarea unui modul sau a unei teme noi prezintă un risc de securitate non-trivial (când sursa este necunoscută).
Dar, poate cel mai important, actualizarea WordPress în timpul rulării decuplează starea site-ului dvs. de codul din depozitul dvs. Un coleg care lucrează la o nouă caracteristică pentru clona locală a proiectului ar putea foarte bine să fie o versiune completă în spatele site-ului live. Ca rezultat al acestui flux de lucru, puteți introduce erori cu consecințe necunoscute (și netestate).
Avantajele utilizării Composer
Având în vedere faptele de mai sus, gestionarea site-ului dvs. WordPress cu Composer are avantaje clare. În primul rând, vă permite să vă definiți în mod explicit dependențele într-un fișier confirmat (composer.lock). Acest fișier de blocare este generat dintr-o listă mai descriptivă de constrângeri de dependență (composer.json) atunci când dependențele dvs. sunt instalate și devine o parte a istoricului de comitere al proiectului. De atunci, orice ramură nouă va funcționa de la colecția identică de dependențe până la hashul de comitere exact. În acel moment, nu contează cine contribuie la proiect sau chiar unde este implementat - este același cod pentru toată lumea de pretutindeni.
Composer elimină, de asemenea, necesitatea de a trimite o mulțime de cod extern în depozitul dvs. În cazul WordPress, neutilizarea Composer-ului necesită, de obicei, să desemnați tot codul pentru o temă, și chiar pentru nucleul WordPress și pluginurile în sine, în propriul dvs. proiect. Pe lângă faptul că depozitul este inutil de mare și lent de clonat, actualizarea acestor copii devine un act de jonglerie cu care nimeni nu trebuie să se ocupe.
Cu Composer, puteți adăuga și actualiza dependențe la proiectul dvs. și apoi blocați versiunile exacte ale acestora, astfel încât fiecare ramură nouă să primească aceeași actualizare. Dacă actualizarea ar fi fost efectuată pe site-ul implementat în timpul execuției, ar trebui să vă amintiți să faceți mai întâi git pull.
Instalarea nucleului WordPress cu Composer
În același mod, folosirea Composer face inutilă trimiterea întregului WordPress în depozitul dvs., deoarece îl puteți adăuga ca dependență. Există mai multe moduri de a face acest lucru (cum ar fi Bedrock), în funcție de câte ipoteze doriți să faceți pentru configurația și structura proiectului. Cel mai simplu folosește furculița John Bloch Composer pentru a adăuga un program de instalare la versiunile tale pentru WordPress:
$ composer necesită johnpbloch/wordpress-core-installer $ compozitor necesită johnpbloch/wordpress-core
Comanda de mai sus va crea un fișier composer.json și va instala nucleul WordPress în directorul WordPress. Composer.json va arăta astfel
{ „necesită”: { "johnpbloch/wordpress-core-installer": "^2.0", "johnpbloch/wordpress-core": "^6.1" }, "config": { „allow-plugins”: { „johnpbloch/wordpress-core-installer”: adevărat } } }
Avem nucleul WordPress în folderul WordPress. Dar trebuie să copiem index.php în afara directorului WordPress, astfel încât să putem îndrepta serverul web către directorul rădăcină.
Pentru a gestiona complet WordPress cu Composer , trebuie să folosim un director diferit pentru wp-content în loc de cel implicit, WordPress/wp-content.
Să creăm un nou director în rădăcina proiectului numit wp-content.
Odată copiați index.php din folderul WordPress. Trebuie să schimbăm locația fișierului wp-blog-header.php în care se află directorul nostru WordPress.
După modificare, index.php va arăta astfel
<?php define('WP_USE_THEMES', true); require( dirname( __FILE__ ). '/wordpress/wp-blog-header.php' );
Trebuie să creăm un fișier .htaccess în directorul rădăcină cu următorul conținut:
# ÎNCEPE WordPress <IfModule mod_rewrite.c> RewriteEngine Pornit RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # Terminați WordPress
Să mergem mai departe și să copiem exemplul de fișier wp-config.php și apoi să adăugăm următorul cod:
$domain = 'domeniul meu.com; define('WP_SITEURL', "https://{$domain}/wordpress"); define('WP_HOME',"https://{$domain}"); $httpHost = isset($_SERVER['HTTPS_HOST']) ? $_SERVER['HTTPS_HOST'] : $domeniu; define( 'WP_CONTENT_DIR', dirname( __FILE__ ). '/wp-content' ); define( 'WP_CONTENT_URL', 'https://' . $httpHost . '/wp-content' ); /** Cale absolută către directorul WordPress. */ dacă ( !defined('ABSPATH') ) { define('ABSPATH', dirname(__FILE__) . '/wordpress'); }
Am adăugat WordPress în ABSPATH, deoarece nucleul WordPress este în /WordPress
Deoarece fișierul wp-config.php conține date sensibile; nu îl vom trimite în depozitul nostru prin crearea unui fișier .gitignore:
/wp-config.php /wordpress/ /wp-content/ /furnizor/
De asemenea, directoarele WordPress, wp-content și furnizori trebuie ignorate, astfel încât le vom adăuga și la fișierul .gitignore.
Notă: Trebuie să schimbați directorul wp-content în cazul în care doriți să adăugați o convenție de denumire diferită pentru wp-content.
Directorul nostru rădăcină al proiectului ar trebui să arate astfel
.git .gitignore compozitor.blocare compozitor.json vânzător wp-config.php index.php wordpress
Trebuie să creați o bază de date și să modificați detaliile în wp-config.php. Site-ul dvs. WordPress va fi numit la „mydomain.com”, iar backend-ul WordPress va fi accesibil prin mydomain.com/wordpress/wp-admin

Adăugarea de pluginuri și teme din depozitul WordPress
În mod implicit, Composer se va uita numai la depozitul packagist.org. Dar nu conține pluginuri și teme WordPress.
Pentru a putea atrage pluginuri și teme WordPress, trebuie să îndreptați Composer către depozitul wpackagist.org. Faceți acest lucru adăugând această porțiune de configurare în fișierul dvs. composer.json:
„depozite”: [ { "type": "compozitor", "url": "https://wpackagist.org", „doar”: [ "wpackagist-plugin/*", „wpackagist-theme/*” ] } ],
De asemenea, trebuie să îi spunem Composerului unde să pună pluginuri și teme. Aceasta implică adăugarea unui pic mai mult de configurare în composer.json:
„extra”: { „căile de instalare”: { „wp-content/mu-plugins/{$name}/”: [ „type:wordpress-muplugin” ], „wp-content/plugins/{$name}/”: [ „type:wordpress-plugin” ], „wp-content/themes/{$name}/”: [ „type:wordpress-theme” ] } }
Cu acest lucru, acum puteți instala orice plugin sau temă din depozitele oficiale folosind comanda compozitor require, așa cum am făcut pentru instalarea WordPress.
# Pentru a instala un plugin, utilizați acest format:
compozitorul necesită „wpackagist-plugin/:”
# Pentru a instala o temă, utilizați acest format:
compozitorul necesită „wpackagist-theme/:”
Constrângerile versiunii sunt complicate, dar probabil cea mai simplă formă de reținut este utilizarea unui wildcard *. Pentru a instala versiunea gratuită a pluginului nostru WP Migrate, folosind versiunea 2.x, ar trebui să rulați:
composer require "wpackagist-plugin/wp-migrate-db:2.*"
Dacă ați dorit întotdeauna ca actualizările dvs. să vă aducă cea mai recentă versiune, puteți utiliza un * ca constrângere de versiune:
composer require "wpackagist-plugin/wp-migrate-db:*"
Prima dată când rulați o comandă ca aceasta, este posibil să fiți întrebat dacă doriți să aveți încredere în „compozitor/instalatori” pentru a executa codul.” Acest lucru este sigur de făcut, dar rețineți că acest lucru permite Composer să ruleze cod pe computer.
Dacă totul este bine, ar trebui să instalați pluginul (dar nu activat). De asemenea, aș recomanda să efectuați modificările dvs. în Git în acest moment.
Adăugarea de pluginuri și teme personalizate sau terță parte
Acest lucru este în regulă dacă doriți pluginuri și teme din depozit. Dar ce se întâmplă dacă doriți să adăugați pluginuri terță parte care nu sunt în depozitul wordpress.org sau propriul cod personalizat? Directorul WordPress nu este în Git, deci cum vă controlați versiunea propriile lucruri?
Unii autori de teme și pluginuri acceptă depozite personalizate pentru pluginurile lor.
Și unele teme și pluginuri nu au voie să folosească niciun depozit pentru pluginurile lor, de exemplu, pluginurile plătite.
Dar dacă acest lucru nu se aplică, atunci trucul aici este să anulați în mod selectiv anumite directoare folosind fișierul .gitignore și să adăugați acele pluginuri și teme personalizate în composer.json.
De asemenea, putem pune acele pluginuri într-un alt director pentru a le instala din composer.json.
Deoarece ignorăm folderul de pluginuri din .gitignore, trebuie să creăm un alt folder numit dist,
În dist, putem avea pluginuri plătite și personalizate și le putem instala din Composer.
- dist/
- pluginuri/
- teme/
- mu-plugins/
Trebuie să copiem pluginurile și temele noastre personalizate în folderul corespunzător.
Și trebuie să creăm composer.json pentru fiecare plugin adăugat în dist/plugin-uri.
În prezent, avem advanced-custom-fields-pro, care este plătit. De asemenea, vrem să adăugăm acel plugin prin compozitor pentru instalarea cu un singur clic și implementările automate.
Trebuie să descărcam acel plugin de pe portalul site-ului web al autorului și să extragem acel plugin în folderul dist/plugins/advanced-custom-fields-pro. Și creați composer.json în același folder cu următorul conținut,
{ "name": "custom-plugins/acf-pro", "description": "Câmpuri personalizate avansate PRO", "versiunea": "5.12.2", "type": "wordpress-plugin", „necesită”: { "compozitor/instalatori": "^1.0", "johnpbloch/wordpress-core": ">=5.4" } }
Putem adăuga versiunea și numele cu prefixe personalizate aici. Și adăugați niște cod în fișierul rădăcină composer.json pentru a apela acest plugin în timp ce instalăm.
În secțiunea „depozite”: adăugați următorul cod în ultima,
„depozite”: [ { "type": "cale", "url": "dist/plugins/*", "Opțiuni": { „legatură simbolică”: fals }
Aveți și alte intrări în secțiunea de depozite. Pentru a instala acest plugin, avem două moduri, mai întâi de a adăuga numele pluginului cu versiunea în
„necesită”: { „custom-plugins/acf-pro”: „>=5.12.2” }
Sau rulați următoarea comandă, va instala pluginul și va adăuga intrarea de mai sus în composer.json.
$ composer necesită pluginuri personalizate/acf-pro
În același mod, putem instala teme și pluginuri mu.
Pentru temă, trebuie să adăugăm locația folderului cu tema,
„depozite”: [ { "type": "cale", "url": "dist/themes/*", "Opțiuni": { „legatură simbolică”: fals }
Trebuie să adăugați composer.json în tema personalizată cu detalii despre nume și versiune. Folosind acest nume, putem instala tema utilizând comanda compozitor require.
În concluzie
Utilizarea Composer este cea mai eficientă abordare pentru a vă asigura că WordPress rămâne sigur, actualizat și reproductibil. Composer permite dezvoltatorilor să adauge și să actualizeze cu ușurință dependențe în proiectele lor și să-și blocheze versiunile exacte pentru a se asigura că fiecare nouă ramură funcționează cu același cod.
Cu aceste avantaje, Composer este o alegere excelentă pentru gestionarea proiectelor WordPress, asigurând versiuni repetabile și actualizări care pot fi angajate.
Înțelegem că începerea cu Composer poate fi puțin copleșitoare. Dacă aveți întrebări, nu ezitați să ne contactați. Suntem aici pentru a vă ajuta să profitați la maximum de experiența dvs. WordPress.
Referinte:
- https://docs.platform.sh/guides/wordpress/composer.html
- https://deliciousbrains.com/storing-wordpress-in-git/
- https://time2hack.com/composer-wordpress-deployment/