Artisan Développeur

Qualité, amélioration continue, agilité.

Results for category "Blog"

50 Articles

Drupal 8 Vagrant, Ansible, Composer

Be ready to work on Drupal 8 fast !
I have searched for a simple VM to install Drupal 8 locally to dev, with composer installed. All the projects I have seen seems great but with to many options and possibilities.

My goal was to have, a virtual machine, with Debian 10 (Buster), php, apache and mariadb (default distribution version), composer, and a Drupal 8 installed with composer.

I did not find what I need, so I have tinkered something, it is not the coolest Ansible set you have seen, but it does the job 🙂

Don’t hesitate to raise issues, or contact me if you want, and if you find it useful, say hello !

https://github.com/nicolas-san/drupal_8_simple_dev_env

Vagrant snapshot, safety first

When you want to test something, in my case it’s the upgrade to php7.3, I encourage you do use the really simple snapshot function of Vagrant.

First, see the VMs of your system:

vagrant global-status
id       name                        provider   state    directory                                              
--------------------------------------------------------------------------------------------------------------- 
0313ed0  default                     virtualbox poweroff /var/www/phpStorm/blog.xXXXx.com/trellis              
1407963  default                     virtualbox poweroff /var/www/phpStorm/xxx/xxxxx-com/trellis       
3879b77  default                     virtualbox running  /var/www/phpStorm/xxx-dev/xxxxxx-com/trellis   
ac34ac8  default                     virtualbox poweroff /var/www/phpStorm/xxx-dev                              
b292e76  default                     virtualbox running  /var/www/phpStorm/xxxxxxxx-com/trellis           
3fb0c96  default                     virtualbox running  /var/www/phpStorm/vagrant/xxxx                    
6e6b27f  default                     virtualbox running  /var/www/phpStorm/xxxxxx                               
2b7849a  poc-xxxxxx               virtualbox running  /var/www/phpStorm/laravel/projects/poc_xxx       
a8f3ca7  consume-channel-xxxxxx-api virtualbox running  /var/www/phpStorm/laravel/consume_channel_xxxxxx_api 

Some of these VMs are old, and not needed anymore, before I continue, I prefer to do some clean up first.

vagrant global-status --prune
id       name                        provider   state   directory                                              
-------------------------------------------------------------------------------------------------------------- 
6e6b27f  default                     virtualbox running /var/www/phpStorm/xxxxx                               
a8f3ca7  consume-channel-xxxxx-api virtualbox running /var/www/phpStorm/laravel/consume_channel_xxxxx_api 

A lot better ! Next the snapshot:

vagrant snapshot save 6e6b27f 2019_08_20_save_xxx_before_php_7_3
==> default: Snapshotting the machine as '2019_08_20_save_xxx_before_php_7_3'... 
==> default: Snapshot saved! You can restore the snapshot at any time by 
==> default: using `vagrant snapshot restore`. You can delete it using                                                                
==> default: `vagrant snapshot delete`.  

Really easy ! Last paranoid check before the upgrade:

vagrant snapshot list 
2019_08_20_save_xxx_before_php_7_3

Now I can break it all and restore my snapshot !

happy experiments

remplacer php7.0 par php 7.1/7.2/7.3 debian 9 (Stretch)

Il y a un dépôt pour les version récentes de php: https://packages.sury.org/

Pour l’installer regardons le README.txt, c’est une bonne habitude à prendre: https://packages.sury.org/php/README.txt

Il faut installer 3 packages:

  • apt-transport-https
  • lsb-release
  • ca-certificates

Avant d’installer, on peut vérifier si ils sont déjà présents:

dpkg --list apt-transport-https lsb-release ca-certificates

ou:

apt list --installed | grep "apt-transport-https"
apt list --installed | grep "lsb-release"
apt list --installed | grep "ca-certificates"

Si ça n’est pas installé:

apt install apt-transport-https lsb-release ca-certificates
(j'utilise apt au lieu de apt-get, un article en anglais sur les différences: https://itsfoss.com/apt-vs-apt-get-difference/)

On récupère la clef GPG du dépôt:

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

On mets le dépôt dans un fichier de sources de apt:

sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Mise à jour de la liste des paquets disponibles

apt update

D’abord je fais la liste des packages php déjà installés (pour avoir un historique de parano):

apt list --installed php* > php_packages_installed

Pour installer la dernière version de PHP il suffit de faire

apt upgrade

J’aime bien enlever ce qui n’est pas nécessaire:

apt remove php7.0* libapache2-mod-php7.0

Pour installer une version spécifique de PHP disons 7.2, je récupère tous les packages avec php7.0 dans leur noms depuis ma liste précédemment sauvegardée:

cat php_packages_installed | grep "php7.0" > php_packages_installed_php7_0
sed -i 's/php7.0/php7.2/g' php_packages_installed_php7_0
xargs -L1 -a php_packages_installed_php7_0  echo | cut -d/ -f1 > php_packages_to_install

Avant de faire l’installation des packages, une petite lecture de https://www.php.net/manual/en/migration71.deprecated.php
Par exemple, j’avais mcrypt installé …

sed -i '/php7.2-mcrypt/d' php_packages_to_install

Pour installer:

apt install $(xargs -a php_packages_to_install echo )

J’imagine qu’il est possible d’optimiser mes commandes bash, ou bien une option de conf de APT pour sélectionner php7.2, mais c’est comme ça que j’ai procédé pour tester dans ma vm.

Les commentaires/améliorations/informations sont les bienvenus !

ps: si php ne fonctionne pas vous pouvez essayer de faire :

dpkg-reconfigure libapache2-mod-php7.3