Το άρθρο αυτό καλύπτει τις βασικές ροές εργασίας Composer για τη διαχείριση Drupal ιστότοπου: εγκατάσταση modules και themes, ενημέρωση πακέτων, αφαίρεση πακέτων και κατανόηση των αρχείων composer.json και composer.lock. Όλες οι εντολές εκτελούνται μέσω SSH — η HOSTDOG παρέχει πρόσβαση SSH και Composer 2 σε όλα τα πακέτα φιλοξενίας. [VERIFY: Επιβεβαίωση διαθεσιμότητας Composer 2 σε πακέτα κοινόχρηστης φιλοξενίας]
Τι κάνει ο Composer στο Drupal
Ο Composer είναι ένας διαχειριστής εξαρτήσεων PHP. Στο πλαίσιο του Drupal, παρακολουθεί ακριβώς ποιες εκδόσεις Drupal core, contributed modules, themes και βιβλιοθηκών τρίτων χρησιμοποιεί ο ιστότοπός σας. Τα δύο βασικά αρχεία είναι:
composer.json— δηλώνει τις απαιτήσεις του project σας (τι χρειάζεστε και ποιες εκδόσεις είναι αποδεκτές)composer.lock— καταγράφει τις ακριβείς εκδόσεις που είναι εγκατεστημένες αυτή τη στιγμή (εξασφαλίζει ότι κάθε developer και server εκτελεί πανομοιότυπο κώδικα)
Μη διαγράφετε ποτέ ή επεξεργάζεστε χειροκίνητα το composer.lock. Να κάνετε πάντα commit και τα δύο αρχεία στο version control.
Σύνδεση μέσω SSH
Όλες οι εντολές Composer πρέπει να εκτελούνται από τον server μέσω SSH — όχι από τον τοπικό υπολογιστή σας ή μέσω FTP. Συνδεθείτε στο hosting σας στη HOSTDOG μέσω SSH και μεταβείτε στον ριζικό κατάλογο του Drupal project σας (τον κατάλογο που περιέχει το composer.json):
cd ~/public_html
Αν δεν είστε σίγουροι πώς να συνδεθείτε μέσω SSH, δείτε πώς να συνδεθείτε μέσω SSH.
composer --version
Εγκατάσταση module ή theme
Για εγκατάσταση contributed module από το drupal.org, χρησιμοποιήστε composer require ακολουθούμενο από το όνομα πακέτου στη μορφή drupal/module_name:
# Εγκατάσταση module
composer require drupal/token
# Εγκατάσταση συγκεκριμένης έκδοσης
composer require drupal/token:^1.13
# Εγκατάσταση theme
composer require drupal/bootstrap5
Ο Composer κατεβάζει τα αρχεία του module στον κατάλογο web/modules/contrib/ και ενημερώνει και τα αρχεία composer.json και composer.lock.
Μετά την εγκατάσταση, ενεργοποιήστε το module στο Drupal:
drush en token -y
drush cr
composer require κατεβάζει τον κώδικα αλλά δεν ενεργοποιεί το module στο Drupal. Πρέπει να το ενεργοποιήσετε μέσω Drush ή μέσω της διεπαφής διαχειριστή Drupal στο Extend (Administration → Extend).
Ενημέρωση πακέτων
Για ενημέρωση όλων των Drupal πακέτων στις τελευταίες εκδόσεις που επιτρέπονται από τους περιορισμούς έκδοσης:
composer update drupal/* --with-all-dependencies
Για ενημέρωση συγκεκριμένα του Drupal core:
composer update drupal/core-recommended drupal/core-composer-scaffold --with-all-dependencies
Για ενημέρωση ενός μόνο module:
composer update drupal/token --with-all-dependencies
Μετά από κάθε ενημέρωση, να εκτελείτε πάντα ενημερώσεις βάσης και να εκκαθαρίζετε το cache:
drush updb -y
drush cr
Για πλήρη οδηγό ενημέρωσης Drupal, δείτε πώς να ενημερώσετε το Drupal core και τα modules.
Αφαίρεση module
Πριν αφαιρέσετε ένα module από τον Composer, πρέπει πρώτα να το απεγκαταστήσετε στο Drupal για να αποφύγετε ασυνέπειες στη βάση δεδομένων:
# Πρώτα απεγκαταστήστε το module στο Drupal
drush pmu token -y
drush cr
# Στη συνέχεια αφαιρέστε το από τον Composer
composer remove drupal/token
Χρήσιμες εντολές Composer
| Εντολή | Τι κάνει |
|---|---|
composer require drupal/module_name |
Κατεβάζει και προσθέτει module/theme στο project σας |
composer update drupal/* |
Ενημερώνει όλα τα Drupal πακέτα εντός των περιορισμών έκδοσης |
composer remove drupal/module_name |
Αφαιρεί module από το project (απεγκαταστήστε πρώτα στο Drupal) |
composer install |
Εγκαθιστά όλα τα πακέτα από το composer.lock (για νέο server ή fresh clone) |
composer outdated --direct |
Εμφανίζει πακέτα με διαθέσιμες ενημερώσεις |
composer show --installed |
Εμφανίζει όλα τα εγκατεστημένα πακέτα και τις εκδόσεις τους |
composer validate |
Ελέγχει ότι το composer.json είναι έγκυρο |
composer --version |
Εμφανίζει την εγκατεστημένη έκδοση Composer |
Αντιμετώπιση προβλημάτων
Αυξήστε το όριο μνήμης PHP για τη διαδικασία Composer προσθέτοντας COMPOSER_MEMORY_LIMIT=-1 πριν από την εντολή: COMPOSER_MEMORY_LIMIT=-1 composer update drupal/*. Αυτό αφαιρεί το όριο μνήμης για αυτή την εκτέλεση. Στο hosting της HOSTDOG, αν συνεχίζετε να αντιμετωπίζετε προβλήματα μνήμης, υποβάλετε αίτημα υποστήριξης — η ομάδα μας μπορεί να συμβουλεύσει για την καλύτερη προσέγγιση για το πακέτο σας.
Βεβαιωθείτε ότι εκτελείτε τον Composer ως χρήστης hosting σας μέσω SSH, όχι ως root. Μη χρησιμοποιείτε sudo composer σε κοινόχρηστο hosting — αυτό μπορεί να δημιουργήσει αρχεία ιδιόκτητα από root που ο web server δεν μπορεί να διαβάσει ή να γράψει.
Επαληθεύστε το όνομα πακέτου στο drupal.org — το όνομα πακέτου Composer (π.χ. drupal/token) μπορεί να διαφέρει από το εμφανιζόμενο όνομα module. Επίσης εκτελέστε composer clear-cache για εκκαθάριση τυχόν παλαιών μεταδεδομένων πακέτων πριν δοκιμάσετε ξανά.