阿里云linux服务器配置git服务器http 版,及出现的问题和解决方法

本文详细介绍了如何使用Apache和git-core通过HTTP方式在Linux上搭建Git服务器,包括配置监听端口、防火墙设置、账号权限管理及客户端clone操作。

linux以http方式搭建git服务器,即clone的方式为git clone http://xxxxxxxx。

用到apache和git-core(支持git的CGI)

1.安装httpd

yum install httpd
因为很多服务器本身就启动了80端口,所以修改监听端口:

vim /etc/httpd/conf/httpd.conf

// 找到 Listen 80修改为:
Listen 8081
启动(我这边启动提示:Redirecting to /bin/systemctl start  httpd.service,就用/bin/systemctl start  httpd.service):

service httpd start
打开浏览器访问:http://192.168.1.55:8081,如果访问不了,则是因为防火墙,解决:

非阿里云的设置:【

// 添加运行访问8081端口
iptables -A INPUT -p tcp --dport 8081 -j ACCEPT

// 重启保存
service iptables restart

/etc/rc.d/init.d/iptables save】

阿里云服务器的设置【

登录阿里云官网,进入服务器列表选择-》 更多--》网络和安全组--》安全组配置--》安全组列表--》配置规则

入方向   添加8081端口: 端口8081/8081          授权对象:0.0.0.0/0

重启阿里云服务器

 


2.安装git

yum install git
yum install git-core
创建仓库:

mkdir -p /opt/http_git/test.git
cd /opt/http_git/test.git
git init --bare

// 设置权限
chown -R apache:apache /opt/http_git
创建账号:

// testuser为账户名 可以随意定义
htpasswd -m -c /etc/httpd/conf.d/git-team.htpasswd testuser

// 修改git-team.htpasswd文件的所有者与所属群组
chown apache:apache /etc/httpd/conf.d/git-team.htpasswd

// 设置git-team.htpasswd文件的访问权限
chmod 640 /etc/httpd/conf.d/git-team.htpasswd
设置apache,使其请求转发到git-cgi:

vim /etc/httpd/conf/httpd.conf

cd /etc/httpd/conf.d

touch gitserver.conf

vim gitserver,conf

然后将如下内容拷贝到该文件里面,:wq! 退出

ServerName 192.168.1.55

<VirtualHost *:8081>
        ServerName 192.168.1.55
        SetEnv GIT_HTTP_EXPORT_ALL
        SetEnv GIT_PROJECT_ROOT /opt/http_git
        ScriptAlias /git /usr/libexec/git-core/git-http-backend/
        <Location />
                AuthType Basic
                AuthName "Git"
                AuthUserFile /etc/httpd/conf.d/git-team.htpasswd
                Require valid-user
        </Location>
</VirtualHost>

///
ServerName是git服务器的域名,这里最后填写你阿里云服务器远端的IP
/opt/http_git是代码库存放的文件夹
ScriptAlias是将以/git/开头的访问路径映射至git的CGI程序git-http-backend
AuthUserFile是验证用户帐户的文件
保存重启:

service httpd restart
3.客户端clone命令:

git clone http://192.168.1.55:8081/git/test.git
会提示输入账号密码,账号为上面设置的testuser
 

如果出现错误:fatal: Authentication failed for; 又不弹出输入账号密码咋办

在:控制面板\所有控制面板项\凭据管理器 下找到指定的git修改git的账号密码

windows 凭据-》普通凭据

如上面的ip是192.168.1.55:8081 对应看到:git:http://192.168.1.55:8081; 然后展开修改账号testuser,密码是你自己设置的

 

在仓库中新增库

cd /opt/http_git

git init --bare newtest.git

chmod 777 -R newtest.git

git clone http://192.168.1.55:8081/git/newtest.git

<think>嗯,用户明确询问在阿里云服务器上下载Git方法,且提供了多个站内引用片段。这些引用虽然来自不同场景(Git安装、项目部署、仓库创建),但核心步骤高度一致,需要整合成清晰的操作指南。 用户可能是运维人员或开发者,正在配置服务器环境。引用[1][5]详细描述了源码编译安装流程,引用[5]还补充了环境变量配置的关键细节,这些是核心依据。引用[3][4]提到的SSH密钥GitHub操作属于延伸需求,当前问题不涉及。 值得注意的是,用户特意强调“下载”而非“安装”,但实际场景中源码下载(wget)编译安装(make)是不可分割的步骤。需要明确说明完整流程,避免用户误以为只需下载压缩包。 技术要点有三处:1) 引用[5]的make profix=应为--prefix=,需修正;2) 环境变量配置必须强调source命令生效;3) 所有引用均未提及依赖包安装,需补充yum install -y依赖项,这是实际安装时的常见遗漏点。 将采用分阶段说明:先安装依赖→下载源码→编译配置→验证本。对于时间敏感用户,补充yum快速安装方案作为备选,但需说明本可能较旧的缺点。 最后需注意,引用[2][4]的Git服务搭建本地仓库初始化内容与当前问题无关,但可作为后续延伸问题储备。 </think>在阿里云服务器Linux系统)上下载并安装Git主要有两种方法:源码编译安装通过包管理器安装。以下是详细步骤: ### 方法一:源码编译安装(推荐获取最新本) #### 1. **安装编译依赖** 安装编译Git所需的工具库: ```bash sudo yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker ``` #### 2. **下载Git源码** ```bash cd /usr/local/src # 进入常用源码目录 sudo wget https://www.kernel.org/pub/software/scm/git/git-2.8.3.tar.gz # 下载源码包 sudo tar -zxvf git-2.8.3.tar.gz # 解压 cd git-2.8.3 # 进入解压目录 ``` #### 3. **编译并安装** ```bash sudo ./configure --prefix=/usr/local/git # 指定安装路径 sudo make && sudo make install # 编译并安装 ``` #### 4. **配置环境变量** ```bash echo 'export PATH=/usr/local/git/bin:$PATH' | sudo tee -a /etc/profile source /etc/profile # 立即生效 ``` #### 5. **验证安装** ```bash git --version # 应显示 "git version 2.8.3" ``` > 注:可从[Git官网](https://git-scm.com/download/linux)获取最新链接替换下载地址[^1][^5]。 --- ### 方法二:通过Yum安装(快速但本可能较旧) ```bash sudo yum install -y git # 自动安装官方仓库git --version # 验证本(通常较旧) ``` --- ### 关键步骤说明 | **步骤** | **作用** | **注意事项** | |----------------|---------------------------------------|----------------------------------| | 安装依赖包 | 提供编译环境支持 | 缺依赖会导致编译失败 | | `--prefix`参数 | 指定自定义安装路径(避免覆盖系统文件)| 默认路径为`/usr/local/bin` | | 环境变量配置 | 确保全局可调用git命令 | 必须执行`source /etc/profile`生效 | > **注意**:若需连接GitHub等远程仓库,需额外[配置SSH密钥](引用[3]): > ```bash > ssh-keygen -t rsa -C "your_email@example.com" > cat ~/.ssh/id_rsa.pub # 复制公钥添加到GitHub/GitLab > ``` --- ### 常见问题解决 - **编译报错**:检查是否遗漏依赖包,重新安装编译工具链。 - **命令未找到**:确认环境变量配置正确且已执行`source /etc/profile`。 - **本过低**:使用方法一安装新源码,或通过[Git SCM官网](https://git-scm.com/download/linux)查看最新本号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值