Heim  >  Artikel  >  Backend-Entwicklung  >  Versionskontrolle und Freigabeprozess für PHP-Projekte

Versionskontrolle und Freigabeprozess für PHP-Projekte

不言
不言Original
2018-04-26 14:39:074770Durchsuche

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:

    Testserver
    1. Ausführungsprinzip
    2. PHP-Skript: /home/git/hook/
    3. www.xxx.com.php

      , Hinweis: Muss vorhanden sein Löschen Sie das System in „disable_function“ in php.ini (d. h. aktivieren Sie die Berechtigung zur Skriptausführung).

    4. Wenn Git Push ausgelöst wird, wird der Warehouse-POST ausgelöst, um das PHP-Skript aufzurufen . Die URL des PHP-Skripts:
    5. http://XXX.XXX.COM/hook/www.xxx.com.php

    6. Das PHP Das Skript verzögert dann die Ausführung des SHELL-Skripts. Implementieren Sie das Abrufen von Code aus dem Warehouse

    7. Zeigen Sie die aktuelle Remote-URL und das Protokoll an: git remote -v
    8. Kopieren Sie den Git des Projekts in die SSH-Adresse von Oschina: git@git.oschina.net:echobar/test.git
    9. Wechseln Sie zum SSH-Protokoll und zur Adresse: git remote set-url origin git@git.oschina.net: echobar/test.git
    10. git pull
    11. Erstellen Sie ein Home-Verzeichnis für das www Benutzer (der öffentliche Schlüssel und der GIT-Besitzer sind alle auf www eingestellt, andernfalls kann es sein, dass die Berechtigungen nicht ausreichen, um das SHELL-Skript automatisch auszuführen)
    12. Öffentlichen Schlüssel generieren
    13. Sehen Sie sich den öffentlichen Schlüssel an: cat ~/.ssh/id_rsa. pub
    14. Kopieren Sie ihn in die öffentlichen Schlüsseleinstellungen von git.oschina.net
    15. mkdir /home/www && chown -R www: www /home/www
    16. sudo -u www ssh-keygen -t rsa -C "15516026@qq. com"
    17. yum - y insall git
    18. cd /home
    19. sudo -u www git clone git@git.oschina.net:echobar/test.git
    20. Installieren Sie Git und klonen Sie das Projekt mit www-Benutzer
    21. Konfigurieren Sie das öffentlicher Schlüssel
    22. Testen Sie den Code manuell.

    23. Schreiben Sie ein Hook-Skript, um den GIT-Code abzurufen

    $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);

    }

      SHELL-Skript: /home/git/hook /
    1. www.xxx.com.sh

      , Hinweis: Vergessen Sie nicht, die Berechtigung chmod a+x *.sh auszuführen

    2. # !/bin/bash

    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"

      GIT-Warehouse-Hosting-Code:
    1. https://git.oschina.net

      1. Erstellen Sie ein privates Projekt www.xxx.com
      2. Setzen Sie die Webhook-Adresse auf die PHP-Skript-URL des oben genannten Testservers:
      3. http://XXX.XXX.COM/hook/www.xxx.com.php

      4. Fügen Sie den öffentlichen Schlüssel zum Projekt oder zu den persönlichen Benutzereinstellungen hinzu (empfohlen für Einzelpersonen. In den Benutzereinstellungen können alle Projekte global denselben öffentlichen Schlüssel verwenden)
      Lokal
      1. Git-Klon
      2. https://git.oschina.net/echobar/www.xxx.com.git

      3. Hinweis: .gitignore ist so eingestellt, dass Dateien und Verzeichnisse ausgeschlossen werden, die nicht synchronisiert werden müssen

      4. Dateien hinzufügen/ändern

      5. git add .

      6. git commit -m test

      7. Git Pull

      8. Git Rebase Master

      9. Git Push

      10. sudo -Hu www git config --global user.name "echobar"

      11. sudo -Hu www git config --global user.email "15516026@qq.com" # Bitte kontaktieren Sie oschina für E-Mails im Einklang mit

      12. Git-Konfiguration

      13. git übermittelt lokalen Code an das Lager

      14. Auf oschina anzeigen, ob die Projektdatei erfolgreich aktualisiert wurde

      15. Ü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

    1. ssh

      1. yum -y install ssh

      2. Testserver Generieren Sie einen öffentlichen Schlüssel: ssh-keygen

      3. 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)

    2. rsync

      1. yum -y install rsync

    3. 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

    1. Synchronisierung vom Testserver zum offiziellen Server durchführen (rsync+ssh)

    1. /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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn