ฉันพยายามผลักดันให้คอมไพล์ทำงานผ่านโหมด "smart-http" โดยใช้ git-http-backend อย่างไรก็ตามหลังจากการทดสอบและการแก้ไขปัญหาหลายชั่วโมงฉันก็ยังเหลือ
error: Cannot access URL http://localhost/git/hello.git/, return code 22
fatal: git-http-push failed`
ฉันใช้ Ubuntu รุ่นล่าสุด (12.04), Apache2 (2.2.22) และ Git (1.7.9.5) และได้ติดตามบทเรียนต่าง ๆ ที่พบบนอินเทอร์เน็ตเช่นนี้http://www.parallelsymmetry.com/howto/git .jsp
ปัจจุบันไฟล์ VHost ของฉันมีลักษณะเช่นนี้:
<VirtualHost *:80>
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
DocumentRoot /var/www/git
ScriptAliasMatch \
"(?x)^/(.*?)\.git/(HEAD | \
info/refs | \
objects/info/[^/]+ | \
git-(upload|receive)-pack)$" \
/usr/lib/git-core/git-http-backend/$1/$2
<Directory /var/www/git>
Options +ExecCGI +SymLinksIfOwnerMatch -MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
ฉันมีการเปลี่ยนแปลงกรรมสิทธิ์ของ/var/www/git
โฟลเดอร์สำหรับเก็บการทดสอบของฉันฉันได้เปิดใช้งานการผลักดันโดยการทำที่ไม่ระบุชื่อroot.www-data
git config http.receivepack true
ฉันได้ลองกับผู้ใช้ที่ผ่านการตรวจสอบแล้ว แต่มีผลลัพธ์เหมือนกัน
ที่เก็บถูกสร้างขึ้นโดยใช้:
sudo git init --bare --shared [repo-name]
ขณะที่ดูที่ apache2 access.log ดูเหมือนว่าฉันจะพยายามใช้ WebDAV และ git-http-backend นั้นไม่เคยถูกใช้งาน:
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "GET /git/hello.git/info/refs?service=git-receive-pack HTTP/1.1" 200 207 "-" "git/1.7.9.5"
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "GET /git/hello.git/HEAD HTTP/1.1" 200 232 "-" "git/1.7.9.5"
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "PROPFIND /git/hello.git/ HTTP/1.1" 405 563 "-" "git/1.7.9.5"
ผมทำอะไรผิดหรือเปล่า? เป็นปัญหากับเวอร์ชันของ git และ / หรือ apache ที่ฉันใช้อยู่หรือไม่?
BTW: ฉันได้อ่านคำถามที่เกี่ยวข้องกับ http git ทั้งหมดใน ServerFault และ StackOverflow และไม่มีคำถามใดที่ให้โซลูชันฉันดังนั้นโปรดอย่าทำเครื่องหมายว่าซ้ำกัน