ฉันได้ปฏิบัติตามขั้นตอนในการโฮสต์เซิร์ฟเวอร์ Git ภายใต้ Apache บน Windowsและทำให้ทุกอย่างทำงานได้ดี ฉันต้องการเพิ่มการรับรองความถูกต้องเบื้องต้นสำหรับการร้องขอพุชและทำการเปลี่ยนแปลงหลังจากแก้ไขปัญหาที่ให้ไว้ในhttpd.conf
ไฟล์ของฉันและสร้างรหัสผ่านให้กับผู้ใช้
แต่เมื่อฉันพยายามที่จะผลักดันไปยังพื้นที่เก็บข้อมูลของฉัน (ใน localhost) ฉันได้รับข้อผิดพลาด 403 เหตุใดจึงเป็นเช่นนี้
ส่วนท้ายของhttpd.conf
ไฟล์ของฉันอยู่ด้านล่าง
# Local git repository setup
# Git repository information
SetEnv GIT_PROJECT_ROOT C:/Repositories
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAliasMatch \
"(?x)^/(.*/(HEAD | info/refs | objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | pack/pack-[0-9a-f]{40}.(pack|idx)) | git-(upload|receive)-pack))$" \
"C:/Program Files/git/libexec/git-core/git-http-backend.exe/$1"
# Allow cloning of repository without authentication
<Directory />
Require all granted
</Directory>
# Authentication
<LocationMatch "^/.*/git-receive-pack$">
Options +ExecCGI
AuthType Basic
AuthName "Git Login"
AuthUserFile "C:/wamp/bin/apache/apache2.4.9/passwords/git_passwords"
Require user alec
</LocationMatch>
นอกจากนี้ฉันได้เห็นคำถามเช่นนี้ทั้งใน SuperUser และ StackOverflow ถ้ามีคนบอกฉันได้ว่าไซต์ไหนเหมาะกับเว็บไซต์มากกว่านั้นจะดีมาก
แก้ไข
การตรวจสอบบันทึกข้อผิดพลาด apache พบข้อผิดพลาดนี้
AH01215: Service not enabled: 'receive-pack'
วิธีแก้ไขปัญหาใหม่การ
เพิ่มSetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
ช่วยให้ฉันสามารถผลักดันไปยัง repo แต่ฉันไม่เคยถามรหัสผ่าน ...
git-upload-pack
แทนที่git-receive-pack
แต่ยังได้รับข้อผิดพลาดเดิม ฉันเพิ่มบันทึกข้อผิดพลาด apache นั่นอธิบายได้หรือไม่