- Accueil
- Info légales
- Aide (FAQ)
- Les tags de ce site
- Bloc note
- Articles techniques
- Notes system
- Divers articles
- Drupal
- Notes ITIL 2007
- Notes MS
- Dans le quartier...
- Emploi
- Recettes de cuisine et adresses gourmandes
- mes applis ubuntu préferées
- Divers acronymes du monde social
- Internet 2018
- P2 meublé à louer - quartier du Poteau 75018
- apcos - réseaux sociaux et outils
- Articles techniques
- Divers liens
- Fun
- Mon CV IT
- Nouveautés
Installer un drupal 7 avec ddev
Le dossier du projet est nommé Projets/ddev7t et à la fin, le drupal 7 sera sous Projets/ddev7t/web.
Install du drupal 7
cd Projets
composer create-project drupal-composer/drupal-project:7.x-dev ddev7t
-> Installe drush 8.1.17, symfony/console (v3.4.11)... On va créer le ddev7t/.ddev/config.yaml avec un port différent (ici 8097) :
cd ddev7t ; ddev config ; vi .ddev/config.yaml
-> on garde les 3 valeurs par défaut (faire 3 fois ENTREE). Le script ne demande pas de port, ni d'alias pour le nom du serveur, il faut modifier manuellement le config.yaml :
APIVersion: v0.18.0
name: ddev7t
type: drupal7
docroot: web
php_version: "7.1"
router_http_port: "8097"
router_https_port: "7443"
xdebug_enabled: false
additional_hostnames:
- dd7
- d7s1
- d7s2
provider: default
Si ddev gère le settings.php (ou pas), l'install faite au ddev start sera différente (voir ddev : commandes fréquentes).
ddev start
-> ajout sur l'hote des noms : (sudo /usr/local/bin/ddev hostname ddev7t.ddev.local 127.0.0.1 + sudo /usr/local/bin/ddev hostname dd7.ddev.local 127.0.0.1 + les sudo /usr/local/bin/ddev hostname d7s1.ddev.local 127.0.0.1)
-> création de ddev-ddev7t-db + ddev-ddev7t-web + ddev-ddev7t-dba + ddev-router
ddev describe
pour voir le port pour attaquer la db
Installer le drupal via https://dd7.ddev.local:7443/install.php
(tout est à db : Database name + Database username + Database password + Database host ; mettre si multi site un préfixe m_)
4 byte UTF-8 pour mysql non activé (plus à utf8mb4) -> les tables sont en utf8_general_ci et non en mb4.
A ce stade, sur l'hote :
- ddev7t/web/sites/default a setting.php en lecture seule et en écriture un settings.local.php (avec commentaire "#ddev-generated: Automatically generated Drupal settings.php file.").
- ddev7t/web/sites/all/modules/contrib/composer_autoloader
- ddev7t/composer.json ("drupal-composer/drupal-project" avec require ext-gd, drush 8...)
- .ddev le config.yaml (vu au début) et le docker-compose.yaml (créée par ddev start) + un dossier mysql vide
Conversion utf8mb4
Le user mysqld du serveur est root/root (tapper root en pw après la 2e ligne:)
ddev ssh
mysql -u root -p
ou trouver le port avec ddev describe puis mysql --host=127.0.0.1 --port=32772 --user=root --password=root
ddev ssh
cd ~ ; drush @none dl utf8mb4_convert-7.x ; drush cc drush ; cd /var/www/html/webdrush utf8mb4-convert-databases
Modif du settings.php (ajouter droit d'écriture, ajout utf8mb4, reprotéger) :
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
et backup
du serveur installé (ie après un ddev ssh) :
mkdir /var/www/html/.tarballs
mysqldump db | gzip >/var/www/html/.tarballs/db.sql.gz
on retrouve bien sur l'hote le .sql.gz dans ddev7t/.tarballs
Ajout de modules
les commandes suivantes sont saisies du serveur (après le prompt en "uid_1000@50a79500989f:/var/www/html$" - on a fait précedemment un ddev ssh)
dl ctools 1.14 et views 3.20 (sans les installer sur le site) : composer require drupal/views
composer require drupal/ckeditor
composer require drupal/i18n
composer require drupal/i18nviews
composer require drupal/entity_token
composer require drupal/pathauto
composer require drupal/jquery_update
composer require drupal/admin_menu
composer require drupal/ckeditor_link
composer require drupal/file_entity
composer require drupal/media_ckeditor
composer require drupal/media_oembed
composer require drupal/plupload
composer require drupal/advanced_help
composer require drupal/menu_block
composer require drupal/transliteration
composer require drupal/globalredirect
composer require drupal/custom_search
composer require drupal/rules
composer require drupal/schemaorg
composer require drupal/metatag
composer require drupal/views_bulk_operations
composer require drupal/xmlsitemap
composer require drupal/multilink
composer require drupal/hreflang
composer require drupal/languageicons
composer require drupal/image_captcha_refresh
composer require drupal/honeypot
Haut de la page et install - conversion utf8mb4 - backup de la db - ajout modules (avec composer require) - utiliser
Utiliser
avec coloration syntaxique : ddev7t$ ddev exec drush pml | grep Enabled > mod_inst_180531
et sans (du srv) uid_1000@7c30fe200a88:/var/www/html$ drush @monalias pml | grep Enabled
à la mano KO
La 1ere ligne change bien la db, mais les tables restent en utf8_general_ci avec la 2e ligne
ALTER DATABASE db CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
SELECT CONCAT('ALTER TABLE `', TABLE_NAME,'` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') AS mySQL FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA= "db" AND TABLE_TYPE="BASE TABLE";
SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLLATION_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
where not collation_name is null
AND TABLE_SCHEMA = '[db]'
AND NOT COLLATION_NAME = 'utf8mb4_general_ci'
order by COLLATION_NAME, DATA_TYPE;
\q
https://mariadb.com/kb/en/library/setting-character-sets-and-collations/
SET collation_server ='utf8mb4_general_ci';