Đây là một câu hỏi cũ, nhưng tôi đã chiến đấu với vấn đề chính xác này và câu hỏi SO này xuất hiện, vì vậy tôi nghĩ rằng nó đáng để ghi lại những gì làm việc cho tôi.
Tóm lại: Tôi cần chạy Apache
làm người dùng thông thường thay vì Local System
. Đây là một thử nghiệm kế thừa VM
Tôi đã chơi với, vì vậy nó chỉ chạy Windows XP
, nhưng dường như ít nhất trên nền tảng đó (và có thể là những người khác), msysgit
không hoạt động đúng khi chạy dưới tài khoản Local System
(có lẽ là root filesystem
không được ánh xạ chính xác). Kết quả là, không có dòng shebang nào hoạt động như git-http-backend đơn giản là không thể thực thi bất kỳ tập tin nhị phân msysgit nào (ngay cả với đường dẫn tuyệt đối Windows
).
Chuyển Apache để chạy dưới dạng tài khoản người dùng thông thường đã khắc phục sự cố này hoàn toàn. Rõ ràng bạn cần đảm bảo rằng người dùng Apache đang chạy như có quyền đối với read
/write
kho lưu trữ git
, nhưng ngoài ra, chỉ cần đảm bảo đường dây shebang
của bạn là #!/bin/sh
và mọi thứ sẽ được copacetic.
Cuối cùng, vâng, đây là một cái búa lớn. Lý tưởng nhất là bạn có thể sử dụng một cái gì đó như suexec
trên Windows
, nhưng nhanh chóng googling
không chỉ ra một con đường rõ ràng về phía trước, ở đó. Tất nhiên, nếu bất cứ ai có bất kỳ ý tưởng, tôi muốn được quan tâm.
Hiện tại, tính năng này có hiệu quả đối với tôi, nhưng nó không có vẻ lý tưởng.
Và theo đó, anh ấy có nghĩa là dòng đầu tiên. Tôi vô tình có một dòng mới trống ở đầu và đã nhận được lỗi tương tự. – jeef3
Chỉ cần FYI - tập tin móc cũng phải được mã hóa ASCII, tôi đã có một công cụ tạo ra một tập tin hook định dạng unicode, mà đã nhận được tôi cùng một lỗi kể từ khi tôi đã có một số byte định dạng trước khi bang. – mamidon
Cũng FYI: Trên hệ thống của tôi, tôi đã có một cái móc với một shebang perl. Nhưng perl.exe không nằm trong đường dẫn. Sau khi thêm nó vào biến env, lỗi đã biến mất. – Fildor