Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie die automatisierte Git-Bereitstellung von PHP-Skripten
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.
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
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
vim /etc/passwd 添加下面的一行 www:x:1001:1001::/home/www:/bin/bash1001 ist die ID der Benutzergruppe. Verwenden Sie den folgenden Befehl, um die ID des Benutzers www anzuzeigen aktueller Benutzer
cat /etc/group#(2) Sudoers bearbeiten
chmod u+w /etc/sudoers
vim /etc/sudoers
#(4) Zurücknehmen die Schreibberechtigung für sudoers
www ALL=(ALL) NOPASSWD:/usr/bin/git
Ä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
mkdir -p /home/www/.ssh
chown -R www.www /home/www/.ssh
Sehen Sie sich den öffentlichen Schlüssel an
ssh-keygen -t rsa
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.
Nach oben PHP-Skript-Handler Hook.php (Linux-Befehl ausführen)
cat /home/www/.ssh/id_rsa.pub
Das ist es. Nach der Konfiguration des obigen Servercodes kann er automatisch synchronisiert werden, um die automatisierte Bereitstellung abzuschließen
Es 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. 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权限的问题,我遇到的是出现一下问题
到这里的原因是因为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视频教程》
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!