GitList 配置 CentOS 的完整实践指南
在CentOS系统上部署GitList,是一种高效管理Git仓库的方案,本文将从零开始,详细讲解如何通过合理配置实现稳定、安全的GitList环境,并兼顾性能优化与安全防护。

**一、环境准备与依赖安装
1、系统更新与基础工具安装
在开始前,确保系统已更新至最新版本:
- sudo yum update -y
- sudo yum install -y epel-release
- sudo yum install -y git httpd php php-cli php-json php-mbstring php-pdo php-mysqlnd php-gd
2、安装Composer管理PHP依赖
GitList依赖Composer安装必要的PHP库:
- curl -sS https://getcomposer.org/installer | php
- sudo mv composer.phar /usr/local/bin/composer
- chmod +x /usr/local/bin/composer
二、GitList的部署与配置
1、克隆GitList源码并初始化

建议将GitList安装在Web服务器的根目录(如/var/www/html/gitlist
):
- sudo git clone https://github.com/klaussilveira/gitlist.git /var/www/html/gitlist
- cd /var/www/html/gitlist
- composer install --no-dev
2、配置Git仓库路径
修改配置文件config.ini
,指定Git仓库的存储位置:
- [git]
- repos_path = /path/to/your/git/repositories
确保apache/Nginx用户(如apache
或nginx
)对仓库目录有读取权限:
- sudo chown -R apache:apache /path/to/your/git/repositories
- sudo chmod -R 755 /path/to/your/git/repositories
3、Web服务器配置(以Apache为例)
创建虚拟主机文件/etc/httpd/conf.d/gitlist.conf
如下:

- <VirtualHost *:80>
- ServerName git.example.com
- DocumentRoot /var/www/html/gitlist
- <Directory /var/www/html/gitlist>
- Options FollowSymLinks
- AllowOverride All
- Require all granted
- </Directory>
- ErrorLog /var/log/httpd/gitlist_error.log
- CustomLog /var/log/httpd/gitlist_access.log combined
- </VirtualHost>
重启Apache服务:
- sudo systemctl restart httpd
**三、权限与安全加固
1、限制目录访问权限
避免敏感文件暴露,通过.htaccess
限制访问:
- <FilesMatch "\.(ini|log|sh)$">
- Require all denied
- </FilesMatch>
2、配置SELinux策略(如启用)
若系统启用了SELinux,需调整策略以允许Web服务器访问仓库:
- sudo semanage fcontext -a -t httpd_sys_content_t "/path/to/your/git/repositories(/.*)?"
- sudo restorecon -Rv /path/to/your/git/repositories
3、防火墙放行HTTP/HTTPS流量
若使用Firewalld:
- sudo firewall-cmd --permanent --add-service=http
- sudo firewall-cmd --permanent --add-service=https
- sudo firewall-cmd --reload
**四、调试与常见问题处理
问题:页面显示空白或500错误
检查PHP错误日志(/var/log/php_errors.log
),常见原因为权限不足或依赖缺失。
运行以下命令修复权限:
- sudo chown -R apache:apache /var/www/html/gitlist
- sudo chmod -R 755 /var/www/html/gitlist/cache
问题:仓库列表未加载
确认config.ini
中的repos_path
路径正确,且仓库目录包含标准的.git
文件夹。
**五、性能优化建议
1、启用OPcache加速PHP
安装OPcache模块并启用:
- sudo yum install -y php-opcache
- sudo systemctl restart httpd
2、配置浏览器缓存
在Apache虚拟主机中添加缓存策略:
- <IfModule mod_expires.c>
- ExpiresActive On
- ExpiresByType text/css "access plus 1 month"
- ExpiresByType application/javascript "access plus 1 month"
- </IfModule>
个人观点
GitList作为轻量级的Git仓库管理工具,在CentOS上的部署并不复杂,但需注重细节,实际使用中,建议定期检查日志文件,并更新至最新版本以避免安全风险,若团队规模较大,可结合LDAP或OAuth2实现身份验证,进一步提升管理效率。