[gelöst] Umstellung von D10.3.6 auf D11.x Fragen
am 07.11.2024 - 11:54 Uhr in
Hallo Leute,
mich beschäftigt die Umstellung auf D11. Es gibt eine Anleitung dazu auf drupl.org die ich versuche abzuarbeiten und dazu habe ich Fragen.
- Eine aktualisierte composer Version ist am Laufen - das passt, 2.8.7 oder so
- Die Module, es sind nur wenige sind D11 kompatibel
- Es sollte drush auf drush 13 erhöht werden - dazu dann die erste Frage
- Es braucht PHP 8.2 mindestens - dazu die zweite Frage
Frage 1: In meinem webspace habe ich 5 Projekte mit D10.3.6, nur mit einem davon möchte ich als Experiment (Vorreiter quasi) die Version Drupal 11 "erklimmen". Wenn ich nun drush auf Version 13 update, stört das die Projekte die derweil noch Drupal 10.3.6 bleiben?
Oder darf jedes Projekt seine eigene drush version haben? oder ist es egal, weil drush 13 auch die D10 projekte betreuen kann?
Frage 2: Im webspace habe ich für das fragliche upzudatende Projekt PHP 8.3 eingestellt, aber das Projekt benutzt trotzdem die alte Version (8.1.8). Ich erinnere mich nimmer sicher, wo ich dem Projekt ansagen muß, dass es die höhere Version nutzt. Ist es in der .bashrc einzustellen? Oder noch wo anders?
Frage 3: drush 13 hole ich mir mit Hilfe des composer require drush/drush ....? wie genau? ich weiß das sind basics für euch aber ich will sicher gehen.
PS: die Suchfunktion hier im center führte mich nach "forbidden".
Herzlichen Dank,
Martin
- Anmelden oder Registrieren um Kommentare zu schreiben
1) Jedes Projekt muß seine
am 07.11.2024 - 23:47 Uhr
1) Jedes Projekt muß seine eigenen drush haben (aufzurufen auf der oberen Ebene mittels vendor/bin/drush)
2) Browser und cli (Command Line Interface) haben eine eigene PHP Version. In der PATH-Variablen in der Shell die richtige Version vorne haben.
3)composer require drush/drush:^13.0
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Danke Werner und weitere Rätsel
am 08.11.2024 - 10:48 Uhr
ad 1.) Ich bin nicht sicher, ob jedes Projekt seine eigene drush hat. Es sind noch zwei Drupal 7.x Seiten dabei, die ich nie mit drush/composer bearbeitet hab.
Vermutlich wird ein"globales drush" für alle gemeinsam verwendet. Wie kann ich das herausfinden? Dieses erst entfernen? Dann für jedes Einzelprojekt ein drush neu installieren?
ad 2.) das habe ich mit deiner Hilfe schon einmal durchgearbeitet - ist es wohl das hier in der .bshrc
userdir='/var/www/vhosts/meinhost-bei-meinem-provider.de'
export PATH=$HOME/my_bin:$PATH
# Composer
#alias composer="php83 -d memory_limit=-1 $userdir/composer/composer"
# Drush
#alias drush="php83 -d memory_limit=-1 $userdir/drush/vendor/bin/drush"
Und das bedeutet wohl, dass im gesamten webspace php83 "herrscht", weil die bash im root liegt und für alle gilt.
Ist es für Drupal 7 webseiten ein Problem, sie mit php83 zu betreiben? Oder könnte ich dann in der jeweiligen .htaccess sagen, dort soll eine andere php Version verwendet werden? Möglicherweis denke ich da zu kompliziert. Ich will mir durch das Experiment mit D11 halt nicht die anderen Projekte beschädigen.
Bei Drupal 7 war noch ein
am 08.11.2024 - 20:02 Uhr
Bei Drupal 7 war noch ein globales drush zulässig. Seit den späten Drupal 8-Versionen aber nicht mehr. Wenn Du bei Drupal 7 drush nicht verwendest, ist Dir die cli-php-Version egal. Für den Apache solltest Du in der Konfiguration der Webseite jeweils die PHP-Version wählen können, aber das hängt vom Provider ab.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ratlose Geschichte
am 10.11.2024 - 18:26 Uhr
Ein composer update scheitert momentan noch an Folgendem:
Problem 1
- Root composer.json requires drush/drush ^13 -> satisfiable by drush/drush[13.0.0, ..., 13.3.2].
- drush/drush[13.0.0, ..., 13.3.2] <strong>require php >=8.2 -> your php version (8.1.18) </strong>does not satisfy that requirement.
Problem 2
- Root composer.json requires drupal/core-recommended ^11 -> satisfiable by drupal/core-recommended[11.0.0, ..., 11.0.6].
- drupal/core[11.0.0, ..., 11.0.6] <strong>require php >=8.3.0 -> your php version (8.1.18)</strong> does not satisfy that requirement.
- drupal/core-recommended 11.0.0 requires drupal/core 11.0.0 -> satisfiable by drupal/core[11.0.0].
In der .bashrc habe ich alles auf PHP83 eingestellt was nur geht. Siehe hier:
userdir='/var/www/vhosts/meinxxxyyyserver.de'
export PATH=$HOME/my_bin:$PATH
# Composer
#alias composer="php83 -d memory_limit=-1 $userdir/composer/composer"
# Drush
#alias drush="php83 -d memory_limit=-1 $userdir/drush/vendor/bin/drush"
# ########################################################################
# Aliases for management of KPT9 Website und PHP Versionsaenderung auf 8.3
# ########################################################################
# Drush
# Achtung: Default php cli version am Server ist 5.x. Hier muss vendor/bin/drush gepatcht werden, um nicht /usr/bin/php sondern /usr/bin/php74 zu verwenden.
alias drush="php -d memory_limit=-1 vendor/bin/drush"
# Composer
alias composer="php -d memory_limit=-1 $userdir/composer/composer"
Also: Im STATUS von Drupal 10.3.6 wird als verwendete PHP Version die 8.3 angezeigt, beim Provider hab ich für dieses Projekt ebenfalls PHP83 eingestellt.
Wo steckt die alte Version (siehe Fehlermeldung) noch drin? Und wo ist das Stellrädchen, um zu PHP 83 zu kommen. Natürlich später auch für die weiteren Folgeversionen.
Nachtrag:
In der .bshrc habe ich statt: ALT: export PATH=$HOME/my_bin:$PATH nun NEU: export PATH=/usr/local/php83/bin:$PATH eingetragen. Damit konnte ich PHP8.2.5 auf einmal verwenden und sogar die aktuelle drush 13.3.6 installieren. Aber mehr nicht. Weil Drupal 11 eben php83 benötigt.
Ratlos!
Was erhälts Du, wenn Du auf
am 10.11.2024 - 20:07 Uhr
Was erhälts Du, wenn Du auf der Kommandozeile php -v aufrufst. Ich vermute mal eine PHP 8.2.x - Version.
Du mußt bei Deinem Provider nachfragen, wo und unter welchem Namen PHP 8.3 für die Kommandozeile liegt. Bitte beachten, Du mußt in jedem Fall einen symbolischen Link in einem eigenen Verzeichnis aufsetzen, der php heißt und auf die richtige php-Version weiterleitet. Dieses Verzeichnis kommt als erstes in Deine PATH-Variable.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ja ich erhalte 8.2.5
am 11.11.2024 - 08:44 Uhr
Den Aufruf habe ich schon versucht und alle mir bekannten Möglichkeiten in der .bashrc durchprobiert, immer wieder mit php -v kontrolliert. Ich hab nun dem Porvider support geschrieben und melde mich hier wieder. Danke!
Scheint zu klappen
am 11.11.2024 - 20:10 Uhr
Hallo Werner,
da der support noch nicht geantwortet hatte, hab ich in meinen uralten alphahost-tickets nachgelesen und Folgendes gefunden:
...Um eine bestimmte PHP-Version in der Shell zu nutzen, können Sie folgenden PHP-Befehl nutzen:
/opt/plesk/php/8.0/bin/php
/opt/plesk/php/8.1/bin/php
/opt/plesk/php/8.2/bin/php
Diese Info hab ich in meine Skriptzeile auf Verdacht "eingebaut" und siehe da, ich habe sogar PHP 8.3.1 in der shell zu Verfügung. Das sieht dann wie folgt aus:
export PATH=/opt/plesk/php/8.3/bin/: $PATH
Jetzt gehts an die Installation, ich hab mich für das Experiment zu einer Neuinstallation von D11 entschieden, um ein Gefühl dafür zu bekommen. Mit den anstehenden update von D10 auf D11 werde ich wahrscheinlich wieder hier melden. Aber so gehts anderen vermutlich auch.
Was du mit dem symbolischen Link gemeint hast verstehe ich nicht ganz, geht aber auch ohne? Wird sich zeigen.
Was ist das facit? Mit KI hab ichs versucht zu lösen - aber nichts kann einen hilfsbereiten Forenhelfer ersetzen. Und dranbleiben bzw. weiterforschen muß man selber.
Danke!
Es gibt Provider, die die PHP
am 12.11.2024 - 12:47 Uhr
Es gibt Provider, die die PHP Versionen als z.B. php83 in /usr/local bereitstellen. Dann reicht es nicht, nur die PATH-Variable anzupassen, aber bei Dir ist es so ok, wie Du es aufgesetzt hast.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *