Tôi đã thiết lập gitweb trên máy chủ web của mình. Tôi đã tạo các dự án trên máy chủ. Tôi có thể thêm các cam kết vào chúng và cũng có thể sao chép chúng từ xa.
"Trang chủ" của gitweb hiển thị và các tệp tĩnh như css, logo, favicon được tải khi tôi truy cập git.website của mình.
Vấn đề là tôi chỉ thấy thông báo: Không tìm thấy dự án nào như vậy thành lập..
Mỗi lần tôi làm mới trang web, tôi thấy thông tin sau trong /var/log/httpd/error_log của mình
[Thứ tư ngày 04 tháng 8 00:39:32.321352 năm 2021] [cgid:error] [pid 44346:tid 140132795492096] [máy khách MY_HOME_IP:37700] gây tử vong: mmap không thành công: Quyền bị từ chối: /var/www/git/gitweb.cgi, người giới thiệu: https://git.mydomain.abc/
Tôi đã xác nhận rằng httpd đang chạy với tư cách là người dùng apache và cũng có quyền sở hữu/var/www được đặt thành apache. Tôi tin rằng các quyền cũng được thiết lập đúng cách:
[root@git ~]# ps auxw | grep httpd
gốc 44780 0,2 1,6 281804 13828? Ss 00:48 0:00 /usr/sbin/httpd -NỀN TẢNG
apache 44782 0,0 1,0 295684 8876? S 00:48 0:00 /usr/sbin/httpd -NỀN TẢNG
apache 44783 0,0 1,7 1484604 14712? Sl 00:48 0:00 /usr/sbin/httpd -NỀN TẢNG
apache 44784 0,0 2,2 1353476 18956? Sl 00:48 0:00 /usr/sbin/httpd -NỀN TẢNG
apache 44785 0,0 2,0 1353476 16760? Sl 00:48 0:00 /usr/sbin/httpd -NỀN TẢNG
apache 45019 0,0 1,7 1353476 14708? Sl 00:48 0:00 /usr/sbin/httpd -NỀN TẢNG
gốc 45141 0,0 0,1 221928 1140 điểm/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 gốc gốc 4096 ngày 2 tháng 8 18:16 /var/
drwxr-xr-x. 5 apache apache 44 ngày 2 tháng 8 18:23 /var/www/
drwxr-xr-x. 8 apache apache 179 ngày 4 tháng 8 00:18 /var/www/git/
-rwxr-xr-x. 1 apache apache system_u:object_r:git_script_exec_t:s0 253816 Ngày 20 tháng 7 năm 2020 /var/www/git/gitweb.cgi
[root@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>
Nếu có ai nhìn thấy những gì tôi đã làm sai, tôi sẽ đánh giá rất cao một số hướng dẫn.. Cảm ơn!
CHỈNH SỬA1:
Và đây là audit.log
type=SYSCALL msg=audit(1628072069.412:134): arch=c000003e syscall=9 success=no exit=-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=(none) ses=4294967295 comm="git" exe="/usr/bin/git" subj=system_u: system_r:git_script_t:s0 key=(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: bị từ chối { map } for 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 permissive=0
CHỈNH SỬA2
Vấn đề bắt nguồn từ SELinux mà tôi không phải là chuyên gia. Thay đổi chế độ thành dễ dãi Bây giờ tôi có thể xem tất cả các repos của mình..
Tuy nhiên tôi phải tìm ra cách làm cho nó hoạt động với thi hành cách thức..