Loading
Maxime Culea
This is a live streamed presentation. You will automatically follow the presenter and see the slide they're currently on.
@MaximeCulea
maximeculea.fr
WordPress & GIT
@MaximeCulea
WC Paris 2016
WordPress & GIT
WC Paris 2016
@MaximeCulea
WordPress & GIT
WC Paris 2016
@MaximeCulea
d. sécurisation
b. sauvegarde
a. historique / comparaison
c. gestion des évolutions
WordPress & GIT
WC Paris 2016
git clean -df
git checkout -- .
@MaximeCulea
WordPress & GIT
WC Paris 2016
@MaximeCulea
c. historique de chaque contributeurs
b. édition en quasi-simultané
a. travail à plusieurs
WordPress & GIT
WC Paris 2016
@MaximeCulea
WordPress & GIT
WC Paris 2016
@MaximeCulea
c. facilité
b. rapidité
a. maîtrise du code
WordPress & GIT
WC Paris 2016
git pull
@MaximeCulea
1. Configuration
2. Utilisation
WordPress & GIT
WC Paris 2016
@MaximeCulea
1. Capistrano
WordPress & GIT
WC Paris 2016
2. WP-Config mutualisé
@MaximeCulea
WordPress & GIT
WC Paris 2016
dev
qualif
preprod
My commit
Outil automatisé de déploiement
Serveur de dev
Serveur de qualif
Serveur de preprod
@MaximeCulea
GIT 1.8 ou supérieur
Ruby
WordPress & GIT
WC Paris 2016
https://github.com/capistrano/capistrano
Prérequis
Outil automatisé de déploiement
Accès SSH
@MaximeCulea
1. Identification du serveur
2. Création d'un "WP-Config dédié"
3. Mutualisation du WP-Config
WordPress & GIT
WC Paris 2016
https://github.com/BeAPI/wp-config-multi-env
@MaximeCulea
WordPress & GIT
WC Paris 2016
touch env_dev
Créer un fichier vierge sur le serveur à la racine du serveur
Avec accès à la racine du serveur
@MaximeCulea
WordPress & GIT
WC Paris 2016
touch env_dev
Créer un fichier vierge sur le serveur à la racine du projet
Sans accès à la racine du serveur
1
2
Ajouter "env_dev" au gitignore
@MaximeCulea
WordPress & GIT
WC Paris 2016
@MaximeCulea
WordPress & GIT
WC Paris 2016
if ( 'dev_server.fr' === $_SERVER['SERVER_NAME'] ) {
if ( is_file( dirname( __FILE__ ) . '/../wp-config-dev.php' ) ) {
require( dirname( __FILE__ ) . '/../wp-config-dev.php' );
} elseif ( is_file( dirname( __FILE__ ) . '/wp-config-dev.php' ) ) {
require( dirname( __FILE__ ) . '/wp-config-dev.php' );
} else {
die( 'No dev config' );
}
return true;
} elseif ( 'qualif_server.fr' === $_SERVER['SERVER_NAME'] ) {
if ( is_file( dirname( __FILE__ ) . '/../wp-config-qualif.php' ) ) {
require( dirname( __FILE__ ) . '/../wp-config-qualif.php' );
} elseif ( is_file( dirname( __FILE__ ) . '/wp-config-qualif.php' ) ) {
require( dirname( __FILE__ ) . '/wp-config-qualif.php' );
} else {
die( 'No qualif config' );
}
return true;
} elseif ( 'preprod_server.fr' === $_SERVER['SERVER_NAME'] ) {
if ( is_file( dirname( __FILE__ ) . '/../wp-config-preprod.php' ) ) {
require( dirname( __FILE__ ) . '/../wp-config-preprod.php' );
} elseif ( is_file( dirname( __FILE__ ) . '/wp-config-preprod.php' ) ) {
require( dirname( __FILE__ ) . '/wp-config-preprod.php' );
} else {
die( 'No preprod config' );
}
return true;
}
Par détection des urls
@MaximeCulea
WordPress & GIT
WC Paris 2016
if ( is_file( dirname( __FILE__ ) . '/../env_dev' ) ) {
if ( is_file( dirname( __FILE__ ) . '/../wp-config-dev.php' ) ) {
require( dirname( __FILE__ ) . '/../wp-config-dev.php' );
} elseif ( is_file( dirname( __FILE__ ) . '/wp-config-dev.php' ) ) {
require( dirname( __FILE__ ) . '/wp-config-dev.php' );
} else {
die( 'No dev config' );
}
return true;
} elseif ( is_file( dirname( __FILE__ ) . '/../env_qualif' ) ) {
if ( is_file( dirname( __FILE__ ) . '/../wp-config-qualif.php' ) ) {
require( dirname( __FILE__ ) . '/../wp-config-qualif.php' );
} elseif ( is_file( dirname( __FILE__ ) . '/wp-config-qualif.php' ) ) {
require( dirname( __FILE__ ) . '/wp-config-qualif.php' );
} else {
die( 'No qualif config' );
}
return true;
} elseif ( is_file( dirname( __FILE__ ) . '/../env_preprod' ) ) {
if ( is_file( dirname( __FILE__ ) . '/../wp-config-preprod.php' ) ) {
require( dirname( __FILE__ ) . '/../wp-config-preprod.php' );
} elseif ( is_file( dirname( __FILE__ ) . '/wp-config-preprod.php' ) ) {
require( dirname( __FILE__ ) . '/wp-config-preprod.php' );
} else {
die( 'No preprod config' );
}
return true;
}
Avec accès à la racine du serveur
@MaximeCulea
WordPress & GIT
WC Paris 2016
if ( is_file( dirname( __FILE__ ) . '/env_dev' ) ) {
if ( is_file( dirname( __FILE__ ) . '/../wp-config-dev.php' ) ) {
require( dirname( __FILE__ ) . '/../wp-config-dev.php' );
} elseif ( is_file( dirname( __FILE__ ) . '/wp-config-dev.php' ) ) {
require( dirname( __FILE__ ) . '/wp-config-dev.php' );
} else {
die( 'No dev config' );
}
return true;
} elseif ( is_file( dirname( __FILE__ ) . '/env_qualif' ) ) {
if ( is_file( dirname( __FILE__ ) . '/../wp-config-qualif.php' ) ) {
require( dirname( __FILE__ ) . '/../wp-config-qualif.php' );
} elseif ( is_file( dirname( __FILE__ ) . '/wp-config-qualif.php' ) ) {
require( dirname( __FILE__ ) . '/wp-config-qualif.php' );
} else {
die( 'No qualif config' );
}
return true;
} elseif ( is_file( dirname( __FILE__ ) . '/env_preprod' ) ) {
if ( is_file( dirname( __FILE__ ) . '/../wp-config-preprod.php' ) ) {
require( dirname( __FILE__ ) . '/../wp-config-preprod.php' );
} elseif ( is_file( dirname( __FILE__ ) . '/wp-config-preprod.php' ) ) {
require( dirname( __FILE__ ) . '/wp-config-preprod.php' );
} else {
die( 'No preprod config' );
}
return true;
}
Sans accès à la racine du serveur
@MaximeCulea
WordPress & GIT
WC Paris 2016
1. La livraison
2. Le déploiement
Métaphore :
Le livreur de pizza à trouvé votre adresse et il sonne à la porte
Vous lui ouvrez la porte, prenez la
ou pas !
pizza et vous le payez
@MaximeCulea
WordPress & GIT
WC Paris 2016
dev
qualif
preprod
My branch
git pull
@MaximeCulea
git checkout qualif
git merge my-branch
git push
WordPress & GIT
WC Paris 2016
Prérequis :
- Accès SSH au serveur
- GIT d'installé
ssh username@hostname
cd public_html
git pull
@MaximeCulea
WordPress & GIT
WC Paris 2016
extension : Revisr
* Gestion GIT
* Backup BDD
@MaximeCulea
WordPress & GIT
WC Paris 2016
A la mano en ligne de commande :
git archive --format=zip -9 1.1.7 > project-full-1-1-7.zip
git archive -o project-diff-1-1-7.zip 1.1.7 $(git diff
--name-only --diff-filter=ACMRT 1.0.1)
git diff --name-status --diff-filter=D 1.0.1 1.1.7
-- > deleted-files-1-1-7.txt
1. Archive entière
2. Archive différentielle
a.
b.
@MaximeCulea
WordPress & GIT
WC Paris 2016
Dploy
Automatiquement avec
@MaximeCulea
Il faut être bien sage ou bien borné, pour ne rien changer à ses pensées.
或睿智过人,或愚昧无知,才能保持自己的思想不被人改变
WordPress & GIT
WC Paris 2016
@MaximeCulea
WordPress & GIT
WC Paris 2016
@MaximeCulea