ฉันได้ตั้งค่า gitweb บนเว็บเซิร์ฟเวอร์ของฉันแล้ว ฉันได้สร้างโครงการบนเซิร์ฟเวอร์ ฉันสามารถเพิ่มคอมมิชชันให้กับพวกเขาและโคลนพวกเขาจากระยะไกลได้
"โฮมเพจ" gitweb ปรากฏขึ้นและไฟล์สแตติกเช่น css, โลโก้, favicon ถูกโหลดเมื่อฉันไปที่ git.website ของฉัน
ปัญหาคือฉันเห็นเฉพาะข้อความ: ไม่พบโครงการดังกล่าว พบ..
ทุกครั้งที่รีเฟรชหน้าเว็บ ฉันเห็นสิ่งต่อไปนี้ใน /var/log/httpd/error_log
[วันพุธที่ 04 ส.ค. 00:39:32.321352 2021] [cgid:error] [pid 44346:tid 140132795492096] [client MY_HOME_IP:37700] ร้ายแรง: mmap ล้มเหลว: ปฏิเสธการอนุญาต: /var/www/git/gitweb.cgi ผู้อ้างอิง: https://git.mydomain.abc/
ฉันยืนยันว่า httpd กำลังทำงานเป็นผู้ใช้ apache และตั้งค่าความเป็นเจ้าของ /var/www เป็น apache เช่นกัน สิทธิ์ได้รับการตั้งค่าอย่างถูกต้องเช่นกัน ฉันเชื่อว่า:
[root@git ~]# ps auxw | เกรป httpd
ราก 44780 0.2 1.6 281804 13828 ? Ss 00:48 0:00 /usr/sbin/httpd -DFOREGROUND
อาปาเช่ 44782 0.0 1.0 295684 8876 ? S 00:48 0:00 /usr/sbin/httpd -DFOREGROUND
อาปาเช่ 44783 0.0 1.7 1484604 14712 ? ส 00:48 0:00 /usr/sbin/httpd -DFOREGROUND
อาปาเช่ 44784 0.0 2.2 1353476 18956 ? ส 00:48 0:00 /usr/sbin/httpd -DFOREGROUND
อาปาเช่ 44785 0.0 2.0 1353476 16760 ? ส 00:48 0:00 /usr/sbin/httpd -DFOREGROUND
อาปาเช่ 45019 0.0 1.7 1353476 14708 ? ส 00:48 0:00 /usr/sbin/httpd -DFOREGROUND
ราก 45141 0.0 0.1 221928 1140 pts/0 S+ 00:48 0:00 grep --color=auto httpd
[root@git ~]# ls -ld /var/ /var/www/ /var/www/git/ ; ls -lZ /var/www/git/gitweb.cgi
drwxr-xr-x. 21 รูทรูท 4096 2 ส.ค. 18:16 /var/
drwxr-xr-x. 5 อาปาเช่ อาปาเช่ 44 2 ส.ค. 18:23 /var/www/
drwxr-xr-x. 8 apache apache 179 4 ส.ค. 00:18 /var/www/git/
-rwxr-xr-x. 1 apache apache system_u:object_r:git_script_exec_t:s0 253816 20 ก.ค. 2020 /var/www/git/gitweb.cgi
[รูท@git ~]#
/etc/gitweb.conf
$projectroot = '/var/www/git/';
$git_temp = "/tmp";
$stylesheet = "static/gitweb.css";
$logo = "static/git-logo.png";
$favicon = "static/git-favicon.png";
/etc/httpd/conf.d/gitweb-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName git.mydomain.abc
DocumentRoot /var/www/git
<Directory /var/www/git>
SetEnv GITWEB_CONFIG /etc/gitweb.conf
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
<Files gitweb.cgi>
SetHandler cgi-script
</Files>
SSLCertificateFile /etc/letsencrypt/live/git.mydomain.abc/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/git.mydomain.abc/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
ถ้าใครเห็นสิ่งที่ฉันทำผิดฉันจะขอบคุณมากคำแนะนำ .. ขอบคุณ!
แก้ไข 1:
และนี่คือ audit.log
type=SYSCALL msg=audit(1628072069.412:134): arch=c000003e syscall=9 สำเร็จ=ไม่มีทางออก=-13 a0=0 a1=b9 a2=1 a3=2 items=0 ppid=2911 pid=2917 auid=4294967295 uid =48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(ไม่มี) ses=4294967295 comm="git" exe="/usr/bin/git" subj=system_u: system_r:git_script_t:s0 คีย์=(null)ARCH=x86_64 SYSCALL=mmap AUID="unset" UID="apache" GID="apache" EUID="apache" SUID="apache" FSUID="apache" EGID="apache " SGID="apache" FSGID="apache"
type=PROCTITLE msg=audit(1628072069.412:134): proctitle=2F7573722F62696E2F676974002D2D6769742D6469723D2F7661722F7777772F6769742F2F796F75747562652D646C2D62617463682E67697400666F722D656163682D726566002D2D666F726D61743D2528636F6D6D697474657229002D2D736F72743D2D636F6D6D697474657264617465002D2D636F756E743D3100726566
type=AVC msg=audit(1628072069.433:135): avc: ปฏิเสธ { แผนที่ } สำหรับ pid=2919 comm="git" path="/var/www/git/myrepo01.git/objects/1c/1c5ca1a07da5187a696cd1661d6b2a734ad98c" dev=" vda1" ino=36639 scontext=system_u:system_r:git_script_t:s0 tcontext=unconfined_u:object_r:git_content_t:s0 tclass=file อนุญาต=0
แก้ไข2
ปัญหาเกิดขึ้นที่ SELinux ซึ่งฉันไม่เชี่ยวชาญ การเปลี่ยนโหมดเป็น อนุญาต ตอนนี้ฉันเห็น repos ทั้งหมดของฉันแล้ว..
อย่างไรก็ตามฉันต้องหาวิธีทำให้มันใช้งานได้ บังคับใช้ โหมด..