Retour : Page Principale > sommaire aide > sommaire aide-mémos


À RÉÉCRIRE - cette page mérite d'être conservée, à condition de la mettre à jour

Voir : https://github.com/telabotanica/vvv-wordpress-tela-botanica

Utilisation de VVV


On va voir comment utiliser VVV et WordMove pour installer facilement un environnement de dev WordPress local identique avec nos environnements de test/preprod

Utilisation basique


Varying-Vagrant-Vagrants : An open source Vagrant configuration for developing with Wordpress

https://varyingvagrantvagrants.org
https://github.com/Varying-Vagrant-Vagrants/VVV

Pour commencer il faut au préalablement installer Virtualbox et Vagrant.
Vagrant doit être dans la version la plus récente disponible et Virtualbox dans la version la plus récente supportée par Vagrant.
Vagrant : https://www.vagrantup.com/downloads.html
Virtualbox : https://www.virtualbox.org/wiki/Linux_Downloads#Debian-basedLinuxdistributions puis "sudo apt install virtualbox virtualbox-qt virtualbox-dkms"

Les plugins hostsupdater, triggers et vbguest sont vivement conseillés :
vagrant plugin install vagrant-hostsupdater vagrant-triggers vagrant-vbguest


Cloner le dépôt de VVV :
git clone -b master git://github.com/Varying-Vagrant-Vagrants/VVV.git wordpress-tela-VVV


Créer un Wordpress perso


VVV est livré avec trois Wordpress vierges qui ne nous servent à rien, on va créer le notre en créant le fichier vvv-custom.yml comme dans cet exemple :

#wordpress-tela-VVV/vvv.custom.yml
sites:
  tela-botanica:
    repo: https://github.com/telabotanica/vvv-wordpress-tela-botanica.git
    hosts:
      - local.tela-botanica.dev


Puis on va demander Ă  Vagrant de lancer la machine virtuelle :
# depuis le dossier de wordpress-tela-VVV
vagrant up


La page d'accueil de VVV est ensuite dispo : http://vvv.dev (ou http://vvv.test)

Une fois la VM lancée notre Wordpress custom devrait être installé dans "/srv/www/tela-botanica/public_html".

Il faut ensuite éditer /srv/www/tela-botanica/public_html/wp-config.php pour changer le préfixe de table :
(19/10/2017 : car le préfixe est vide actuellement sur preprod/pretest/test, faudrait le remettre à la valeur par défaut "wp_" un de ces jours)
$table_prefix = '';


Installer Wordmove dans la VM


On se connecte Ă  la VM puis on va y lancer l'installation :
vagrant ssh


Ne pas utiliser gem et rvm en sudo.
Voir les cas d'erreur plus bas.
gem install wordmove


Lancer Wordmove


Il faut installer sshpass notamment pour pouvoir récupérer les uploads :
sudo apt install sshpass


Il faut également se connecter une première fois à Aphyllanthe pour que SSH connaisse le host avant la procédure de Wordmove
ssh beta@10.99.34.5


Pour copier test ou preprod sur notre env local il faut utiliser Wordmove tel qu'expliqué dans la Doc (particulièrement cas n°3)
Voir l'exemple de movefile.yml en bas de cette page (il manque juste les mots de passe).

Une fois que le movefile.yml est Ă©crit on peut lancer Wordmove :
# depuis le dossier où est présent le movefile.yml
wordmove pull -e preprod --all --no-uploads -s
# pour lancer une simulation de pull, et sans le "-s" si tout s'est bien déroulé. Le "--no-uploads" c'est pour éviter d'attendre le téléchargement de plusieurs centaines de Mo


Activer le HTTPS

Voir : https://github.com/Varying-Vagrant-Vagrants/VVV/wiki/Site-specific-self-signed-SSL-certificates
https://deliciousbrains.com/https-locally-without-browser-privacy-errors/

Problèmes connus


  • Installation de Wordmove
$ gem install wordmove
...
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/local/rvm/gems/ruby-2.4.1 directory.


Donc on lance ça pour corriger :
sudo chmod 777 -R /usr/local/rvm


Solution propre mais inutile en dev :
RVM n'est pas correctement installé, donc pour faire ça proprement dans un env de prod faudrait le réinstaller pour éviter ce problème de droits :
rvm implode
sudo rm -rf /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm

Puis se déconnecter de la session et de reconnecter pour réinstaller rvm (sans sudo), voir https://rvm.io/
Exemple :
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable


Si il crie un truc genre :
RVM is not a function, selecting rubies with 'rvm use ...' will not work.

Alors c'est qu'on a oublié de sourcer les scripts :
source /home/vagrant/.rvm/scripts/rvm


  • Utilisation de Wordmove
Problème de movefile.yml, surement mal formaté, problème de guillemets, toussa
in `parse': (<unknown>): did not find expected key while parsing a block mapping at line X column X (Psych::SyntaxError)


movefile.yml


Ă€ copier dans "/srv/www/tela-botanica/public_html/movefile.yml"

global:
  sql_adapter: "wpcli"

local:
  vhost: "http://local.tela-botanica.dev"
  wordpress_path: "/srv/www/tela-botanica/public_html" # use an absolute path here

  database:
    name: "wordpress_tb"
    user: "wp"
    password: "wp"
    host: "localhost"

preprod:
  vhost: "https://beta.tela-botanica.org/preprod"
  wordpress_path: "/home/beta/www/preprod" # use an absolute path here

  database:
    name: "wordpress"
    user: "wordpress"
    password: ""
    host: "localhost"

  ssh:
    host: "10.99.34.5"
    user: "beta"
    password: "" # password is optional, will use public keys if available.
    port: 22 # Port is optional
    rsync_options: "--verbose" # Additional rsync options, optional

  exclude:
    #- ".git/"
    - ".htaccess"
    #- ".gitignore"
    - ".sass-cache/"
    - "node_modules/"
    - "bin/"
    - "tmp/*"
    - "Gemfile*"
    - "movefile.yml"
    - "wp-config.php"
    - "wp-content/*.sql.gz"

test:
  vhost: "https://beta.tela-botanica.org/test"
  wordpress_path: "/home/beta/www/test" # use an absolute path here

  database:
    name: "wordpress_test"
    user: "wordpress"
    password: ""
    host: "localhost"

  ssh:
    host: "10.99.34.5"
    user: "beta"
    password: "" # password is optional, will use public keys if available.
    port: 22 # Port is optional
    rsync_options: "--verbose" # Additional rsync options, optional

  exclude:
    #- ".git/"
    - ".htaccess"
    #- ".gitignore"
    - ".sass-cache/"
    - "node_modules/"
    - "bin/"
    - "tmp/*"
    - "Gemfile*"
    - "movefile.yml"
    - "wp-config.php"
    - "wp-content/*.sql.gz"