ホームページ >バックエンド開発 >PHPチュートリアル >PHP プロジェクトのバージョン管理とリリースのプロセス

PHP プロジェクトのバージョン管理とリリースのプロセス

不言
不言オリジナル
2018-04-26 14:39:074823ブラウズ

この記事では、PHP プロジェクトのバージョン管理とリリースのプロセスについて共有します。必要な友人は参照してください。 =>GIT ウェアハウス==>テスト サーバー] GIT ウェアハウスへの送信が完了すると、GIT はテスト サーバーのフック スクリプトをトリガーして更新コードを自動的に PULL します:



テスト サーバー

実行原理

PHP script:/home/git/hook/

www.xxx.com.php、注: disable_function のシステムを php.ini で削除する必要があります (つまり、スクリプトの実行許可を有効にします)

  1. git Push ウェアハウスの POST がトリガーされると、PHP スクリプトが呼び出されます。PHP スクリプトの URL は、

    http://XXX.XXX.COM/hook/www.xxx.com.php

    1. です。 PHP スクリプトは、SHELL スクリプトの実行を遅らせます
    2. 現在のリモート URL とプロトコルを表示します。 oschina: git@git.oschina.net:echobar/test.git

    3. SSH プロトコルとアドレスに変更: git remote set-urlorigin git@git.oschina.net:echobar/test.git
    4. git pull

    5. www ユーザーのホーム ディレクトリ (公開キー) を作成します。すべての GIT 所有者は www に設定されます。そうしないと、アクセス許可が不十分になり、SHELL スクリプトを自動的に実行できなくなります)

    6. 公開キーを生成します
    7. 公開鍵を表示: cat ~/.ssh/id_rsa.pub
    8. git.oschina.net の公開鍵設定にコピーします
    9. mkdir /home/www && chown -R www:www / home/www
    10. sudo -u www ssh-keygen -t rsa -C " 15516026@qq.com"
    11. yum -y insall git
    12. cd /home
    13. sudo -u www git clone git@git.oschina.net:echobar/test.git
    14. gitをインストールし、wwwユーザーを使用してプロジェクトを複製します
    15. 公開鍵を設定します
    16. コードを手動でプルしてテストします

    17. GIT コードをプルするフック スクリプトを作成します

    18. $params = $_GET + $_POST + $_SERVER;

      if (isset($params['HTTP_USER_AGENT']) && $params['HTTP_USER_AGENT'] == 'git-oschina-hook'){
    19. sleep(10);

      $cmd = "/home/git/hook/www.xxx.com.sh";
    20. システム($cmd, $rs);

      }

    21. SHELL script:/home/git/hook/

      www.xxx.com.sh

    22. , 注: パーミッション chmod a+x を実行することを忘れないでください * .sh

#!/bin/bash

cd /home/www.xxx.com && git pull

#log

echo "`date +%Y%m%d_%H%M%S `,Pull code success[Master]" >> "/home/git/hook/log/pull_www.xxx.com_ `date +%Y%m`.log"

GIT ウェアハウス ホスティング コード:

https ://git.oschina.net
  1. プライベートプロジェクトを作成しますwww.xxx.com

Webhookを設定しますアドレスは、上記のテストサーバーのPHPスクリプトURLです:

http://XXX。 XXX.COM/hook/www.xxx.com.php

プロジェクトまたは個人ユーザー設定に公開キーを追加します (個人ユーザー設定が推奨されます。ここでは、すべてのプロジェクトがグローバルに同じ公開キーを使用できます)

  1. ローカル

    1. git clone
    2. https://git.oschina.net/echobar/www.xxx.com.git

    3. .gitignore に注意して、同期する必要のないファイルとディレクトリを除外するように設定してください

    4. ファイルを追加/変更します

    5. git add .

    6. git コミット - 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" # oschina のメール アドレスと一致させてください

    12. git Configuration

    13. git ローカル コードをウェアハウスに送信してください

    14. oschina で確認してくださいプロジェクト ファイルが正常に更新された場合

    15. Check テスト サーバー コードが更新されているかどうかを確認します。更新されている場合は、設定が成功したことを意味します。成功する場合と失敗する場合は、遅延の問題である可能性があります。フック呼び出し。PHP スクリプトの遅延時間を変更するか、次のコードを手動で実行してプルする必要があります: http://xxx.xxx.com/hook/www.xxx.com.php?HTTP_USER_AGENT=git-oschina-hook

2. [テストサーバー ==> 公式サーバー] リモート同期スクリプトを作成、公開時に手動で実行、同期方法: RSYNC+SSH

  1. ssh

    1. うーん-y ssh

    2. テストサーバーをインストールして公開キーを生成します: ssh-keygen

    3. テストサーバーの公開キーをコピーします 公式サービスに移動します: ssh-copy-id -i ~/.ssh/id_rsa.pub ターゲットサーバーip(リモートサーバーパスワードが必要)

  2. rsync

    1. yum-y installrsync

  3. 同期スクリプトを作成:touch /home /rsync_ww.xxx.com_from_test_to_prod.sh、メモ: --exclude-除外ファイルリストから、同期する必要のないファイルを除外することに注意してください

#!/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. テストサーバーから正式サーバーへの同期(rsync+ssh)を実行

  1. /home/rsync_www.xxx.com_from_test_to_prod.sh


注: 上記の黄色の部分は、ローカルでテストサーバーに公開する場合と、テストサーバーから正式サーバーに公開する場合に操作する必要があるコードです​​


以上がPHP プロジェクトのバージョン管理とリリースのプロセスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。