CentOS 6.8
PHP 7.0.7
Git 1.7.1
Dalam katalog/home/work/repositories/
下創(chuàng)建了一個裸倉test.git
git clone
到網(wǎng)站根目錄/home/work/www/
PHP
運行用戶為www-data
,/home/work/www/
目錄的權(quán)限為755
,屬于www-data
用戶和www-data
Kumpulan Pengguna
Dikonfigurasikan post-receive
鉤子,開發(fā)環(huán)境執(zhí)行git push
的時候,自動到/home/work/www/test
目錄下執(zhí)行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
目錄下執(zhí)行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.