You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 24.04.2 LTS下Apache托管Git仓库报错:仓库未找到

问题排查与解决步骤

1. 修正远程仓库URL格式

你当前的远程地址存在两个问题:缺少HTTP协议前缀、包含无效的*符号,导致Git无法识别合法的仓库地址。执行以下命令修正:

# 删除错误的远程配置
git remote remove origin
# 添加正确的远程地址(替换为你的笔记本实际IP)
git remote add origin http://你的笔记本IP/SeaOfFriends.git/

2. 配置Apache的Git HTTP后端

仅将裸仓库放在/var/www/html目录下无法让Apache处理Git的HTTP请求,需启用git-http-backend组件:

  • 先安装依赖:
    sudo apt install git apache2 apache2-utils
    
  • 编辑Apache默认站点配置文件(/etc/apache2/sites-available/000-default.conf),在<VirtualHost *:80>块内添加以下配置:
    SetEnv GIT_PROJECT_ROOT /var/www/html
    SetEnv GIT_HTTP_EXPORT_ALL
    ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
    
    <Directory "/usr/lib/git-core">
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Require all granted
    </Directory>
    
    若仅需针对单个仓库配置,可替换为:
    <Directory "/var/www/html/SeaOfFriends.git">
        Options +ExecCGI
        Require all granted
        SetEnv GIT_PROJECT_ROOT /var/www/html
        SetEnv GIT_HTTP_EXPORT_ALL
    </Directory>
    ScriptAlias /SeaOfFriends.git /usr/lib/git-core/git-http-backend/
    
  • 重启Apache生效:
    sudo systemctl restart apache2
    

3. 修复仓库目录权限

Apache运行用户(默认是www-data)需要对裸仓库拥有读写权限,否则推送操作会被拒绝:

# 修改仓库目录的所有者
sudo chown -R www-data:www-data /var/www/html/SeaOfFriends.git/
# 设置正确的权限
sudo chmod -R 755 /var/www/html/SeaOfFriends.git/

4. 重新测试推送

完成上述配置后,执行推送命令:

git push -u origin main

若仍有问题,可查看Apache错误日志(/var/log/apache2/error.log)定位具体故障点。

内容的提问来源于stack exchange,提问作者Maddock Pearson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:37:17