Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[gelöst]Composer Grundsatzfrage

Eingetragen von die_Josi (75)
am 19.12.2022 - 19:07 Uhr in
  • Anfängerfragen
  • Drupal 9.x

Hallo zusammen.

Ich hab einen Knoten im Kopf. Ich nutze Drupal 9 und habe es ohne Composer installiert (bei DomainFactory). Ganz klassisch via FTP hochgeladen, Datenbank eingegeben und installiert. Nun möchte ich ein Modul aktivieren (Smart Date Recurring) und mein Drupal sagt mir ich benötige Composer. Davor habe ich mich ja extra gedrückt, weil ich das mit Composer nicht verstehe. Was kann ich jetzt machen?
Wenn ich das Modul ohne Composer nicht aktiviert bekomme, wie komme ich nun zu dem Composer? Wie kann ich das Composer nutzen ohne mein Drupal komplett neu installieren zu müssen? Kann ich Composer zu meiner laufenden Installation hinzufügen und nutzen? Aber wie mache ich das? Ich bräuchte eine Schritt für Schritt anleitung :(
Ich kann mir vorstellen wie ihr jetzt mit den Augen rollt...aber ich habe keine Ahnung, weiß nicht mal wo ich ansetzen muss.

Danke.

‹ Theme Classy sei installiert, ist aber nicht bei Themes [gelöst]Composer Grundsatzfrage ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Drupal 9 mit Composer neu aufsetzen und danach umziehen

Eingetragen von schmittrich (137)
am 19.12.2022 - 19:59 Uhr

Hallo,
wenn ich vor der Aufgabe stünde, würde ich per Composer eine neue Drupal Instanz aufsetzen. Das Ganze natürlich in einem separaten Verzeichnis. Die benötigten Zusatzmodule (Contribmodule) per composer require drupal/module_machine_name hineinholen. Dann noch die Custom themes und Custom modules sowie die Dateien aus dem sites/default - Ordner rüberkopieren und fertig. Abschließend nicht vergessen die Domain in das neue Verzeichnis auflösen zu lassen.
Viele Grüße
Christian

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Beitrag von Christian

Eingetragen von dinmikkith (1310)
am 20.12.2022 - 03:46 Uhr

Der Beitrag von Christian geht schon ganz gut in die richtige Richtung. Es gibt überhaupt keinen Grund dafür sich vor Composer zu drücken. Du kannst jede Seite, die nicht mit Composer funktioniert nachrüsten.

Composer ist wie eine Haushaltshilfe, die du ohne Gewissensbisse einkaufen schickst, damit sie dir die Zutaten für eine Torte kauft. Die Einkaufsliste ist die Composer.json, die du mit dem require Befehl oben füllen kannst. Was deine Haushaltshilfe Composer macht wenn du Composer require drupal/xxx eingibst ist, dass er nicht direkt die Sahne kaufen geht, sondern alles was du brauchst um die Sahne herzustellen. Das Macht Composer mit jeder Zutat so also mit jedem Modul jedem Theme usw. Die fertige Sahne ist ein Bestandteil deiner Torte und die Abhängigkeiten, die Zutaten deiner Sahne. Im Grunde muss sich also niemand vor Composer fürchten, der Backen oder Kochen kann.

Um deine Drupal installation mit Composer nachzubauen musst du also nur eine Liste der Module und Themes haben, die in deiner Installation von Drupal Installation sind. Das ist quasi dein Rezept. Dann packst du das ganze auf nen Einkaufszettel.

Fang mit dem Tortenboden an:

composer create-project drupal/recommended-project meindrupalverzeichnis

Und dann packst du die Zutaten einzeln mit Composer require drupal/modulname oder composer/themename oben drauf.

Wenn du fertig bist hängst du die Datenbank wieder an deine Torte und serviert das ganze.

So einfach geht Composer.

Selbst die Fehlermeldungen, die Composer ausgibt sind im Prinzip nur Meldungen wie: sie haben für ihre Torte Pfeffer statt Zucker verwendet, ihre Torte kann nicht schmecken. Davor muss man sich nicht drücken. Das ist Backen für Anfänger nur eben mit Drupal.

Sobald du die Codebasis deiner Seite mit Composer neu gebaut hast, die Datenbank wieder hingehängt hast und die Seite funktioniert hast du nicht nur die Möglichkeit smatdate hinzuzufügen, sondern alles was du sonst so brauchen kannst.

Das ganze steht (ohne das gelaber über backen von Torten und Kuchen) hier: https://www.drupal.org/docs/develop/using-composer/using-composer-with-d...

Hier rollt keiner mit den Augen. Wir sind schließlich hier, um den Leuten Drupal näher zu bringen. Sag bescheid, wenns nicht klappt, dann sehen wir weiter.

https://drupal-tv.de
Drupal sehen und lernen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Noch was Wichtiges dazu

Eingetragen von Martin Gr. (127)
am 23.12.2022 - 19:46 Uhr

Hallo Josi,
ich bin vor ca. einem Jahr vor dem gleichen Problem gestanden und hab zunächst die composer Hürde "verweigert". Ich bin ja kein EDV Ausgebildeter. Mittlerweile beherrsche ich es halbwegs. Was die Vorredner noch nicht erwähnt haben:

  1. Den composer mußt du zunächst in deinem webspace installieren und dazu brauchst du:
  2. Basiskenntnisse in der Arbeit auf der console - das ist aber keine Hexerei.
  3. Zur console gelangst du über einen SSH Zugang, das ist sowas wie der FTP Zugang, meist mit den gleichen Logindaten (das Zugangsprogramm ist z.B putty oder kitty, wo du wie im ftp Programm den Serverpfad und deine Logindaten eingibst)
  4. erkennbar ist die Console daran, dass du meist einen schwarzen Hintergrund und nur Schriftzeugs siehst - siehe Foto - das ist sehr vereinfacht gesagt
  5. und zu composer dazu ist auch drush sehr hilfreich - auch so ein Werkzeug mit unendlich vielen Möglichkeiten, du brauchst davon vielleicht 5 Befehle.
  6. Typische drush Befehle sind: drush cr = räumt deinen cash auf, drush sec= sagt dir obs ein neues Sicherheitsupdate zu drupal gibt, drush updb=macht DB update; weitere Befehle kannst du googeln
  7. Composer-Befehle sind ebenso einfach

Ich hab es mir von einem Profi zeigen und installieren lassen und kann seitdem mit einer handvoll Befehle drush und composer problemlos verwenden. Um die Drupal Projekte ohne tieferes Verständnis in Minutenschnelle upzudaten, zweng der Sicherheit, die Module in- und deinstallieren und ebenso updaten, auszuprobieren. Das kostet sonst ewig viel Zeit. Wenn du selbst nicht so viel investieren willst gibts hier im Forum sicher wen, der es in eine bezahlten Stunde bei dir einbaut.

Der composer holt dir alle Zutaten (wie der Vorredner mit der Torte erklärt hat) herbei und was das Beste ist, er prüft auch ob alles zusammenpasst und im Zweifel wird es nicht installiert oder verändert. Da bist du auf der sicheren Seite.

So wie ich Drupal bisher verstanden habe ist es ein wachsendes lebendiges Teil, eine Neuerung jagt die nächste - da bist du mit composer klar im Vorteil. Ich schau da einmal im Monat drüber und drupal zeigt ja an, wenn was Neues erforderlich wird.
Es lohnt sich - gutes Gelingen, Martin

AnhangGröße
console.JPG 21.33 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen lieben Dank an euch...

Eingetragen von die_Josi (75)
am 21.02.2023 - 18:00 Uhr

dafür das ihr euch Zeit für mich genommen habt. Ich es tatsächlich geschafft und via Putty das Composer auf den Webserver installiert bekommen.

Nun wollte ich mein bestimmtes Modul "Smart Date" installieren bzw updaten mit dem Befehl composer require 'drupal/smart_date:^4.0@alpha'
und dann gab es diese Meldung:

./composer.json has been updated
Running composer update drupal/smart_date
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

Problem 1
- Root composer.json requires drupal/smart_date ^4.0@alpha -> satisfiable by drupal/smart_date[4.0.0-alpha1].
- drupal/smart_date 4.0.0-alpha1 requires php >=8.0 -> your php version (7.4.33) does not satisfy that requirement.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da ist doch die Ursache des

Eingetragen von wla (9305)
am 21.02.2023 - 18:23 Uhr

Da ist doch die Ursache des Problems klar angegeben. Wenn Du die Version ^4.0@alpha verwenden willst benötigst Du php8!! Da solltest Du bei Deinem Provider die PHP-Version auf php8.1.x mit x>= 6 einstellen. Danach sollte sich das Modul installieren lassen. Offenbar ist bei der Codierung von dem Modul bereits die Syntax von php8 verwendet worden. Daher hat der Entwickler diese PHP-Version als Bedingung festgelegt und der composer sorgt dafür, daß die auch eingehalten wird.
Wenn Du hingegen bei der Version 3.7 bleibst, ist php8 noch keine Bedingung, wie Du auf Drupal.org feststellen kannst (als :^3.7 am Ende).

.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn du über die composer "Hürde" drüber bist

Eingetragen von Martin Gr. (127)
am 21.02.2023 - 20:26 Uhr

... verdient das einmal echt Respekt. So wie es sich in deinem ersten Post angehört hatte klang es sehr schwierig. Zu einer bestehenden D9 Installation den composer anzubauen ist herausfordernd. Und hat ja auch gedauert (ca. 2 Monate warens oder?)

Das Tolle am composer ist ja, dass du immer Rückmeldung bekommst, ob sich ein neues Modul mit allen seinen Abhängigkeiten und Wechselwirkungen "ausgeht" oder nicht. Es kann in dem Zusammenhang vorkommen, dass es Widersprüche mit einem anderen Modul gibt oder dass sich eine bestimmte Version deines gewünschten Moduls entweder mit dem Kern oder wie hier jetzt mit der PHP Version nicht verträgt. In jedem Fall sagt dir composer Bescheid verläßlich und er probierts oder er verweigert die Installation. Wie schon erwähnt ist PHP 8.x für D9 und D10 angesagt.

Wenn composer "verweigert" lies und google die Begründung dafür - das ist sehr hilfreich.

Meine Empfehlung: Besorg dir auch noch Drush, falls du es nicht bereits verwendest. Nach eine Installation gibts immer noch den Arbeitsspeicher zu leeren (drush cr), zu checken ob ein DB update nötig wäre (drush updbst oder drush updb), nachzusehen ob ein Sicherheitsupdate für D9 zu machen ist (drush sec). Das alles und noch viel mehr macht dir drush mit wenigen Handgriffen. Es geht ebenfalls über die shell. Das heißt in dein Verzeichnis wechseln mit cd /var/www/deinverzeichnis und dort dann werkeln.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für deine Antwort aber

Eingetragen von die_Josi (75)
am 22.02.2023 - 10:00 Uhr

ich hatte mich auch gewundert, denn ich benutze für diese Webseite PHP 8.2 (siehe Bild). Habe gerade genauer nachgegeschaut. Ich habe die Seiten bei DomainFactory gehostet und jede Domain (2 Stück) hat eine eigene Datenbank. Eine Seite läuft mit php 7.4 und meine neue mit php 8.2. Nun hatte ich ja einen SSH-Zugang angelegt, welcher jedoch laut DomainFactory grundsätzlich php 7.4 nutzt, also das php von der alten Seite. Ich hatte gedacht, stelle ich die alte seite um auf php 8 aber dann funktioniert sie nicht korrekt, also hab ichs wieder auf php 7.4 zurückgesetzt. Bei dem SSH-Zugang steht, wenn ich eine bestimmte PHP-Version für den SSH-Zugang nutzen möchte, muss ich das händisch in die .htaccess reinschreiben. Nun liegt ja im Drupalverzeichnis bereits eine .htaccess, eine zweite kann ich nicht reinlegen und die bestehende kann ich auch nicht verändern, denn dann ist die seite tot. Also Problem erkannt aber ich weiß grad nicht wie ich es lösen soll :(

AnhangGröße
Screenshot 2023-02-22 at 09-30-32 Statusbericht Intranet.png 94.81 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Manchmal bietet der Provider

Eingetragen von wla (9305)
am 22.02.2023 - 14:04 Uhr

Manchmal bietet der Provider die verschiedenen Versionen auf der Kommandozeile mittels eines Suffixes an (z.B. php8.2 o.ä.). Das sollte der Support Deines Providers Dir sagen können. Dann kann man mittels eines "Symbolischen Links" ein php mit der "richtigen" Version in einen Unterverzeichnis des eigenen Home-Ordners anlegen. Nimmt man dieses Verzeichnis vorne in die PATH-Variable auf, wir immer wenn man auf der Kommandozeile php aufruft der Link auf diese PHP-Version gefunden, was man leicht mit "which php" testen kann. Auf diese Weise kannst Du selbst festlegen, mit welcher PHP-Version Du aktuell auf der Kommandozeile arbeiten willst. Dieser "Trick" läuft bei mir aber noch unter Unix Grundwissen.

.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bin da auch nicht sicher

Eingetragen von Martin Gr. (127)
am 22.02.2023 - 14:26 Uhr

...aber läßt es sich mit dem Anlegen einer .bash Datei auch regeln? Mir hat das ein Fachmann so eingerichtet und ich versuche es nachzu vollziehen.

Es sieht dann wie folgt aus und "zwingt" den composer, eine bestimmte php Version zu verwenden.

userdir='/var/www/vhosts/meinwebhostingzugangspfad.at'

# Set PHP 8.0 as default PHP version on commandline interface.
alias php="php80"
alias ll="ls -hl"

# Composer
alias composer="php80 -d memory_limit=-1 $userdir/composer/composer"

# Drush
alias drush="php80 -d memory_limit=-1 $userdir/drush/vendor/bin/drush"

Wenn ich composer oder auch drush aufrufe, dann wird immer php 8.0 verwendet. Der Befehl "composer" reicht aus, ich muß nicht mehr den ganzen Pfad eingeben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bei composer funktioniert das

Eingetragen von wla (9305)
am 22.02.2023 - 15:42 Uhr

Bei composer funktioniert das mit dem Alias problemlos. Bei drush bin ich damit bereits auf die Nase gefallen. Seit Drupal 9 muß drush in der jeweiligen Installation vorhanden sein und eine globale Installation funktioniert nicht mehr für alle Befehle. Drush braucht intern auch den php-Befehl. Also kann der Alias für drush nicht immer so, wie von Dir angegeben, funktionieren. Das trifft besonders bei mehreren Installationen im gleichen Webspace zu (bei verschiedenen Domains oder Subdomains).
Wenn das bei Dir noch funktioniert, ok. Aber verallgemeinern kann man das nicht.

.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

habs geschafft :)

Eingetragen von die_Josi (75)
am 01.03.2023 - 16:42 Uhr

Ich habe mich an meinen Provider gewendet, er schrieb: ..."um eine abweichende PHP Version unter anderem für den Composer dauerhaft zu verwenden, muss vorab ein Softlink auf die gewünschte PHP Version gesetzt werden. Hier ein Beispiel für die PHP8.1:

cd ~; mkdir -p ~/.bin && cd .bin && ln -s /usr/bin/php81 php; cd ~/

Anschließend müssen Sie dann in Ihrer .bashrc folgende Zeile hinterlegen:

export PATH=$HOME/.bin:$PATH

Sollte keine .bashrc vorhanden sein, legen Sie diese einfach an. Bitte passen Sie den Befehl nur auf Ihre gewünschte PHP-Version an (php80, php82).

Jetzt geht mit shell und Compoder auch alles.

Mannoman was für eine Arbeit, dahinter zu steigen hinter diesem ganzen php-shell-composer zeugs. Ich danke euch vielmals, ihr habt mich mit euren Beiträgen Stück für Stück zum Ziel gebracht und vor allen Dingen den Knoten im Kopf gelöst. Hat sich auf jeden Fall gelohnt endlich mal in dieses Thema einzusteigen...sich davor drücken bringt auch zukünftig nichts.

Sonnige Grüße,
Josi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok, dann Ende gut alles gut

Eingetragen von Martin Gr. (127)
am 02.03.2023 - 12:02 Uhr

bis zum nächsten Mal, wenn es wieder um composer Fragen geht. Hier im Forum ist es üblich, dass eine erfolgreich beendete Anfrage mit einem vorangestellten [gelöst] gekennzeichnet werden, wenn du das im Titel deiner ersten Anfrage noch einfügen kannst. Danke und beste Grüße.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Tolles Forum, so viele

Eingetragen von Gisa000 (1)
am 14.03.2023 - 13:27 Uhr

Tolles Forum, so viele interessante Informationen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Serverseite in MAMP, Local, zum laufen bringen?
  • DSGVO-konforme Share Buttons - wie macht Ihr das?
  • Toolbar "Verwaltung" weg
  • Button der direkt eine Mail verschickt
  • Theme Classy sei installiert, ist aber nicht bei Themes
  • Paragraphs und Bootstrap Paragraphs Probleme mit Bootstrap 4
  • [gelöst]felder in view zusammenführen
  • Web Inspektor in safari
  • D6 Views Data Export Multi Images -> D7
  • CORS Einstellungen scheinen nicht zu greifen - Was muss ich ändern?
  • Fehlermeldung
  • [gelöst]Composer Grundsatzfrage
Weiter

Neue Kommentare

  • ach so. dann kann ich nicht
    vor 19 Stunden 12 Minuten
  • Hallo caw, also, ich hab die
    vor 19 Stunden 40 Minuten
  • evtl per css ausblenden...
    vor 22 Stunden 45 Minuten
  • Die admin Toolbar erscheint
    vor 1 Tag 43 Minuten
  • Das ist doch das
    vor 1 Tag 2 Stunden
  • Habe gerade probiert die
    vor 1 Tag 3 Stunden
  • danke aber das habe ich alles bereits probiert
    vor 1 Tag 3 Stunden
  • DA musst du entsprechend die
    vor 1 Tag 5 Stunden
  • Normale Share Buttons haben
    vor 1 Tag 5 Stunden
  • Danke für die Antwort
    vor 1 Tag 19 Stunden

Statistik

Beiträge im Forum: 248551
Registrierte User: 19783

Neue User:

  • Andreas0815
  • Btinrusable
  • juli_91

» Alle User anzeigen

User nach Punkten sortiert:
wla9305
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 5 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association