Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip php

Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip php

藏色散人
藏色散人asal
2022-01-11 09:40:422541semak imbas

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.

Bagaimana untuk melaksanakan penggunaan automatik git bagi 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
2. Klonkan kod gudang "Nota Pastikan anda menggunakan protokol ssh, selebihnya adalah berdasarkan ssh》

git initgit clone git@gitee.com:zhuyanbin/HiAdmin.git
3. Tukar kebenaran linux dan ubah suai konfigurasi

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
1001 ialah id kumpulan pengguna . Gunakan arahan berikut untuk melihat id pengguna www.

cat /etc/group
Tukar www Pengguna menyertai sudoers dan boleh melaksanakan shell tanpa kata laluan

#(1) Tambahkan kebenaran untuk menulis sudoers ke pengguna semasa

chmod u+w /etc/sudoers
#(2) Edit sudoers

vim /etc/sudoers
#(3) Cari untuk Benarkan root menjalankan sebarang arahan di mana-mana sahaja, dan tulis kandungan berikut di bawah baris yang sepadan pengguna akar:

www     ALL=(ALL)       NOPASSWD:/usr/bin/git
#(4) Ambil semula kebenaran menulis kepada sudoers

chmod u-w /etc/sudoers

Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip php Ubah suai konfigurasi php-fpm.conf untuk menetapkan pelawat. Berikut ialah www, yang merupakan konfigurasi lalai php

Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip 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
Lihat kunci awam
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/sshkeys
cat /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 Bagaimana untuk melaksanakan penggunaan automatik git bagi 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)
Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip php
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
Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip phpSoalan 1

Pengesahan kunci hos gagal.

maut: Tidak dapat baca dari repositori jauh.

Sila pastikan anda mempunyai hak akses yang betul

dan repositori itu wujud.

归根结底还是因为linux权限的问题,我遇到的是出现一下问题
Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip php
到这里的原因是因为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 提交

最后解决完以上问题,大功告成,上一张成功的截图
Bagaimana untuk melaksanakan penggunaan automatik git bagi skrip php
自己的后端语言是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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn