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
相关产品推荐
相关产品推荐

