PHP スクリプトの Git 自動デプロイメントを実装する方法
php スクリプトの git 自動デプロイメントを実装する方法: 1. git をインストールする; 2. ウェアハウス コードを複製する; 3. Linux 権限を変更し、設定を変更する; 4. www ユーザーを sudoers に追加する; 5. 生成するキー; 6 、Webhook ドメイン名を入力し、PHP スクリプトをアップロードします。
この記事の動作環境: linux5.9.8 システム、Git バージョン 2.30.0、DELL G3 コンピューター
git 自動化デプロイメント php スクリプト 実装方法?
git php は Webhook 自動化スクリプトをデプロイしてコード同期を実現します
##この記事では、コード同期を実現するための git php デプロイ Webhook 自動化スクリプトを紹介します。 Webhook 自動デプロイメントを使用した Git は高度なテクノロジーではありませんが、開発には多くの回り道がありました。初めての展開、主に私は Linux の初心者だと考えられています。この記事では、間違いやすい問題と遭遇する落とし穴について記録します。
準備 アクセス可能な Web ドメイン名とサーバー側を展開するlnmp 環境の php スクリプトウェアハウス コード クラウド gitee
まず gitee コード クラウド上にウェアハウスを作成します
ウェアハウスとローカルで通信するための ssh プロトコル 通信には、ローカル コンピューターは Windows です。ssh 公開キーの生成方法はここでは紹介しません。Linux
yum install git
2. ウェアハウス コードのクローンを作成します。「ssh プロトコルを使用する必要があり、残りは ssh に基づいていることに注意してください。>>
git initgit clone git@gitee.com:zhuyanbin/HiAdmin.git
3. Linux 権限を変更し、構成を変更します
Webhook は外部アクセスであることをサーバーに通知するため、ここでの管理者ユーザーはデフォルトで www ユーザーになります。したがって、www には十分な権限が与えられている必要があります。vim /etc/passwd 添加下面的一行 www:x:1001:1001::/home/www:/bin/bash
1001 はユーザー グループの ID です。ユーザー www.
cat /etc/group
の ID を表示するには、次のコマンドを実行します。www ユーザーを sudoers に追加し、パスワードなしで実行します。shell
#(1)現在のユーザーに sudoers への書き込み権限を追加します。
chmod u+w /etc/sudoers
#(2)sudoers の編集
vim /etc/sudoers
#(3)「どこでも root が任意のコマンドを実行できるようにする」を検索し、root ユーザーの対応する行の下に次の内容を書き込みます。
www ALL=(ALL) NOPASSWD:/usr/bin/git
chmod u-w /etc/sudoers
公開キーのキーを生成
mkdir -p /home/www/.ssh
chown -R www.www /home/www/.ssh
ssh-keygen -t rsa
cat /home/www/.ssh/id_rsa.pub
https://gitee.com/profile/sshkeys
補足: gitee が公開キーを入力する場所は 2 つあります。1 つはウェアハウスの公開キーです。ウェアハウスの公開キーを入力すると、サーバーの Git 権限はプル権限のみになり、もう 1 つは公開権限になります。アカウントのキー。キー、個人アカウントの公開キーを入力すると、プル、プッシュ、その他の権限が与えられます。個人アカウントの公開キーはここで直接使用します
5. 最後に Webhook ドメイン名を入力します
# Webhook 通知アドレスのドメイン名を入力します (パスワードの設定は空です。後で PHP でのパスワード検証はありません。セキュリティを考慮する場合は、後でパスワードを設定してください)
PHP スクリプト ハンドラーhook.php に移動します (Linux コマンドを実行)
chdir("/home/wwwroot/default/HiAdmin"); exec("git pull origin master 2>&1", $out); foreach($out as $v) { echo iconv( 'GB2312','UTF-8', $v)."<br>"; }
この時点で、上記のサーバー コードを構成した後、自動的に同期して自動展開を完了できます
#問題が発生します
1.php スクリプトが実行されません 理由 php. Linux スクリプト関数 exec()、shell_exec() の実行を含む、ini 内の多くの php 関数がデフォルトで有効になっていません。など。
php.ini を検索し、disable_functions 行を見つけて対応する関数を削除するか、行全体をコメントアウトします。
2. git pull コマンドを実行できません問題 1
致命的: リモート リポジトリから読み取れませんでした。
正しいアクセス権があることを確認してください。、リポジトリが存在すること。
归根结底还是因为linux权限的问题,我遇到的是出现一下问题
到这里的原因是因为root生成git公钥密钥,而切换到www后生成公钥密钥后就成功了(上述第四小步生成公钥,一定使用www生成公钥密钥)
问题二
error: insufficient permission for adding an object to repository database .git/objects
fatal: failed to write object
fatal: unpack-objects failed
这个还是没有权限执行git命令,只需要执行以下
第一步:cd .git/objects 定位到git下的objects文件下 第二步: ls -al 查看git库的所有者(git用户 git组) 第三步: chown -R yourname:yourgrounp * 或者sudo chmod 777 -R .git/objects 提交
最后解决完以上问题,大功告成,上一张成功的截图
自己的后端语言是php,这里可以用多种方式去实现执行linux脚本,nodejs,python等等
推荐学习:《PHP视频教程》
以上がPHP スクリプトの Git 自動デプロイメントを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









gitリポジトリを削除するには、次の手順に従ってください。削除するリポジトリを確認します。リポジトリのローカル削除:RM -RFコマンドを使用して、フォルダーを削除します。倉庫をリモートで削除する:倉庫の設定に移動し、「倉庫の削除」オプションを見つけて、操作を確認します。

GITサーバーをパブリックネットワークに接続するには、5つのステップが含まれます。1。パブリックIPアドレスのセットアップ。 2。ファイアウォールポート(22、9418、80/443)を開きます。 3。SSHアクセスを構成します(キーペアを生成し、ユーザーを作成します)。 4。http/httpsアクセスを構成します(サーバーをインストールし、許可を構成); 5.接続をテストします(SSHクライアントまたはGITコマンドを使用)。

コード競合とは、複数の開発者が同じコードを変更し、GITが変更を自動的に選択せずにマージすると発生する競合を指します。解決手順には、競合するファイルを開き、競合するコードを見つけます。コードを手動でマージし、競合マーカーに保持する変更をコピーします。競合マークを削除します。変更を保存して送信します。

GITで空のフォルダーを送信するには、次の手順に従ってください。1。空のフォルダーを作成します。 2.フォルダーをステージング領域に追加します。 3.変更を送信して、コミットメッセージを入力します。 4。(オプション)変更をリモートリポジトリに押します。注:空のフォルダーの名前は開始できません。フォルダーが既に存在する場合は、git addを使用して追加する必要があります。

リモートGitサーバーに安全に接続するには、パブリックキーとプライベートキーの両方を含むSSHキーを生成する必要があります。 SSHキーを生成する手順は次のとおりです。端子を開き、ssh -keygen -t rsa -b 4096を入力します。キー保存場所を選択します。秘密鍵を保護するには、パスワード句を入力します。公開キーをリモートサーバーにコピーします。アカウントにアクセスするための資格情報であるため、秘密鍵を適切に保存します。

Gitアカウントに公開キーを追加する方法は?ステップ:SSHキーペアを生成します。公開キーをコピーします。 gitlabまたはgithubに公開キーを追加します。 SSH接続をテストします。

Git Rebaseは、履歴をクリーンアップしたり、ブランチを再配置するために、新しいベースラインにコミットを再適用するために使用されます。使用方法:ターゲットブランチの作成コミットを再適用するためにコミットを選択し、Git Rebaseコマンドを実行し、ターゲットブランチを指定し、競合を解決するための範囲をコミットし、残りのコミット検証の変更を再申請し続けます。

GITリポジトリは、変更の追跡、コラボレーション、プロジェクトバージョンの管理に使用されるコードおよびファイルバージョン履歴のストレージ場所です。 GITリポジトリを使用するには、次の手順を実行します。リポジトリを作成します。GITinitを実行します。ファイルの追加:gitを使用して、ファイルをステージング領域に追加します。コミットの変更:Git Commitを使用して、リポジトリにステージングの変更を保存します。変更の変更:Git Pushを使用して、変更をリモートリポジトリに押します。 Pullの変更:Git Pullを使用して、リモートリポジトリから変更を取得します。ブランチ:gitブランチを使用してブランチを作成します。マージ:gitマージを使用して、異なるブランチからの変更をマージします。タグ:gitタグを使用します
