In diesem Artikel geht es um die Versionskontrolle und den Veröffentlichungsprozess von PHP-Projekten. Freunde, die es brauchen, können einen Blick darauf werfen
1. [Local==> GIT-Testserver] Bei der Übermittlung an den GIT Wenn das Warehouse abgeschlossen ist, löst GIT das Testserver-Hook-Skript aus, um den Aktualisierungscode automatisch abzurufen:
, Hinweis: Muss vorhanden sein Löschen Sie das System in „disable_function“ in php.ini (d. h. aktivieren Sie die Berechtigung zur Skriptausführung).
$params = $_GET + $_POST + $_SERVER;
if (isset($params['HTTP_USER_AGENT'] ) && $params['HTTP_USER_AGENT'] == 'git-oschina-hook') {
sleep(10);
$cmd = "/home/git/hook/www. xxx.com.sh";
system($cmd, $ rs);
}
, Hinweis: Vergessen Sie nicht, die Berechtigung chmod a+x *.sh auszuführen
cd /home/www.xxx.com && git pull
#log
echo "`date +%Y%m%d_%H %M%S`,Pull-Code erfolgreich[Master]" >> "/home/git /hook/log/pull_www.xxx.com_`date +%Y%m`.log"
Hinweis: .gitignore ist so eingestellt, dass Dateien und Verzeichnisse ausgeschlossen werden, die nicht synchronisiert werden müssen
Dateien hinzufügen/ändern
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" # Bitte kontaktieren Sie oschina für E-Mails im Einklang mit
Git-Konfiguration
git übermittelt lokalen Code an das Lager
Auf oschina anzeigen, ob die Projektdatei erfolgreich aktualisiert wurde
Überprüfen Sie, ob der Testservercode aktualisiert wurde. Wenn er aktualisiert wird, bedeutet dies, dass die Konfiguration erfolgreich ist Wenn es manchmal fehlschlägt, liegt möglicherweise ein Verzögerungsproblem beim Hook-Aufruf vor und Sie müssen die Verzögerungszeit des PHP-Skripts ändern oder den folgenden Code manuell ausführen, um ihn abzurufen: http://xxx.xxx.com/hook/www. xxx.com.php?HTTP_USER_AGENT=git-oschina-hook
2. [Testserver ==> Offizieller Server] Schreiben Sie a Remote-Synchronisierungsskript und führen Sie es beim Veröffentlichen manuell aus. Synchronisierungsmethode: RSYNC+SSH
ssh
yum -y install ssh
Testserver Generieren Sie einen öffentlichen Schlüssel: ssh-keygen
Kopieren Sie den öffentlichen Schlüssel vom Testserver auf den offiziellen Dienst: ssh-copy-id -i ~/.ssh/id_rsa.pub Zielserver-IP (Remote-Server-Passwort muss eingegeben werden)
rsync
yum -y install rsync
Synchronisationsskript erstellen: Berühren Sie /home/rsync_www.xxx.com_from_test_to_prod.sh, Hinweis: --exclude-from Liste der auszuschließenden Dateien, achten Sie darauf, Dateien auszuschließen, die nicht synchronisiert werden müssen
#!/bin/sh
# backup
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
Synchronisierung vom Testserver zum offiziellen Server durchführen (rsync+ssh)
/home/rsync_www.xxx.com_from_test_to_prod.sh
Hinweis: Die gelben Teile oben sind die Codes die beim lokalen Veröffentlichen auf dem Testserver und vom Testserver auf dem offiziellen Server bedient werden müssen.
Das obige ist der detaillierte Inhalt vonVersionskontrolle und Freigabeprozess für PHP-Projekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!