compat Drupal 9.5 / 10
This commit is contained in:
parent
186efe3d49
commit
c331db6977
|
@ -19,8 +19,7 @@ Aegir est composé des éléménts suivants :
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Pré-requis : Debian 10 avec PHP 8.1 (par défaut sous Debian 10)
|
Pré-requis : Debian 10 ou Debian 11 avec PHP 8.1 ou 8.2
|
||||||
Note : en test sous Debian 11 / avec PHP 8.2
|
|
||||||
|
|
||||||
Préparer un service [MySQL](HowtoMySQL) local avec un identifiant "admin" afin de permettre au paquet Debian `aegir3` de créer une base et des utilisateurs MySQL (il va notamment créer `aegir_root`) :
|
Préparer un service [MySQL](HowtoMySQL) local avec un identifiant "admin" afin de permettre au paquet Debian `aegir3` de créer une base et des utilisateurs MySQL (il va notamment créer `aegir_root`) :
|
||||||
|
|
||||||
|
@ -69,7 +68,7 @@ On peut ensuite activer différents modules via l'interface web d'Aegir : option
|
||||||
|
|
||||||
Si l'on utilise pas "Composer" pour déployer, nous conseillons de désactiver le module "Aegir Platform Composer" (sans cela on constate que le code Drupal n'était pas déployé sur les infra multi-serveurs).
|
Si l'on utilise pas "Composer" pour déployer, nous conseillons de désactiver le module "Aegir Platform Composer" (sans cela on constate que le code Drupal n'était pas déployé sur les infra multi-serveurs).
|
||||||
|
|
||||||
### Installation PHP 8.1 (8.2 en test)
|
### Installation PHP 8.1 (ou 8.2)
|
||||||
|
|
||||||
Pour la compatibilité avec Drupal 9.5 / 10, nous passons PHP 8.1 (8.2 en cours de test chez nous) via Sury :
|
Pour la compatibilité avec Drupal 9.5 / 10, nous passons PHP 8.1 (8.2 en cours de test chez nous) via Sury :
|
||||||
|
|
||||||
|
@ -216,6 +215,8 @@ Pour gérer du Drupal 10, il faut ajouter les fichiers suivants dans `/usr/share
|
||||||
* install_10.inc
|
* install_10.inc
|
||||||
* packages_10.inc
|
* packages_10.inc
|
||||||
|
|
||||||
|
(TODO: fournir la source de ces fichiers, voir notamment l'[issue Provision 3406925](https://www.drupal.org/project/provision/issues/3406925))
|
||||||
|
|
||||||
et potentiellement dans `/usr/share/drush/commands/core/dupal/` :
|
et potentiellement dans `/usr/share/drush/commands/core/dupal/` :
|
||||||
|
|
||||||
* batch_10.inc
|
* batch_10.inc
|
||||||
|
@ -224,7 +225,7 @@ et potentiellement dans `/usr/share/drush/commands/core/dupal/` :
|
||||||
* site_install_10.inc
|
* site_install_10.inc
|
||||||
* update_10.inc
|
* update_10.inc
|
||||||
|
|
||||||
(TODO: fournir la source de ces fichiers, voir notamment l'[issue Provision 3406925](https://www.drupal.org/project/provision/issues/3406925))
|
(a priori, pas nécessaire)
|
||||||
|
|
||||||
Il faut supprimer le Drush 12 inclus dans les sources (TODO: à confirmer, cf [ici](https://github.com/drush-ops/drush/issues/5741)) :
|
Il faut supprimer le Drush 12 inclus dans les sources (TODO: à confirmer, cf [ici](https://github.com/drush-ops/drush/issues/5741)) :
|
||||||
|
|
||||||
|
@ -241,7 +242,52 @@ Il faut aussi appliquer ce patch [drush-8-symfony-console-compat.patch](https://
|
||||||
# patch -p1 < 3353492-symfony-console-4-update_1.patch
|
# patch -p1 < 3353492-symfony-console-4-update_1.patch
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Le patch sur `Input/InputInterface.php` nécessite un coup de main ;)
|
Attention, ce patch nécessite alors de patcher aussi le code de Drupal 9.5 pour qu'il reste « installable » :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
# cat drush-8-symfony-console-compat-drupal95.patch
|
||||||
|
29c29
|
||||||
|
< public function getFirstArgument();
|
||||||
|
---
|
||||||
|
> public function getFirstArgument(): ?string;
|
||||||
|
44c44
|
||||||
|
< public function hasParameterOption($values, $onlyParams = false);
|
||||||
|
---
|
||||||
|
> public function hasParameterOption(string|array $values, bool $onlyParams = false): bool;
|
||||||
|
60c60
|
||||||
|
< public function getParameterOption($values, $default = false, $onlyParams = false);
|
||||||
|
---
|
||||||
|
> public function getParameterOption(string|array $values, string|bool|int|float|array|null $default = false, bool $onlyParams = false);
|
||||||
|
81c81,82
|
||||||
|
< public function getArguments();
|
||||||
|
---
|
||||||
|
> public function getArguments(): array;
|
||||||
|
>
|
||||||
|
111c112,113
|
||||||
|
< public function hasArgument($name);
|
||||||
|
---
|
||||||
|
> public function hasArgument($name): bool;
|
||||||
|
>
|
||||||
|
118c120,121
|
||||||
|
< public function getOptions();
|
||||||
|
---
|
||||||
|
> public function getOptions(): array;
|
||||||
|
>
|
||||||
|
148c151,152
|
||||||
|
< public function hasOption($name);
|
||||||
|
---
|
||||||
|
> public function hasOption($name): bool;
|
||||||
|
>
|
||||||
|
155c159,160
|
||||||
|
< public function isInteractive();
|
||||||
|
---
|
||||||
|
> public function isInteractive(): bool;
|
||||||
|
|
||||||
|
# patch /var/aegir/platforms/PLATEFORM/vendor/symfony/console/Input/InputInterface.php < drush-8-symfony-console-compat-drupal95.patch
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|
||||||
|
Le patch sur `Input/InputInterface.php` nécessite un coup de main (TODO ;)
|
||||||
|
|
||||||
On crée le fichier `Sql10.php` :
|
On crée le fichier `Sql10.php` :
|
||||||
|
|
||||||
|
@ -262,23 +308,29 @@ Sinon on aura des erreurs lors de l'installation d'un Drupal 10 :
|
||||||
Drush\Sql\SqlException: Unable to find a matching SQL Class. Drush cannot find your database connection details...
|
Drush\Sql\SqlException: Unable to find a matching SQL Class. Drush cannot find your database connection details...
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
ET idem pour DrupalBoot10.php, StatusInfoDrupal10.php, User10.php et UserSingle10.php
|
ET idem pour DrupalBoot10.php, StatusInfoDrupal10.php, User10.php et UserSingle10.php :
|
||||||
|
|
||||||
|
/var/aegir/.config/composer/vendor/drush/drush/lib/Drush/Boot/DrupalBoot10.php
|
||||||
|
/var/aegir/.config/composer/vendor/drush/drush/lib/Drush/UpdateService/StatusInfoDrupal10.php
|
||||||
|
/var/aegir/.config/composer/vendor/drush/drush/lib/Drush/User/User10.php
|
||||||
|
/var/aegir/.config/composer/vendor/drush/drush/lib/Drush/User/UserSingle10.php
|
||||||
|
|
||||||
(TODO: fichiers à fournir).
|
(TODO: fichiers à fournir).
|
||||||
|
|
||||||
Il faut aussi patcher dans le code de Drupal 10 :
|
Il faut aussi patcher dans le code de Drupal 10 :
|
||||||
|
|
||||||
1. supprimer "string|\Stringable " dans les fichiers suivants :
|
1. supprimer "string|\Stringable " dans les fichiers suivants :
|
||||||
|
|
||||||
* 18 fois dans vendor/psr/log/src/LoggerTrait.php :
|
* vendor/psr/log/src/LoggerTrait.php (18 fois)
|
||||||
* 1 fois dans core/lib/Drupal/Core/Logger/LoggerChannel.php
|
* core/lib/Drupal/Core/Logger/LoggerChannel.php (1 fois)
|
||||||
* 9 fois dans core/lib/Drupal/Core/Logger/RfcLoggerTrait.php
|
* core/lib/Drupal/Core/Logger/RfcLoggerTrait.php (9 fois)
|
||||||
* 1 fois dans core/modules/dblog/src/Logger/DbLog.php
|
* core/modules/dblog/src/Logger/DbLog.php (1 fois)
|
||||||
|
|
||||||
2. supprimer ": void" dans les fichiers suivants :
|
2. supprimer ": void" dans les fichiers suivants :
|
||||||
|
|
||||||
* core/lib/Drupal/Core/Logger/RfcLoggerTrait.php
|
* core/lib/Drupal/Core/Logger/RfcLoggerTrait.php (9 fois)
|
||||||
* vendor/psr/log/src/LoggerInterface.php
|
* vendor/psr/log/src/LoggerInterface.php (9 fois)
|
||||||
* core/modules/dblog/src/Logger/DbLog.php
|
* core/modules/dblog/src/Logger/DbLog.php (1 fois)
|
||||||
|
|
||||||
3. Supprimer ": void" uniquement dans "function log(...)" dans les fichiers suivants :
|
3. Supprimer ": void" uniquement dans "function log(...)" dans les fichiers suivants :
|
||||||
|
|
||||||
|
@ -289,6 +341,7 @@ Enfin, il faut appliquer le patch suivant sur le fichier
|
||||||
`/var/aegir/.config/composer/vendor/drush/drush/lib/Drush/Boot/DrupalBoot.php` :
|
`/var/aegir/.config/composer/vendor/drush/drush/lib/Drush/Boot/DrupalBoot.php` :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
# cat DrupalBoot.php.patch
|
||||||
@@ -157,7 +157,12 @@
|
@@ -157,7 +157,12 @@
|
||||||
$ignored_modules[] = $cached->data;
|
$ignored_modules[] = $cached->data;
|
||||||
}
|
}
|
||||||
|
@ -317,6 +370,8 @@ Enfin, il faut appliquer le patch suivant sur le fichier
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# patch Da/var/aegir/.config/composer/vendor/drush/drush/lib/Drush/Boot/DrupalBoot.php < DrupalBoot.php.patch
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
## Utilisation
|
## Utilisation
|
||||||
|
@ -376,6 +431,8 @@ $ drush --backend=2 @platform_PREPROD provision-verify 2>&1
|
||||||
|
|
||||||
Cela va également écrire dans la base de données MySQL propre à Aegir.
|
Cela va également écrire dans la base de données MySQL propre à Aegir.
|
||||||
|
|
||||||
|
Par exemple quand on crée un site, il est présent au moins dans les tables `hosting_site` et `hosting_context`.
|
||||||
|
|
||||||
Par exemple pour lister les serveurs :
|
Par exemple pour lister les serveurs :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
@ -390,6 +447,7 @@ MariaDB> select title,service,hosting_service.type,restart_cmd,port,uid,hosting_
|
||||||
| webcluster | http | cluster | | 0 | 1 | 1 | 1663175362 | 1663230664 |
|
| webcluster | http | cluster | | 0 | 1 | 1 | 1663175362 | 1663230664 |
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
||||||
Au sein d'un site Drupal, on peut collecter différentes informations via [Drush](HowtoDrupal#drush) :
|
Au sein d'un site Drupal, on peut collecter différentes informations via [Drush](HowtoDrupal#drush) :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
|
Loading…
Reference in a new issue