この記事では、PHP プロジェクトのバージョン管理とリリースのプロセスについて共有します。必要な友人は参照してください。 =>GIT ウェアハウス==>テスト サーバー] GIT ウェアハウスへの送信が完了すると、GIT はテスト サーバーのフック スクリプトをトリガーして更新コードを自動的に PULL します:
テスト サーバー
実行原理
www.xxx.com.php、注: disable_function のシステムを php.ini で削除する必要があります (つまり、スクリプトの実行許可を有効にします)
http://XXX.XXX.COM/hook/www.xxx.com.php
現在のリモート URL とプロトコルを表示します。 oschina: git@git.oschina.net:echobar/test.git
git pull
www ユーザーのホーム ディレクトリ (公開キー) を作成します。すべての GIT 所有者は www に設定されます。そうしないと、アクセス許可が不十分になり、SHELL スクリプトを自動的に実行できなくなります)
GIT コードをプルするフック スクリプトを作成します
}
www.xxx.com.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プライベートプロジェクトを作成しますwww.xxx.com
http://XXX。 XXX.COM/hook/www.xxx.com.php
プロジェクトまたは個人ユーザー設定に公開キーを追加します (個人ユーザー設定が推奨されます。ここでは、すべてのプロジェクトがグローバルに同じ公開キーを使用できます)ローカル
.gitignore に注意して、同期する必要のないファイルとディレクトリを除外するように設定してください
ファイルを追加/変更します
git add .
git コミット - 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" # oschina のメール アドレスと一致させてください
git Configuration
git ローカル コードをウェアハウスに送信してください
oschina で確認してくださいプロジェクト ファイルが正常に更新された場合
Check テスト サーバー コードが更新されているかどうかを確認します。更新されている場合は、設定が成功したことを意味します。成功する場合と失敗する場合は、遅延の問題である可能性があります。フック呼び出し。PHP スクリプトの遅延時間を変更するか、次のコードを手動で実行してプルする必要があります: http://xxx.xxx.com/hook/www.xxx.com.php?HTTP_USER_AGENT=git-oschina-hook
2. [テストサーバー ==> 公式サーバー] リモート同期スクリプトを作成、公開時に手動で実行、同期方法: RSYNC+SSH
ssh
うーん-y ssh
テストサーバーをインストールして公開キーを生成します: ssh-keygen
テストサーバーの公開キーをコピーします 公式サービスに移動します: ssh-copy-id -i ~/.ssh/id_rsa.pub ターゲットサーバーip(リモートサーバーパスワードが必要)
rsync
yum-y installrsync
同期スクリプトを作成: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
テストサーバーから正式サーバーへの同期(rsync+ssh)を実行
/home/rsync_www.xxx.com_from_test_to_prod.sh
注: 上記の黄色の部分は、ローカルでテストサーバーに公開する場合と、テストサーバーから正式サーバーに公開する場合に操作する必要があるコードです 。
以上がPHP プロジェクトのバージョン管理とリリースのプロセスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。