Heim Backend-Entwicklung PHP-Problem So implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten

So implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten

Jan 11, 2022 am 09:40 AM
git php

So implementieren Sie die automatisierte Bereitstellung von PHP-Skripten: 1. Installieren Sie Git. 3. Ändern Sie die Linux-Berechtigungen und ändern Sie die Konfiguration. 5. Generieren Sie einen Schlüssel . Geben Sie den Webhook-Domänennamen ein und laden Sie das PHP-Skript hoch.

So implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten

Die Betriebsumgebung dieses Artikels: Linux5.9.8-System, Git-Version 2.30.0, DELL G3-Computer

Wie implementiert man die automatisierte Git-Bereitstellung von PHP-Skripten?

git+php stellt den Webhook automatisiert bereit Skripte zum Erreichen der Codesynchronisation

In diesem Artikel wird Git + PHP zum Bereitstellen automatisierter Webhook-Skripte zum Erreichen der Codesynchronisierung vorgestellt
Git mit Webhook-Automatisierung ist keine hochentwickelte Technologie, aber ich habe viele Umwege gemacht Bei meiner ersten Bereitstellung galt ich hauptsächlich als Linux-Neuling. In diesem Artikel werden die fehleranfälligen Probleme und Fallstricke aufgezeichnet in der LNMP-Umgebung, lokaler Push->Gitee Warehouse-Webhook->Linux-Server-PHP-Skript-Pull
Erstellen Sie zunächst ein Warehouse in der Gitee-Code-Cloud. Verwenden Sie das SSH-Protokoll, um lokal mit dem Warehouse zu kommunizieren Stellen Sie hier vor, wie Sie die öffentliche SSH-Adresse generieren.
1 Installieren Sie git

yum install git
Nach dem Login kopieren

2. Beachten Sie, dass Sie das SSH-Protokoll verwenden müssen, der Rest basiert auf SSH „

git initgit clone git@gitee.com:zhuyanbin/HiAdmin.git
Nach dem Login kopieren

3. Ändern Sie die Linux-Berechtigungen und ändern Sie die Konfiguration Weil wir Der Webhook benachrichtigt den Server, dass es sich um einen externen Zugriff handelt, daher ist der Administratorbenutzer hier standardmäßig der www-Benutzer, sodass www ausreichende Berechtigungen erhalten müssen

vim /etc/passwd
添加下面的一行
www:x:1001:1001::/home/www:/bin/bash
Nach dem Login kopieren
1001 ist die ID der Benutzergruppe. Verwenden Sie den folgenden Befehl, um die ID des Benutzers www anzuzeigen aktueller Benutzer

cat /etc/group
Nach dem Login kopieren
#(2) Sudoers bearbeiten

chmod u+w /etc/sudoers
Nach dem Login kopieren

#(3) Suchen Sie nach „Root erlauben, beliebige Befehle überall auszuführen“ und schreiben Sie den folgenden Inhalt unter die entsprechende Zeile des Root-Benutzers:
vim /etc/sudoers
Nach dem Login kopieren

#(4) Zurücknehmen die Schreibberechtigung für sudoers

www     ALL=(ALL)       NOPASSWD:/usr/bin/git
Nach dem Login kopieren

Ändern Sie die php-fpm.conf-Konfiguration, um den Besucher festzulegen, mein hier ist www, außerdem ist es die Standardkonfiguration von php

4. Generieren Sie abschließend den Schlüssel (dieser Schritt muss Seien Sie der WWW-Benutzer, der den Schlüssel generiert. PS: Ich stecke seit zwei Tagen an dieser Stelle fest und habe mehrere Tage damit verbracht, Baidu mit dem Root-Administratorkonto zu generieren, verschiedene Methoden ausprobiert und bin dann zum WWW gewechselt Benutzer muss den Schlüssel generieren und alles war in Ordnung)

Generieren Sie den öffentlichen Schlüssel

chmod u-w /etc/sudoers
Nach dem Login kopieren
mkdir -p /home/www/.ssh
Nach dem Login kopieren
chown -R www.www /home/www/.ssh
Nach dem Login kopieren

Sehen Sie sich den öffentlichen Schlüssel anSo implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten

ssh-keygen -t rsa
Nach dem Login kopieren

Kopieren Sie den generierten öffentlichen Schlüssel in den öffentlichen Schlüssel des Gitee-Codes Cloud Warehouse. Füllen Sie die Stelle aus https://gitee. com/profile/sshkeys

So implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten
Ergänzung: Es gibt zwei Stellen, an denen Gitee den öffentlichen Schlüssel des Lagers eintragen kann Pull-Berechtigung, der andere ist der öffentliche Schlüssel des Kontos, es gibt Pull-, Push- und andere Berechtigungen. Ich verwende hier direkt den öffentlichen Schlüssel des persönlichen Kontos Geben Sie den Webhook-Domänennamen ein und laden Sie das PHP-Skript hoch.

Geben Sie den Domänennamen der Webhook-Benachrichtigungsadresse ein (die Passworteinstellung ist leer, es gibt später keine Passwortüberprüfung in PHP. Wenn Sie Sicherheit berücksichtigen, legen Sie das Passwort bitte später fest)

Nach oben PHP-Skript-Handler Hook.php (Linux-Befehl ausführen)

cat /home/www/.ssh/id_rsa.pub
Nach dem Login kopieren

Das ist es. Nach der Konfiguration des obigen Servercodes kann er automatisch synchronisiert werden, um die automatisierte Bereitstellung abzuschließen

So implementieren Sie die automatisierte Git-Bereitstellung von PHP-SkriptenEs ist ein Problem aufgetreten


1.php-Skript ist nicht vorhanden ausgeführt
Der Grund dafür ist, dass viele PHP-Funktionen in php.ini nicht standardmäßig geöffnet sind, einschließlich der Ausführung der Linux-Skriptfunktion exec() usw.So implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten Suchen Sie php.ini, suchen Sie die Zeile „disable_functions“ und löschen Sie die entsprechende Funktion oder kommentieren Sie die gesamte Zeile aus

2. Der Git-Pull-Befehl kann nicht ausgeführt werden

Problem 1Host-Schlüsselüberprüfung fehlgeschlagen.

Schwerwiegend: Aus dem Remote-Repository konnte nicht gelesen werden.

Bitte stellen Sie sicher, dass Sie das richtige haben Zugriffsrechte
und das Repository existiert.

归根结底还是因为linux权限的问题,我遇到的是出现一下问题
So implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten
到这里的原因是因为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 提交
Nach dem Login kopieren

最后解决完以上问题,大功告成,上一张成功的截图
So implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten
自己的后端语言是php,这里可以用多种方式去实现执行linux脚本,nodejs,python等等

推荐学习:《PHP视频教程

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So löschen Sie ein Repository von Git So löschen Sie ein Repository von Git Apr 17, 2025 pm 04:03 PM

Befolgen Sie die folgenden Schritte, um ein Git -Repository zu löschen: Bestätigen Sie das Repository, das Sie löschen möchten. Lokale Löschen des Repositorys: Verwenden Sie den Befehl rm -RF, um seinen Ordner zu löschen. Löschen Sie ein Lager aus der Ferne: Navigieren Sie zu den Lagereinstellungen, suchen Sie die Option "Lager löschen" und bestätigen Sie den Betrieb.

So stellen Sie eine Verbindung zum öffentlichen Netzwerk von Git Server her So stellen Sie eine Verbindung zum öffentlichen Netzwerk von Git Server her Apr 17, 2025 pm 02:27 PM

Das Verbinden eines Git -Servers mit dem öffentlichen Netzwerk enthält fünf Schritte: 1. Einrichten der öffentlichen IP -Adresse; 2. Öffnen Sie den Firewall -Port (22, 9418, 80/443); 3. Konfigurieren Sie den SSH -Zugriff (Generieren Sie Schlüsselpaare, erstellen Benutzer). 4. Konfigurieren Sie HTTP/HTTPS -Zugriff (installieren Server, Konfigurieren Sie Berechtigungen); 5. Testen Sie die Verbindung (mit SSH -Client- oder Git -Befehlen).

Wie man mit Git -Code -Konflikt umgeht Wie man mit Git -Code -Konflikt umgeht Apr 17, 2025 pm 02:51 PM

Der Code -Konflikt bezieht sich auf einen Konflikt, der auftritt, wenn mehrere Entwickler denselben Code -Stück ändern und GIT veranlassen, sich zu verschmelzen, ohne automatisch Änderungen auszuwählen. Zu den Auflösungsschritten gehören: Öffnen Sie die widersprüchliche Datei und finden Sie den widersprüchlichen Code. Führen Sie den Code manuell zusammen und kopieren Sie die Änderungen, die Sie in den Konfliktmarker halten möchten. Löschen Sie die Konfliktmarke. Änderungen speichern und einreichen.

So reichen Sie leere Ordner in Git ein So reichen Sie leere Ordner in Git ein Apr 17, 2025 pm 04:09 PM

Um einen leeren Ordner in Git einzureichen, befolgen Sie einfach die folgenden Schritte: 1. Erstellen Sie einen leeren Ordner; 2. Fügen Sie den Ordner zum Staging -Bereich hinzu; 3. Senden Sie Änderungen und geben Sie eine Commit -Nachricht ein. 4. (Optional) Drücken Sie die Änderungen in das Remote -Repository. HINWEIS: Der Name eines leeren Ordners kann nicht beginnen. Wenn der Ordner bereits vorhanden ist, müssen Sie Git Add -Force zum Hinzufügen verwenden.

So generieren Sie SSH -Schlüssel in Git So generieren Sie SSH -Schlüssel in Git Apr 17, 2025 pm 01:36 PM

Um sich sicher eine Verbindung zu einem Remote -Git -Server herzustellen, muss ein SSH -Schlüssel mit öffentlichen und privaten Schlüssel generiert werden. Die Schritte zur Generierung eines SSH -Schlüssels sind wie folgt: Öffnen Sie das Terminal und geben Sie den Befehl SSH -Keygen -t RSA -B 4096 ein. Wählen Sie den Schlüsselspeicherort aus. Geben Sie einen Kennwortphrase ein, um den privaten Schlüssel zu schützen. Kopieren Sie den öffentlichen Schlüssel auf den Remote -Server. Speichern Sie den privaten Schlüssel ordnungsgemäß, da dies die Anmeldeinformationen für den Zugriff auf das Konto sind.

So fügen Sie öffentliche Schlüssel zum Git -Konto hinzu So fügen Sie öffentliche Schlüssel zum Git -Konto hinzu Apr 17, 2025 pm 02:42 PM

Wie füge ich einem Git -Konto einen öffentlichen Schlüssel hinzu? Schritt: Generieren Sie ein SSH -Schlüsselpaar. Kopieren Sie den öffentlichen Schlüssel. Fügen Sie einen öffentlichen Schlüssel in Gitlab oder GitHub hinzu. Testen Sie die SSH -Verbindung.

Wie man Git Rebase benutzt Wie man Git Rebase benutzt Apr 17, 2025 pm 04:00 PM

Git Rebase wird verwendet, um die Commits zu einer neuen Basislinie zu beantragen, um die Geschichte zu beseitigen oder Zweige zu verlagern. Verwendung

So verwenden Sie Git -Repository So verwenden Sie Git -Repository Apr 17, 2025 pm 04:06 PM

Ein Git -Repository ist der Speicherort für den Code- und Dateiversionsverlauf, mit dem Änderungen, Zusammenarbeit und Verwaltung von Projektversionen verwendet werden. Führen Sie die folgenden Schritte aus, um ein Git -Repository zu verwenden: Erstellen Sie ein Repository: Git Git init. Datei hinzufügen: Verwenden Sie Git Add, um die Datei zum Staging -Bereich hinzuzufügen. Änderungen des Festschaffens: Verwenden Sie Git, um die Staging -Änderungen im Repository zu speichern. Push -Änderungen: Verwenden Sie Git Push, um Änderungen in ein Remote -Repository zu verschieben. Pull -Änderungen: Verwenden Sie Git Pull, um Änderungen aus dem Remote -Repository abzurufen. Zweig: Erstellen Sie einen Zweig mit Git Branch. Merge: Verwenden Sie Git Fusion, um Änderungen aus verschiedenen Zweigen zu verschmelzen. Tag: Verwenden Sie Git Tag

See all articles