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

藏色散人
Freigeben: 2023-03-14 19:08:02
Original
2492 Leute haben es durchsucht

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!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage