Maison >développement back-end >tutoriel php >Processus de contrôle et de publication de la version du projet PHP
Cet article concerne le contrôle de version et le processus de publication du projet PHP. Les amis qui en ont besoin peuvent y jeter un œil
1. [Local==> L'entrepôt est terminé, GIT déclenche le script hook du serveur de test pour extraire automatiquement le code de mise à jour :
Serveur de test
Principe d'exécution
Script PHP : /home/git/hook/www.xxx.com.php, Remarque : doit être présent Supprimez le système dans Disable_function dans php.ini (c'est-à-dire activez l'autorisation d'exécution du script)
Lorsque git push est déclenché, le POST de l'entrepôt est déclenché pour appeler le script PHP . L'URL du script PHP : http://XXX.XXX.COM/hook/www.xxx.com.php
Le PHP. Le script retarde l'exécution du script SHELL. Implémentez l'extraction du code depuis l'entrepôt
Consultez l'URL et le protocole distants actuels : git remote -v
Test extraire manuellement le code
www.xxx.com.sh, note : N'oubliez pas d'exécuter l'autorisation chmod a+x *.sh
https://git.oschina.net
http://XXX.XXX.COM/hook/www.xxx.com.php
https://git.oschina.net/echobar/www.xxx.com.git
Note .gitignore, configuré pour exclure les fichiers et répertoires qui n'ont pas besoin d'être synchronisés
Ajouter/modifier des fichiers
git add .
git commit -m test
git pull
git rebase master
git push
sudo -Hu www git config --global user.name "echobar"
sudo -Hu www git config --global user.email "15516026@qq.com" # Veuillez contacter oschina pour un e-mail. Conforme à la
configuration de git
git soumettre le code local à l'entrepôt
Voir sur oschina Si le fichier du projet est mis à jour avec succès
Vérifiez si le code du serveur de test est mis à jour S'il est mis à jour, cela signifie que la configuration est réussie et si elle réussit parfois ; échoue parfois, il peut s'agir d'un problème de retard dans l'appel du hook et doit être modifié. Le temps de retard du script PHP, ou exécutez manuellement le code suivant pour extraire : http://xxx.xxx.com/hook/www. xxx.com.php?HTTP_USER_AGENT=git-oschina-hook
2. [Serveur de test ==> Serveur officiel] Écrivez un. script de synchronisation à distance et exécutez-le manuellement lors de la publication. Méthode de synchronisation : RSYNC+SSH
ssh
. yum -y install ssh
Serveur de test Générer une clé publique : ssh-keygen
Copiez la clé publique du serveur de test vers le serveur officiel service : ssh-copy-id -i ~/.ssh/id_rsa.pub IP du serveur cible (besoin de saisir le mot de passe du serveur distant)
rsync
yum -y install rsync
Créer un script de synchronisation : touch /home/rsync_www.xxx.com_from_test_to_prod.sh, Remarque : --exclude-from exclure la liste des fichiers, faites attention à exclure les fichiers qui n'ont pas besoin d'être synchronisés
#!/bin/sh
# sauvegarde
ssh root@10.10.10.10 "/bin/sh /root/scripts/ backup_html.sh"
# rsync
rsync - rlptDvz --exclude-from=exclude_www.xxx.com -e ssh /home/www.xxx.com/ root@10.10 .10.10:/home/wwwdata/www.xxx.com
Effectuer la synchronisation du serveur de test vers le serveur officiel (rsync+ssh)
/home/rsync_www.xxx.com_from_test_to_prod.sh
Remarque : Les parties jaunes ci-dessus sont les codes qui doivent être exploités lors de la publication localement sur le serveur de test et du serveur de test vers le serveur officiel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!