


Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip php
Cara melaksanakan penggunaan skrip php secara automatik: 1. Pasang git; 2. Klonkan kod gudang; kunci; 6 , isikan nama domain webhook dan muat naik skrip php.
Persekitaran pengendalian artikel ini: sistem linux5.9.8, Git versi 2.30.0, komputer DELL G3
git automatik skrip php penyebaran Bagaimana untuk melaksanakan?
git php gunakan skrip automasi webhook untuk mencapai penyegerakan kod
Artikel ini akan memperkenalkan skrip automatik webhook penggunaan php git untuk mencapai penyegerakan kod
Git dengan penggunaan automatik webhook bukanlah teknologi yang canggih, tetapi terdapat banyak lencongan dalam penggunaan pertama, terutamanya saya seorang pemula dalam Linux Artikel ini merekodkan masalah yang mudah untuk membuat kesilapan dan masalah yang dihadapi
Sediakan
untuk menggunakan nama domain web dan bahagian pelayan yang boleh diakses. skrip php dalam persekitaran lnmp. Warehouse code cloud gitee
Proses automatik, push->gitee warehouse webhook->linux server php script pull
Mula-mula buat gudang pada gitee code cloud
Secara tempatan gunakan protokol ssh untuk berkomunikasi dengan komunikasi gudang, komputer tempatan saya adalah windows, jadi saya tidak akan memperkenalkan cara menjana kunci awam ssh di sini saya akan memperkenalkannya di bawah Linux
1 >
yum install git
git initgit clone git@gitee.com:zhuyanbin/HiAdmin.git
Kerana webhook kami memberitahu pelayan bahawa ia adalah akses luaran, pengguna pentadbir di sini lalai Ia adalah pengguna www, jadi www mesti diberi kebenaran yang mencukupi
vim /etc/passwd 添加下面的一行 www:x:1001:1001::/home/www:/bin/bash
cat /etc/group
chmod u+w /etc/sudoers
vim /etc/sudoers
www ALL=(ALL) NOPASSWD:/usr/bin/git
chmod u-w /etc/sudoers
Ubah suai konfigurasi php-fpm.conf untuk menetapkan pelawat. Berikut ialah www, yang merupakan konfigurasi lalai php
4. Akhirnya jana Kunci (langkah ini mesti dihasilkan oleh pengguna www. ps: Saya telah terperangkap di sini selama dua hari. Saya telah menggunakan akaun pentadbir akar untuk menjana kunci Saya mencuba pelbagai kaedah pada Baidu selama beberapa hari, dan kemudian beralih kepada pengguna www untuk menjana kunci kunci awam
mkdir -p /home/www/.ssh
chown -R www.www /home/www/.ssh
ssh-keygen -t rsa
Kunci awam akan dijana Salin ke tempat pengisian kunci awam gudang kod gitee
https ://gitee.com/profile/sshkeyscat /home/www/.ssh/id_rsa.pub
Tambahan: Terdapat dua tempat untuk gitee mengisi kunci awam, satu adalah kunci awam kunci gudang Jika anda mengisi awam kunci gudang, kebenaran git pelayan hanya akan mempunyai kebenaran tarik Yang lain adalah kunci awam akaun Jika anda mengisi kunci awam akaun peribadi, akan ada kebenaran tarik, tolak dan lain-lain terus di sini. Kunci awam akaun peribadi
5. Akhir sekali isikan nama domain webhook dan jalankan skrip php Isi nama domain alamat pemberitahuan webhook (tetapan kata laluan kosong, tiada pengesahan kata laluan dalam php nanti , jika anda menganggap keselamatan, sila tetapkan kata laluan kemudian)
Muat naik php script handler hook.php (laksanakan arahan linux)
Pada ketika ini, selepas mengkonfigurasi kod pelayan di atas, ia boleh disegerakkan secara automatik untuk melengkapkan penggunaan automatik
chdir("/home/wwwroot/default/HiAdmin"); exec("git pull origin master 2>&1", $out); foreach($out as $v) { echo iconv( 'GB2312','UTF-8', $v)."<br>"; }
Masalah berlaku
skrip 1.php tidak dilaksanakan Sebabnya ialah banyak php fungsi dalam php.ini tidak dihidupkan secara lalai, termasuk pelaksanaan skrip linux functions exec(), shell_exec(), dll. Tunggu
untuk mencari php.ini, cari baris disable_functions dan padamkan fungsi yang sepadan, atau ulas keseluruhan baris
2. Tidak dapat melaksanakan arahan git pull Soalan 1
maut: Tidak dapat baca dari repositori jauh.
Sila pastikan anda mempunyai hak akses yang betul dan repositori itu wujud.
归根结底还是因为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视频教程》
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Untuk memadam repositori Git, ikuti langkah -langkah ini: Sahkan repositori yang anda mahu padamkan. Penghapusan repositori tempatan: Gunakan perintah RM -RF untuk memadam foldernya. Jauh memadam gudang: Navigasi ke tetapan gudang, cari pilihan "Padam Gudang", dan sahkan operasi.

Menyambungkan pelayan Git ke rangkaian awam termasuk lima langkah: 1. Sediakan alamat IP awam; 2. Buka port firewall (22, 9418, 80/443); 3. Konfigurasi akses SSH (menghasilkan pasangan utama, buat pengguna); 4. Konfigurasi akses HTTP/HTTPS (pasang pelayan, konfigurasikan keizinan); 5. Uji sambungan (menggunakan klien SSH atau arahan git).

Konflik kod merujuk kepada konflik yang berlaku apabila pelbagai pemaju mengubah suai kod yang sama dan menyebabkan Git bergabung tanpa memilih perubahan secara automatik. Langkah -langkah resolusi termasuk: Buka fail yang bercanggah dan cari kod yang bercanggah. Gabungkan kod secara manual dan salin perubahan yang anda mahu masuk ke dalam penanda konflik. Padam tanda konflik. Simpan dan serahkan perubahan.

Untuk menghantar folder kosong di Git, ikuti langkah -langkah berikut: 1. Buat folder kosong; 2. Tambah folder ke kawasan pementasan; 3. Hantar perubahan dan masukkan mesej komit; 4. (Pilihan) Tolak perubahan ke repositori jauh. Nota: Nama folder kosong tidak boleh bermula dengan. Jika folder sudah wujud, anda perlu menggunakan Git Add --force untuk menambah.

Untuk selamat menyambung ke pelayan Git Jauh, kunci SSH yang mengandungi kekunci awam dan swasta perlu dijana. Langkah -langkah untuk menghasilkan kunci SSH adalah seperti berikut: Buka terminal dan masukkan perintah SSH -Keygen -T RSA -B 4096. Pilih lokasi penjimatan utama. Masukkan frasa kata laluan untuk melindungi kunci peribadi. Salin kunci awam ke pelayan jauh. Simpan kunci peribadi dengan betul kerana ia adalah kelayakan untuk mengakses akaun.

Bagaimana untuk menambah kunci awam ke akaun Git? Langkah: Menjana pasangan kunci SSH. Salin kunci awam. Tambah kunci awam di Gitlab atau GitHub. Uji sambungan SSH.

GIT Rebase digunakan untuk memohon semula ke dasar baru untuk membersihkan sejarah atau memindahkan cawangan. Cara Menggunakan: Buat Cawangan Sasaran Pilih komit untuk dimasukkan semula dan laksanakan perintah Git Rebase, tentukan cawangan sasaran dan komit skop untuk menyelesaikan konflik, terus memohon semula perubahan pengesahan komited yang selebihnya.

Repositori Git adalah lokasi penyimpanan untuk sejarah kod dan versi fail yang digunakan untuk mengesan perubahan, bekerjasama dan menguruskan versi projek. Untuk menggunakan repositori git, lakukan langkah -langkah berikut: Buat repositori: Run git init. Tambah Fail: Gunakan Git Tambah untuk menambah fail ke kawasan pementasan. Perubahan Komited: Gunakan komited git untuk menyimpan perubahan pementasan dalam repositori. Perubahan tolak: Gunakan push git untuk menolak perubahan ke repositori jauh. Tarik perubahan: Gunakan tarik git untuk mendapatkan perubahan dari repositori jauh. Cawangan: Buat cawangan menggunakan cawangan git. Gabungan: Gunakan gabungan git untuk menggabungkan perubahan dari cawangan yang berbeza. Tag: Gunakan tag git
