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

[gelöst]composer installieren - php version & Consorten

Eingetragen von Martin Gr. (253)
am 18.12.2024 - 20:55 Uhr in
  • Anfängerfragen
  • Drupal 9.x oder neuer

Wieder einmal die Frage nach dem Installieren des composer. Ich brauch Nachhilfe, obwohl schon ein paar mal geschafft. Bitt um support der unix-Fraktion hier. Meine Kernfrage lautet: An welcher Stelle des Installationsvorganges gebe ich die zu verwendende PHP Version an?

1. Wenn ich den composer installieren will führe ich das im root aus (Ja/Nein) oder gehe ins Verzeichnis des jeweiligen Projektes? Ich habs mit root versucht und es scheint zu passen.

2. composer ist installiert (version 2.8.4); um nicht umständlich php composer.phar... zu machen hab ich einen alias in einer Datei .profile angelegt, die beinhaltet folgendes: alias composer="/usr/bin/php ~/bin/composer.phar" Natürlich hab ich zuvor ein Verzeichnis "bin" angelegt. Wobei ich nicht verstehe obs egal ist daß die auch .bash_profile heissen kann oder überhaupt nur .bash? Das hab ich in unterschiedlichen Varianten schon gesehen - was wäre korrekt?

3. Wenn ich composer mit "composer status" anzusprechen versuche, dann kommt folgendes: -bash-4.2$ composer status
Composer 2.3.0 dropped support for PHP <7.2.5 and you are running 5.4.16, please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.

Ich verstehe es soweit, dass nicht die richtige PHP Version angesprochen wird - ich will ja Drupal 11 danach installieren. Wo gebe ich das an, dass die PHP8.3 läuft? PHP 8.3 ist im webspace möglich und für die Domain auch eingestellt.

Danke für eure Antworten,
Martin

‹ Editor für Bilder gesucht [gelöst]composer installieren - php version & Consorten ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

php -v

Eingetragen von Franz (225)
am 20.12.2024 - 03:17 Uhr

bei mir muss ich das bei einem Neustart der Kommandzeile gelegentlich auch nachstellen, dann guck ich halt mit php -v nach der Version, wir sind bei 8.3
In meinem Webspace geht das regelmäßig mit einem symbolischen Link: ln -sfv /usr/bin/php8.3 /usr/bin/php (muss natürlich nicht überall klappen).
Zurück o.ä. z.B. ln -sfv /usr/bin/php74 /usr/bin/php. Die Versionen schreiben sich mal mit mal ohne Punkt, kann ich mir oft nicht merken ;-)

-- Franz

  • Anmelden oder Registrieren um Kommentare zu schreiben

noch ..

Eingetragen von Franz (225)
am 20.12.2024 - 03:40 Uhr

war vorhin nur die Hälfte -
- ja, ich nutze den Project-Pfad, wo dann composer,json liegt und Document-Root via web/...
auch als root trotz anderer Empfehlung, bisher kam ich durch ;-)
- für alles mögliche, auch drush und composer etc, nutze ich einfache aliase, die ich ja speichern kann.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Spurensuche composer install

Eingetragen von Martin Gr. (253)
am 20.12.2024 - 12:14 Uhr

was du schreibst kommt mir alles schon bekannt vor, fühlt sich aber wie im Dunklen herumzutappen an. Danke aber trotzdem Franz.
Gibts irgendwo eine Schritt für Schritt Anleitung zur Installation von composer, wo auch nicht-unixler sich auskennen?

php -v ergibt PHP 8.3.10 (cli) (built: Aug .. das ist schon mal gut.

Die composer Installation gemäß getcomposer.org ergibt eine composer.phar im Hauptverzeichnis (...you can place the composer.phar anywhere you wish...it you put it in a directory that ist part of your PATH you can access it globally) Zitat von getcomposer. Ja das würde ich gerne schaffen.

Das Verzeichnis bin/composer habe ich angelegt mit mkdir -p /usr/local/bin , doch mv composer.phar /usr/local/bin/composer scheitert an den permissions. An welchen weiß ich nicht. Wenn ich versuchsweise die composer.phar einfach in das /bin/composer Verzeichnis schiebe geht das Zeug nimmer anzusprechen.

Der composer ist und bleibt nur ansprechbar mittels php composer.phar

Die composer.phar liegt also im Hauptverzeichnis - wenn ich nun damit in meinem Projektordner etwas "composerieren" möchte, also mit dem langwierigen Befehl php composer... dann wird der composer nicht angestartet. Could not find input file oder so ähnlich. Vermutlich ist allen LeserInnen klar warum - nur mir nicht. Wahrscheinlich weil der Pfad nicht angegeben ist.

Da bräuchte ich nun den alles entscheidenden Tipp der community.

Wie schon der ehemalige österr. Bundeskanzler F. Sinowatz seinerzeit meinte: Alles ist etwas kompliziert. Ich hab das Prinzip noch nicht verstanden. PATH ist auch so ein Begriff in dem Zusammenhang, welcher und wohin? Dann kommt in den Verzeichnisbäumen immer wieder /local vor, ich hab aber keine lokale Installation mit Linux und so sondern mach das alles im webspace. Vermutlich auch so ein Mißverständnis.

  • Anmelden oder Registrieren um Kommentare zu schreiben

webspace .. lokal

Eingetragen von Franz (225)
am 21.12.2024 - 00:30 Uhr

ich weiß micht mehr wie ichs installierte, komme grad nicht dazu zum suchen. Jedenfalls rufe ich den composer auf der Kommandozeile mit composer (oder einem alias) auf, d,h. ich hab irgendwann das phar einbauen können. Alles Spätere dann mit selfupdate,
Alles lokal mit Linux LMDE6.
ich übersah/sehe gerade - im webspace! Bei meinem Hostingpaket kam der composer auf der Kommandozeile ohne mein Zutun mit und verhält sich fast besser als lokal. Hast Du da nicht mehr Info vom Provider? getcomposer wieso? Im webspace sind natürlich permission nicht mehr Deine Sache. Dort eigene Ordner zu kreieren würde ich mir für composer nicht erlauben, das ist m.E. Sache vom Provider - den solltest Du behelligen, meine ich; (vielleicht hab ich oben mehr überlesen ,,)
Servus Franz

  • Anmelden oder Registrieren um Kommentare zu schreiben

Na leider

Eingetragen von Martin Gr. (253)
am 21.12.2024 - 17:31 Uhr

im providing Paket ist der composer nicht enthalten, daher nicht automatisch da. Die Idee mit Verzeichnis anlegen und so habe ich aus einigen Anleitungen, die zum composer im Netz herumschwirren. Getcomposer.org ist der "offizielle" Vertreter dieses php Paketmanagers, vom MIT gegründet oder so. Die haben auf dieser Seite einige Info, aber es ist für mich zu hochschwellig und läßt sich nicht einfach mit copy&paste umsetzen.
In zwei anderen meiner Projekte funktioniert der composer mit einem alias problemlos. In weiterer Folge auch drush. Da sind Aktualisierungen im Nu erledigt.
Den composer einzurichten, das mach ich eher selten und jetzt grad hunzt es etwas. Grundlagen wissen fehlt. (noch)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Geschafft

Eingetragen von Martin Gr. (253)
am 21.12.2024 - 19:25 Uhr

Wer meine Lösung wissen will:

Nach x-fachen Versuchen mit .bash, .bashrc, .profile, . bash_profile , in bin und my_bin Verzeichnissen hab ich eine einfache Lösung für den Alias gefunden.

  1. Hole in der SHELL von getcomposer.org mittels php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" den Installer
  2. Dann verifiziere das hier, frisch von deren webseite: php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
  3. Führe den Installationsbefehl aus: php composer-setup.php

Nun liegt eine composer.phar in deinem Hauptverzeichnis, meist ganz unten.

Du kannst nun den composer Befehl mit php composer.phar ... (hier dran käme der Befehl was du mit dem composer machen wolltest) - beispielsweise: php composer.phar list , dieser Befehl listet alle Möglichkeiten des composers auf.

Wenn es dir zu lästig ist für jeden composer Befehl die ganze "Wurst" davor zu tippen dann legst du einen Alias dafür an.Das ging bei mir so:

In einem Editor (notepad+) legte ich die folgende Datei an: .bashrc (wichtig: mit Punkt vorangestellt), diese Datei liegt gleich beim composer.phar auf selber Ebene.
In der Datei ist folgender Code: alias composer='php composer.phar'

Seitdem starte ich composer bequem mit composer für alle Befehle. Hoffentlich bleibts so.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das mit der composer

Eingetragen von wla (9456)
am 21.12.2024 - 19:26 Uhr

Das mit der composer Installation in einem bin-Verzeichnis im Unix Homeordner ist schon mal hervorragend. Dann aber mit Deinem Alias zu arbeiten ist nicht so gut.
Ich löse das so:
Nachdem der Composer als composer.phar installiert ist, benenne ich ihn mitels Unix mv-Befehl in composer um und mache ihn executable (chmod 644 composer).
Du solltest außerdem Deinen Support nach dem Pfad der von Dir gewünschten Php-Version fragen. Dann fügst Du im gleichen Verzeichnis Verzeichnis einen Symbolische-Link ein "ln -s [Pfad zum Bin des PHP Programms] $HOME/bin/php"
Bei mir: ln -s /usr/bin/php8.1 $HOME/bin/php"

Jetzt noch in der .bashrc einbauen: "export PATH=$HOME/bin:$PATH" (ohne die Gänsefüßchen).
Danach aufrufen ". .bashrc" um dieses Script einmal auszuführen (Passiert später beim Login in der Shell automatisch).
Path ist der Unix Suchpfad für Programme. Sobald ein passendes Programm (Namensgleichheit) gefunden ist, bricht die Suche ab. Damit werden sowohl Dein composer gefunden als auch Dein PHP-Programm.
Prüfen kann man das mit dem which-Befehl. Der ist aber unter Umständen (wie bei meinem Provider) abgeklemmt. Dann ist aber der Befehl type fast genausogut.
Beispiele:
which php
/home/bin/php
type php
php ist /home/bin/php
which composer
/home/bin/composer
composer -V
Composer version 2.6.6 2023-12-08 18:32:26

Hier sieht man, das composer nicht explizit über php aufgerufen wird, das passiert automatisch im Hintergrund.
Ich hoffe diese Erklärungen helfen zum weiteren Verständnis.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aktenzeichen xy weiter ungelöst

Eingetragen von Martin Gr. (253)
am 21.12.2024 - 23:14 Uhr

Danke Werner, du hast mir da schon einmal geholfen. Meine oben beschriebene Lösung funktionierte auch nur teilweise, immerhin konnte ich ein neues D11 aufsetzen. Bei der Installation von drush hat's mich dann geschleudert.

Teil 1: das Umbenennen von composer.phar in composer und die entsprechenden Rechte sollte geschafft sein. Bei mir liegt die composer.phar jedoch im Hauptverzeichnis, also nicht in irgendeinem /bin.

Teil 2: Das ist der Pfad zum PHP8.3 für .bashrc: export PATH=/opt/plesk/php/8.3/bin:$PATH

Teil 3: ln -s /opt/plesk/php/8.3 $HOME/bin/php Da weiß ich jetzt nicht, wo in welches Verzeichnis ich gehen soll, um das einzugeben.

Which composer funktioniert bei mir prinzipiell.

Die momentae Position der composer.phar (im Hauptverzeichnis und somit außerhalb meines Projektordners hatte Folgen. Die Installation von D11 ist gelungen, weil ich da ja den Projektordner als Ziel angegeben habe. Der composer hat das problemlos gemacht.
Als ich dann drush installiert habe, landete dieser außerhalb des Projektordners in einem eigenen Vendor Verzeichnis und war mit vendor/bin/drush nicht aufrufbar. Ein Durcheinander.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zu Frage 1:Das Executable

Eingetragen von wla (9456)
am 21.12.2024 - 23:18 Uhr

Zu Frage 1:
Das Executable von PHP bleibt liegen wo es ist. Du sorgst nur mit dem symbolic link dafür, daß unter den Namen php die verlinkte Version von PHP unter dem Namen php aufgerufen wird. Das ist für drush Funktionalität extrem wichtig. Im Übrigen sind php auf der Kommandozeile und php im Webbrowser unabhängig von einander!!
Wo php in der für Dich richtigen Version liegt, ist vom Provider abhängig. Bei meinem hat er das Programm einfach php8.1 genannt und nach /usr/bin kopiert. Für drush muß es aber php heißen. Bei Plesk Installationen meine ich mich dunkel zu erinnern, daß der Pfad /opt/share/php/[Versionsnummer]/bin/php lautet. Das solltest Du überprüfen. etwa mit ls /opt/share/php um zu sehen ob der Pfad richtig ist. Dann den Pfad immer weiter verlängern, bis Du weißt, wo das richtige Programm liegt.
Ich sehe gerade, daß du den Pfad von php in Deiner PATH-Variablen eingetragen hast. Kann man machen. Ich mag die Version mit dem Symbolischen Link lieber. Da kann ich schneller die Version ändern.

Zu Frage 2:
Du kannst composer nicht im bin-Verzeichnis Deines Providers umbenennen. Dazu fehlen Dir die Rechte. Im bin-Verzeichnis bei Dir im $Home geht das aber. Wenn Du den Namen auf composer.phar beläßt, kannst Du das Programm nicht einfach über composer aufrufen. Dann braucht es wieder Deinen Alias. Wenn Du es nicht executable machst, mußt Du es über vorgestelltes php aufrufen, denn: php ist executable und lädt dann die Code-Datei composer.phar und führt sie aus. Die muß unter den Bedingungen selbst nicht executable sein.
Wenn das Programm composer in Deinem Suchpfad (PATH) zuerst gefunden wird, interessiert die Version Deines Provider nicht mehr, denn der erste Fund ist maßgebend.

Zitat:

Teil 3: ln -s /opt/plesk/php/8.3 $HOME/bin/php

Das geht so nicht sondern:
ln -s /opt/plesk/php/8.3/bin/php $HOME/bin/php

  • Anmelden oder Registrieren um Kommentare zu schreiben

Soll ich nun den composer.phar

Eingetragen von Martin Gr. (253)
am 21.12.2024 - 23:35 Uhr

in meinen /bin Ordner verschieben und dort umbenennen? Oder neu dort hineininstallieren? Ich weiß das sind möglicherweise "grausame Ideen".

Den Pfad habe ich in meinem post schon genannt - in welchem Verzeichnis muß ich mich befinden um das ls...aufzurufen?

Ich muß da morgen weiter tun.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich würde composer neu im

Eingetragen von wla (9456)
am 21.12.2024 - 23:38 Uhr

Ich würde composer neu im eigenen bin installieren.
Um den Symbolischen Link zu erzeugen ist es egal wo du stehst, da im Befehl der vollständige Zielpfad angegeben ist.
Im bin-Verzeichnis reicht: ln -s /opt/plesk/php/8.3/bin/php . (der Punkt gehört noch zum Befehl!!)

  • Anmelden oder Registrieren um Kommentare zu schreiben

dazu gelernt ..

Eingetragen von Franz (225)
am 22.12.2024 - 02:22 Uhr

.. hab ich hier natürlich auch. Wenn der Composer nicht vom Provider kommt .. spannend, hätte ich mir auch nicht so zugetraut, und Werner hat es weiter einluechtend gemacht, gut!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Suche geht weiter

Eingetragen von Martin Gr. (253)
am 22.12.2024 - 13:54 Uhr

Ich hab den composer komplett neu in das Verzeichnis /bin installiert.

Folgende Vorgangsweise:

1. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
2. php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

3. php composer-setup.php --install-dir=<strong>bin</strong> --filename=composer  (hier hab ich als Verzeichnis /bin angegeben)

4. php -r "unlink('composer-setup.php');"

Den composer sollte ich nun mit folgendem Befehl nutzen können: (Use it) php bin/composer, das geht grad nur im Hauptverzeichnis. Doch im Projektordner wird er nicht gefunden. Dann weiter mit deiner Anleitung wobei das mit dem symbolischen Link nicht geklappt hat.

ln -s /usr/bin/php8.3 $HOME/bin/php
ln: failed to create symbolic link '/var/www/vhosts/c8wfj17e.web147.alfahosting-server.de/bin/php': File exists
-bash-4.2$ which php
/usr/local/bin/php
-bash-4.2$ type php
php is hashed (/usr/local/bin/php)
-bash-4.2$ which composer
/usr/bin/which: no composer in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin)

In der .bashrc hab ich Folgendes eingetragen:
export PATH=$HOME/bin:$PATH

Der composer lässt sich nun im Hauptverzeichnis und auch im Projektordner ansprechen. Ich traue dem noch nicht so recht und werde mal versuchen, ein paar Module zu installieren.

Wenn ich das nun mit deinen Vorgaben "teste" dann sehe ich folgendes:

-bash-4.2$ which composer
~/bin/composer

-bash-4.2$ type php
php is /usr/local/bin/php

-bash-4.2$ which php
/usr/local/bin/php

-bash-4.2$ composer -V
Composer version 2.8.4 2024-12-11 11:57:47
PHP version 8.3.10 (/opt/plesk/php/8.3/bin/php)
Run the "diagnose" command to get more detailed diagnostics output.
-bash-4.2$

Zitat:

Könnte so passen, was meinst du? Zum Drüberstreuen habe ich noch composer diagnose gemacht - geht mich das etwas an an, wenn git nicht in neuester Version vorliegt? Wie würde ich's aktualisieren?

-bash-4.2$ composer diagnose
Checking composer.json: OK
Checking composer.lock: OK
Checking platform settings: OK
Checking git settings: WARNING
Your git version (1.8.3.1) is too old and possibly will cause issues. Please upgrade to git 2.24 or above
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking connectivity to https://packages.drupal.org/8: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952
OK
Checking Composer version: OK
Checking Composer and its dependencies for vulnerabilities: OK
Composer version: 2.8.4
PHP version: 8.3.10
PHP binary path: /opt/plesk/php/8.3/bin/php
OpenSSL version: OpenSSL 1.0.2k 26 Jan 2017
curl version: 7.29.0 libz 1.2.7 ssl NSS/3.53.1
zip: extension present, unzip present, 7-Zip not available

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Symbolic-Link hat nicht

Eingetragen von wla (9456)
am 22.12.2024 - 16:21 Uhr

Der Symbolic-Link hat nicht funktioniert, weil in Deinem ~/bin-Verzeichnis bereits eine Datei namens php existiert hat (man beachte die Fehlermeldung). also diese Datei löschen und nochmal den Symbolic Link anlegen. Wenn Du dort nicht den Link zu php hast, wird der folgerichtig auch nicht dort gefunden, sondern da wo das System ihn anbietet. Bei Unix kommt es eben auf die Kleinigkeiten an.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Herzlichen Dank Werner

Eingetragen von Martin Gr. (253)
am 22.12.2024 - 21:40 Uhr

Aus meiner Sicht läuft alles bestens. Das war eine längere Reise, mit ungezählten Versuchen.

In meinem ~/bin Verzeichnis sehe ich keine php, da liegt nur der composer. Hab auch im filezilla keine Möglichkeit gefunden, die "unsichtbare" php aufzuspüren.

Macht es eigentlich noch Sinn, wenn ich die gesamte Anleitung nochmals bereinige und sie hier im Handbuch von DC zusammenschreibe?
Ich würde gerne so einen Beitrag geben, denn ich bin sicher, andere ringen auch mit der composer Insta.
Liebe Grüße,
Martin

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Probleme mit der darstellun der ogg:image Tags.
  • Hi!
  • Abhängigkeiten zweier oder mehrerer Inhaltstypen
  • Lokale Entwicklungsumgebung auf Windows
  • Drupalcenter tot?
  • Drupal-Forks und ihre Schwächen/Stärken
  • Was kann ich gegen ständige Blutergüsse tun?
  • Mir gefällt die Drupal Symfony und deren Composer
  • Mir ist da was aufgefallen ;)
  • Matomo Installation
  • Verständnisfrage private_files in Drupal
  • [gelöst] Drupal 7 Forum Beitrag mit Bilder einstellen
Weiter

Neue Kommentare

  • Kontextfilter und Relationen sind der richtige Ansatz
    vor 10 Stunden 12 Minuten
  • Zusatzfragen
    vor 1 Tag 11 Stunden
  • DDEV verwaltet Container, sowohl Docker als auch andere
    vor 1 Tag 11 Stunden
  • Entwicklungsumgebung ist nicht nur Server
    vor 1 Tag 11 Stunden
  • Danke
    vor 2 Tagen 18 Stunden
  • [gelöst] Danke!
    vor 2 Tagen 18 Stunden
  • Ja natürlich tun wir dass.
    vor 3 Tagen 13 Stunden
  • Drupal.de verweist aufs Drupal Center
    vor 3 Tagen 14 Stunden
  • Und falls du auf grüne
    vor 3 Tagen 15 Stunden
  • Danke euch beiden, das bringt
    vor 3 Tagen 15 Stunden

Statistik

Beiträge im Forum: 250047
Registrierte User: 20359

Neue User:

  • Shify
  • tom082
  • Bubabujalka

» Alle User anzeigen

User nach Punkten sortiert:
wla9456
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3855
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 7 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