Το άρθρο αυτό καλύπτει τις βασικές ροές εργασίας 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 είναι διαθέσιμος και ελέγξτε την έκδοση με: 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

Αντιμετώπιση προβλημάτων

Ο 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 για εκκαθάριση τυχόν παλαιών μεταδεδομένων πακέτων πριν δοκιμάσετε ξανά.

Χρειάζεστε βοήθεια; Αν αντιμετωπίζετε προβλήματα με τον Composer στο hosting σας στη HOSTDOG, η ομάδα μας είναι διαθέσιμη 24/7. Πλοηγηθείτε στην αρχική σελίδα της HOSTDOG και πατήστε Log in για να υποβάλετε αίτημα υποστήριξης και θα σας εξυπηρετήσουμε άμεσα.