Si vous aidez sur un projet déjà démarré, allez directement à Aider sur un projet Wordpress
- Git
- PHP >= 5.4 (pour Composer)
- Ruby >= 1.9 (pour Capistrano, seulement pour faire un déploiement)
Si vous avez déjà Composer, passez à l'étape suivante Installation et utilisation
Pour Mac: utilisez les commandes suivantes :
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Pour plus d'information Get Composer Mac
Pour Windows: Téléchargez et installez Composer
Pour plus d'information Get Composer Windows
Note: Pour faciliter la gestion du contenu et de la database Wordpress, nous vous conseillons de faire une demande pour le setup d'un serveur de développement ainsi qu'une database pour votre projet. Cela évitera d'avoir à exporter et importer des bases de données sans cesse!
-
Dans votre terminal, assurez-vous d'être au path root de votre environnement local, exemple :
/Applications/MAMP/htdocs/
. -
Utilisez la commande suivante :
composer create-project o2web/bedrock --stability=dev --repository-url=https://satis.o2web.ca/ <nom-du-projet>
Remplacez
<nom-du-projet>
, et gardez l'espace qui le précéde. -
Répondre "yes" aux questions "Generate salts and append to .env file?" et "Do you want to remove the existing VCS (.git, .svn..) history?"
-
Ouvrez
.env
( situé à la racine de votre nouveau projet ) à l'aide de votre éditeur de texte préféré et insérez les informations de votre database local ou remote.DB_NAME
- Nom de la databaseDB_USER
- User de la databaseDB_PASSWORD
- Mot de passe de la databaseDB_HOST
- Le host de la databaseWP_ENV
- Spécifier l'environment (development
,staging
,production
)WP_HOME
- URL de votre site (http://example.com)WP_SITEURL
- URL vers Wordpress (http://example.com/wp)
-
Configurez votre serveur Apache (MAMP ou XAMPP) pour que le root pointe sur exemple :
/Applications/MAMP/htdocs/<nom-du-projet>/web/
-
Allez sur votre adresse locale, exemple:
http://localhost:8888
, configurez le Wordpress! -
Et voilà!
Vous avez cloné le dossier des assets, mais quelques fichiers ne sont toujours pas téléchargés (les plugins js, par exemple).
-
À l'aide du terminal, rendez-vous à l'intérieur du dossier
_gulp
. Dans un projet Bedrock, vous trouverez le dossier ici ->web/app/themes/<votre theme>/assets/_gulp
-
sh setup.sh
pour installer gulp et les autres dépendances en mode Global. -
gulp
pour démarrer Gulp.
À noter que les erreurs suivantes sont normales ... elles signifient que le module n'existe pas en version globale, et conséquemment, il sera installé.
npm ERR! code 1
gulp-rename not found.
Installing gulp-rename@^1
Si vous avez modifié la liste des plugins dans le fichier _gulp/requireJS.json
, vous devrez rouler la commande suivante avant de pouvoir les utiliser : sh setup.sh bower
Si vous avez déjà des dépendances Nodes installés sur votre poste, et que vous voulez toutes les mettre à jour en même temps, utilisez la commande sh setup.sh update
Si vous désirez désinstaller toutes les dépendances d'un coup, utilisez la commande sh setup.sh uninstall
Si vous avez une erreur de permissions, vous pouvez faire l'installation en mode Super User avec la commande : sudo sh setup.sh
. Il vous faudra alors entrer le mot de passe de votre utilisateur sur votre poste.
Un simple rappel qu'il serait maintenant temps de créer votre projet sur Git et d'y mettre vos fichiers de base avant de commencer votre développement.
- Créez votre projet sur Gitlab
- Faites les commandes suivantes dans votre terminal à la racine de votre projet :
-
git init
-
git checkout -b develop
Il est conseillé d'utiliser une branche "develop" pour votre développement et non "master".
-
git commit -m "first commit" -a
-
git remote add origin [email protected]:<votre-nom>/<nom-du-projet>.git
Cette ligne vous est fourni dans les étapes suivant la création de votre projet.
-
git push -u origin develop
-
Par défaut, Wordpress est installé en anglais. Si vous désirez avoir l'admin en une autre langue(français par exemple), juste a changer la variable
define('WPLANG', '');
dans le fichier config/application.php
par:
define('WPLANG', 'fr');
Dans le cas très improbable où vous auriez a installer wordpress dans une autre langue, vous pouvez ajouter
"koodimonni-language/<votre code de langue ici>": "dev-master",
au packages requis dans composer. La liste disponible est ici: http://languages.koodimonni.fi/
Les plugins que nous utilisons couramment sont déjà inclus dans le composer.json, Ils seront donc déjà installés dans votre projets. Ceci inclus Advanced Custom field et toutes ses extensions. Pour installer un plugin wordpress gratuit (disponible dans le plugin directory), procédez comme suit:
- Trouver le nom du package / plugin qu'on veut installer en se référant au wordpress plugin directory.
- Trouver le package associé sur Wp-Packagist
- Ajouter le plugin au fichier composer.json
- Lancer la mise à jour avec la commande
composer update
Sur le site de wordpress: Intuitive Custom Post Order
Sur le le repo packagist: http://plugins.svn.wordpress.org/intuitive-custom-post-order/
Utiliserait la commande suivante dans le terminal pour l'ajouter au projet :
composer require wpackagist-plugin/intuitive-custom-post-order:dev-trunk
Par défaut, les plugins vont avoir une version courante, considérée comme la version la plus récente, appelée dev-trunk
.
Pour verrouiller l'installation à une version particulière, vous pouvez utiliser les tags de version tels qu'il apparaissent dans le changelog du plugin de wordpress.
Seulement les tags numériques sont valides:
- 3.9.x-dev (non valide)
- 3.9.2 (valide)
Ajouter les lignes suivantes dans composer.json, dans la section repositories.
{
"type": "package",
"package": {
"name": <nom-du-plugin>,
"version": <version-du-plugin>,
"type": "wordpress-plugin",
"dist": {
"type": "zip",
"url": <url-du-zip-du-plugin>
},
"require" : {
"composer/installers": "~1.0"
}
}
}
Et dans la section require:
<nom-du-plugin>: <version-du-plugin>
Note : Ceci est pour faire une installation local seulement.
- Dans votre terminal, assurez-vous d'être au path root de votre environnement local, exemple :
/Applications/MAMP/htdocs/
. - Git clone du projet sur lequel vous devez aider
[email protected]:<nom-du-master>/<nom-du-projet>.git
- Déplacez-vous au root du projet
cd <nom-du-projet>
- Utilisez la commande suivante:
composer run-script post-root-package-install
- Utilisez la commande suivante:
composer install
- Ouvrez
.env
( qui se situe au root du projet ) à l'aide de votre éditeur de texte et insérez les informations de database local ou remote.DB_NAME
- Nom de la databaseDB_USER
- User de la databaseDB_PASSWORD
- Mot de passe de la databaseDB_HOST
- Le host de la databaseWP_ENV
- Spécifier l'environment (development
,staging
,production
)WP_HOME
- URL de votre site (http://example.com)WP_SITEURL
- URL vers Wordpress (http://example.com/wp)
- Configurez votre serveur Apache (MAMP ou XAMPP) pour que le root pointe sur exemple :
/Applications/MAMP/htdocs/<nom-du-projet>/web/
Gems requis:
- capistrano (> 3.2.0)
- capistrano-composer
Ils peuvent être installés à l'aide de la commande : gem install <nom-du-gem>
mais nous recommandons d'utiliser Bundler. Bundler est simplement l'équivalent Ruby de Composer. Tout comme Composer gère les dépendances/packages PHP, Bundler gère les dépendances/gems Ruby. Bundler est lui même un Gem et peut être installé avec la commande : gem install bundler
(sudo peut être requis).
Le Gemfile
au root du repo specifie les Gems requises (au même titre que composer.json
). Une fois Bundler installé, exécutez
bundle install
pour installer le Gem dans le Gemfile
. En utilisant Bundler, vous devrez prefixer la commande cap
avec bundle exec
comme illustré plus bas (ce qui garanti que vous n'utilisez pas de Gems qui peut provoquer des conflits).
Voir http://capistranorb.com/documentation/getting-started/authentication-and-authorisation/ pour la meilleure façon de mettre en place des authentifications de clé SSH à vos serveurs de sans mot de passe (et sécuriser) le déploiement.
VÉRIFIEZ QUE VOTRE CODE EST COMMITÉ ET PUSHÉ DANS LA BONNE BRANCHE AVANT DE LANCER LE DÉPLOIEMENT
-
Éditez
config/deploy/<stage>.rb
etconfig/deploy.rb
avec les options de connexion et paramètres nécessaires au déploiement. -
Avant votre premier déploiement, utilisez la commande suivante pour créer les dossiers/symlinks nécessaires:
bundle exec cap <stage> deploy:check
Note : Si l'étape 2 retourne une erreur de login, utilisez la commande suivante avant de refaire l'étape 2 à nouveau :
ssh-copy-id <user>@<host>
Alternativement, si vous n'avez pas installé ssh-copy-id, vous pouvez utiliser la commande suivante (qui est équivalente):
cat ~/.ssh/id_rsa.pub | ssh <user>@<host> 'mkdir -p .ssh && touch .ssh/authorized_keys && cat >> .ssh/authorized_keys'
Remplacez
<user>
et<host>
.ATTENTION: n'oubliez pas dans tous les cas de charger votre clef ssh dans l'agent SSH en utilisant la commande suivante si vous éprouvez des problèmes de connexion.
ssh-add
Vous devriez recevoir une réponse indiquant que votre clé ssh a été chargée ex: Identity added: /Users/louim/.ssh/id_rsa (/Users/louim/.ssh/id_rsa)
Vous aurez une erreur spécifiant que le fichier
.env
est manquant, procédez à l'étape 3. Ceci est normal. -
Ajoutez le fichier
.env
(changez les informations nécéssaires une fois le fichier transféré) au dossiershared/
dans le path<deploy_to>
(spécifié dans le fichier deploy.rb) sur le remote server (ex:/home/<user>/<nom-de-l'application>/<stage>/shared/.env
) -
Utilisez la commande de déploiement :
bundle exec cap <stage> deploy
Remplacez
<stage>
par "staging" ou "production" dépendant de votre besoin. -
(Optionnel) Utilisez la commande
bundle exec cap <stage> uploads:sync
Pour synchroniser les fichiers uploadés entre votre version locale et le serveur. Attention, il s'agit d'une synchronisation bidirectionnelle. Pour synchroniser les fichier entre lestaging
et laproduction
, utilisezbundle exec cap staging uploads:sync
pour ramener les uploads puisbundle exec cap production uploads:sync
pour les envoyer en production.
Bedrock Désactive le WP Cron via define('DISABLE_WP_CRON', true)
;. Si vous avez besoin des fonctionalitées du cron de Wordpress (exemple les post qui se publient à une heure précise), vous devez aller ajouter un cronjob dans le crontab manuellement:
*/5 * * * * curl http://<website_url>/wp/wp-cron.php