CentOS 6.8
PHP 7.0.7
Git 1.7.1
Dalam katalog/home/work/repositories/
下创建了一个裸仓test.git
git clone
到网站根目录/home/work/www/
PHP
运行用户为www-data
,/home/work/www/
目录的权限为755
,属于www-data
用户和www-data
Kumpulan Pengguna
Dikonfigurasikan post-receive
钩子,开发环境执行git push
的时候,自动到/home/work/www/test
目录下执行git pull
Operasi
#!/bin/sh
cd /home/work/www/test
sudo -u www-data env -i git pull
Apabila konfigurasi di atas selesai dan persekitaran pembangunan dilaksanakangit push
, ralat berikut muncul
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 790 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: sudo: no tty present and no askpass program specified
remote: Gogs: Internal error
To ssh://xxx/test.git
6250615..3e4555d master -> master
Ikuti tutorial dalam talian dan tambahkan baris ini dalam /etc/sudoers
%git ALL=(ALL) NOPASSWD: ALL
Selepas mengkonfigurasi dengan cara ini, operasi git pull
akan dilakukan dalam direktori /home/work/www/test
setiap kali git push
之后也都会到/home/work/www/test
目录下执行git pull
, mencapai hasil yang diharapkan.
Saya ingin bertanya kepada semua, mengikut konfigurasi di atas, adakah terdapat sebarang risiko keselamatan atau kelemahan konfigurasi?
Terima kasih!
Secara peribadi, saya fikir adalah tidak baik untuk meletakkan kod (termasuk repositori git) pada pelayan pengeluaran, terutamanya jika ia diletakkan dalam direktori web Sebaik sahaja beberapa masalah kebenaran timbul, kod itu mungkin akan diseret #🎜 🎜#
Malah, anda boleh mengasingkan fail entri php dan folder .git, dan itu sahaja.
Seperti Laravel, fail penyertaan adalah di khalayak ramai dan .git adalah di luar awam, jadi ia tidak akan menjejaskannya sama sekali.