J'essaie de créer un flux de travail pour deux personnes (actuellement). L'un d'entre eux effectuera un travail thématique et un autre rédigera du contenu. Nous ne sommes pas co-localisés et ne le serons pas de si tôt.
L’écrivain ne connaît pas très bien le contrôle de code source, il serait donc préférable de passer à la phase deux. Je pourrais mettre MAMP sur sa boîte et la faire écrire là-bas. Si telle est l'approche adoptée, quelle est la meilleure façon d'intégrer les deux solutions?
J'ai lu cette question: Comment préparer au mieux le développement d'une équipe bi-côtière composée de deux personnes? , mais comme il a deux ans, je pensais Je verrais si quelque chose a changé.
Attention: pensées très mac/linux/unix à venir. Inclut beaucoup de fu en ligne de commande.
J'aime git. Mark Jaquith a de bonnes suggestions sur k pour un site entier sous contrôle de version en utilisant git et des sous-modules pour le noyau WordPress. Vous pouvez aussi mettre des plugins en tant que sous-modules git.
La partie développeur de l'équipe travaillera localement, testera et validera toutes les modifications, puis transmettra le code dans un référentiel central (Github avec un référentiel privé, Beanstalk, votre serveur, peu importe). À partir de là, vous pouvez utiliser des outils de déploiement (Capistrano, etc.) ou simplement SSH sur votre serveur de développement (voir étape 2) et git pull
dans vos modifications.
Assurez-vous d’ajouter vos répertoires de fichiers statiques (par exemple, les images et le contenu téléchargés) à votre fichier .gitignore
.
Par exemple. Installez WordPress sur un sous-domaine de votre site principal, tel que staging.yoursite.com
ou dev.yoursite.com
. C'est un terrain d'essai pour le nouveau code et l'endroit où votre producteur de contenu travaillera. Je recommanderais de garder cela sur un serveur séparé entièrement.
Donnez à votre produit de contenu un nom d'utilisateur et un mot de passe pour le site intermédiaire et demandez-leur de produire et d'écrire tout le contenu. Vous allez également extraire les dernières modifications de code sur ce site pour les tester ici avant de les transférer sur le site de production (en direct).
À partir du serveur de développement, vous pouvez effectuer une exportation de base de données matérielle et l'utiliser pour mettre tout le contenu sur le site actif.
Sur le serveur de dev:
Shell$ mysqldump -p -u your_dbuser yourdatabase > the-file.sql
Envoyez le fichier sur le serveur de production et ...
Shell$ mysql -p -u your_dbuser your_database < the-file.sql
Il y a une autre alternative avec laquelle j'ai récemment eu le plaisir de travailler et qui s'appelle RAMP by Crowd Favorite . Il déploiera le contenu d'un serveur à un autre pour vous. C'est génial. Hautement recommandé.
Lorsque tout est prêt, envoyez du contenu et du code au site actif.
Dernier mot d'avertissement: l'IP restreint votre site de développement afin que tout le monde ne puisse y accéder.
Évidemment, si vous allez travailler localement, vous souhaitez que votre site local reste synchronisé avec les sites de développement et de production. Tout votre code sera sous contrôle de version, donc ce n'est pas un problème. Mais la synchronisation de la base de données et des fichiers statiques est une autre affaire.
Synchroniser la base de données
Deux options ici.
Exemple de mysqldump
avec un hôte.
Shell$ mysqldump -p -u your_dbuser -h the-externa.db.Host.com the_database > the-file.sql
Vous pouvez également simplement vous connecter à vos hôtes PHPMyAdmin et exporter à partir de là.
Synchronisation de fichiers statiques (images téléchargées, etc.)
rsync
est votre ami. Il vous permet d'effectuer des mises à jour delta d'un emplacement à un autre, y compris via SSH. En d'autres termes, vous pouvez l'utiliser pour télécharger uniquement les fichiers que vous ne possédez pas sur votre ordinateur local.
Exemple:
Shell$ rsync -avze ssh [email protected]:/path/to/static/files/ /path/to/your/local/static/files/
En supposant que votre hôte utilise des mots de passe pour l'accès SSH, vous serez invité à entrer un mot de passe après l'exécution de cette commande. Si votre hôte ne fait pas cela, par exemple. utilise un accès SSH à clé publique sans mot de passe, vous devrez parcourir quelques étapes avec un petit script Shell qui utilise ssh-agent:
#! /bin/bash
eval "$(ssh-agent)" # start ssh-agent user daemon
ssh-add /path/to/your/id_rsa # add your public key
rsync -avze ssh [email protected]:/path/to/static/files/ /path/to/your/local/static/files/
kill $SSH_AGENT_PID # kill the ssh agent
Vous pouvez également utiliser rsync
pour maintenir les fichiers statiques synchronisés entre vos serveurs de production et de développement.
Ce qui précède est la façon dont je travaille avec mes sites personnels et avec les sites de quelques clients.