Il y a un peu de philosophie personnelle qui entre dans un flux de travail de déploiement. Ce n'est pas une question facile de répondre sans connaître votre expérience avec les serveurs et le contrôle de version, votre système d'exploitation, l'hébergement, l'expérience client et la culture technique, etc ...
- Voici une question similaire qui a beaucoup d'explications.
- Pour le déploiement de contenu, vous pouvez consulter le plug-in RAMP de Crowd Favorite .
- WP Hackers est un excellent sujet pour trouver de bonnes informations sur les déploiements.
Personnellement, je m'assure de ne jamais coder en dur des URL absolues dans mes thèmes. Utilisez bloginfo () ou codez des URL relatives. J'utilise beaucoup de conditions dans mon fichier wp-config.php. Voici une version vanille de mes modifications wp-config.
switch($_SERVER['SERVER_NAME']){
case 'dev.yourdomain.com':
$db_host = '';
$db_pass = '';
//define debugging
break;
case 'stage.yourdomain.com':
$db_host = '';
$db_pass = '';
break;
default: //Live
$db_host = '';
$db_pass = '';
}
define('DB_PASSWORD', $db_pass);
define('DB_HOST', $db_host);
//You could also set this as a variable above
define('WP_HOME', 'http://'.$_SERVER['SERVER_NAME']));
define('WP_SITEURL', 'http://'.$_SERVER['SERVER_NAME']));
Je travaille sur de nombreux sites qui suivent
- local (piratage personnel :) sur le serveur Web de mon ordinateur portable)>
- dev (test sur serveur client)>
- étape (source stable pour QA - édition de contenu)>
- production (site en direct)
Enfin, je vous suggère d'utiliser un outil de versioning pour vous aider dans vos déploiements tels que GIT ou SVN. Il facilite considérablement le processus et maintient l'intégrité de la source entre les environnements. S'engager dans votre section locale est facilement mis à jour via la ligne de commande sur scène et en production. Lors de la découverte, il est préférable de définir le contrôle de version que vous et le client utiliserez dès le départ si des développeurs travaillent sur le projet. J'utilise personnellement GIT pour mon contrôle de version. Cependant, si un client utilise SVN, je fais un mélange des deux sur mon local donc je maintiens un repo pour moi tout en m'engageant à leur repo.
Nous avons rarement des problèmes de migration d'un environnement à un autre. Nous faisons une recherche / remplacement dans la base de données pour changer l'URL en conséquence pour les médias intégrés, etc ...