เบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”เบžเบฒเบชเบฒเบเบฃเบฑเปˆเบ‡เปเบญเบชเบ›เบฒเป‚เบเบ™

OnWorks favicon

git-http-backend - เบญเบญเบ™เบฅเบฒเบเปƒเบ™เบ„เบฅเบฒเบง

เปเบฅเปˆเบ™ git-http-backend เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเบœเปˆเบฒเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator

เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ git-http-backend เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเป‚เบ”เบเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเบผเบฒเบเป†เบšเปˆเบญเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบญเบญเบ™เป„เบฅเบ™เปŒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบฑเปˆเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator

เป‚เบ„เบ‡เบเบฒเบ™:

NAME


git-http-backend - เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบฒเบ™เป€เบŠเบตเบŸเป€เบงเบตเบ‚เบญเบ‡ Git เบœเปˆเบฒเบ™ HTTP

เบชเบฐเบซเบผเบธเบšเบชเบฑเบ‡เบฅเบงเบก


เป„เบ› http-backend

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”


เป‚เบ„เบ‡เบเบฒเบ™ CGI เบ‡เปˆเบฒเบเป†เป€เบžเบทเปˆเบญเบฎเบฑเบšเปƒเบŠเป‰เป€เบ™เบทเป‰เบญเบซเบฒเบ‚เบญเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Git เปƒเบซเป‰เบเบฑเบšเบฅเบนเบเบ„เป‰เบฒ Git เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡
repository เบœเปˆเบฒเบ™ http:// เปเบฅเบฐ https:// protocols. เป‚เบ„เบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฅเบนเบเบ„เป‰เบฒเบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™
เปƒเบŠเป‰เบ—เบฑเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™ HTTP เบญเบฑเบ”เบชเบฐเบฅเบดเบเบฐ เปเบฅเบฐเป‚เบ›เบฃเป‚เบ•เบ„เป HTTP dumb เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบซเบผเบฑเบ‡, เป€เบ›เบฑเบ™
เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบฅเบนเบเบ„เป‰เบฒเบŠเบธเบเบเบนเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ›เป‚เบ•เบ„เบญเบ™ HTTP smart.

เบกเบฑเบ™เบเบงเบ”เบชเบญเบšเบงเปˆเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบกเบตเป„เบŸเบฅเปŒ magic "git-daemon-export-ok", เปเบฅเบฐเบกเบฑเบ™เบˆเบฐ.
เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบชเบปเปˆเบ‡เบญเบญเบเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต Git เปƒเบ”เป†เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบซเบกเบฒเบเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบญเบญเบเบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰
(เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐเบ•เบฑเป‰เบ‡เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก GIT_HTTP_EXPORT_ALL).

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบšเปเบฅเบดเบเบฒเบ™ upload-pack เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ เป„เบ› fetch-pack เปเบฅเบฐ เป„เบ›
ls-เป„เบฅเบเบฐเป„เบ เบฅเบนเบโ€‹เบ„เป‰เบฒโ€‹, เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เบˆเบฒเบโ€‹ เป„เบ› เบ”เบถเบ‡, เป„เบ› เบ”เบถเบ‡, เปเบฅเบฐ เป„เบ› cloneเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบฅเบนเบโ€‹เบ„เป‰เบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹, เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบฎเบฑเบšโ€‹เบŠเบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เป€เบ›เบตเบ”โ€‹เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹, เบ—เบตเปˆโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹ เป„เบ› เบชเบปเปˆเบ‡เบŠเบธเบ”
เบฅเบนเบโ€‹เบ„เป‰เบฒโ€‹, เป€เบŠเบดเปˆเบ‡โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เบˆเบฒเบโ€‹ เป„เบ› เบเบฒเบ™เบŠเบธเบเบเบนเป‰.

เบšเปเบฅเบดเบเบฒเบ™


เบšเปเบฅเบดเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ / เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เปเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™:

http.getanyfile
เบญเบฑเบ™เบ™เบตเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบฅเบนเบเบ„เป‰เบฒ Git เบ—เบตเปˆเป€เบเบปเปˆเบฒเบเบงเปˆเบฒเป€เบงเบตเบŠเบฑเบ™ 1.6.6 เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบเบฒเบ™เบญเบฑเบšเป‚เบซเบฅเบ”เป„เบ”เป‰
เบšเปเบฅเบดเบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆ. เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰, เบฅเบนเบเบ„เป‰เบฒเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบŸเบฅเปŒเปƒเบ”เป†เบžเบฒเบเปƒเบ™ repository,
เบฅเบงเบกเบ—เบฑเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เบˆเบฒเบเบชเบฒเบ‚เบฒเปเบ•เปˆเบเบฑเบ‡เบกเบตเบขเบนเปˆ. เบกเบฑเบ™
เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ•เปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบชเบฒเบกเบฒเบ”เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบกเบฑเบ™เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰
เบฅเบฒเบเบเบฒเบ™เป€เบ›เบฑเบ™เบœเบดเบ”.

http.uploadpack
เบ™เบตเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ เป„เบ› fetch-pack เปเบฅเบฐ เป„เบ› ls-เป„เบฅเบเบฐเป„เบ เบฅเบนเบเบ„เป‰เบฒ. เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ•เปˆ a
repository เบชเบฒเบกเบฒเบ”เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบกเบฑเบ™เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบฅเบฒเบเบเบฒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™เบœเบดเบ”.

http.receivepack
เบ™เบตเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ เป„เบ› เบชเบปเปˆเบ‡เบŠเบธเบ” เบฅเบนเบเบ„เป‰เบฒ, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบŠเบธเบเบเบนเป‰. เบกเบฑเบ™เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆ, เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบ–เบทเบเบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ. เบกเบฑเบ™
เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบฅเบฒเบเบเบฒเบ™เบ™เบตเป‰เป€เบ›เบฑเบ™เบœเบดเบ”, เบซเบผเบทเป€เบ›เบตเบ”เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบ—เบฑเบ‡เปเบปเบ”, เบฅเบงเบกเบ—เบฑเบ‡
เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆ, เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡.

URL เบเบฒเบ™เปเบ›เบžเบฒเบชเบฒ


เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡ repository เปƒเบ™เปเบœเปˆเบ™, เป„เบ› http-backend concatenates เป„เบ”เป‰
เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก PATH_INFO, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเป€เบงเบฑเบšเป€เบŠเบตเบšเป€เบงเบต, เปเบฅเบฐ
GIT_PROJECT_ROOT, เป€เบŠเบดเปˆเบ‡เบ•เป‰เบญเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบŠเบตเบšเป€เบงเบต. เบ–เป‰เบฒ
GIT_PROJECT_ROOT เบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡, เป„เบ› http-backend เบญเปˆเบฒเบ™ PATH_TRANSLATED, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เป„เบงเป‰
เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ.

เบ•เบปเบงเบขเปˆเบฒเบ‡


เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบฑเบ‡เปเบปเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบœเบ™เบ—เบตเปˆ http://$hostname/git/foo/bar.git เบซเบฒ
/var/www/git/foo/bar.git.

Apache 2.x
เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ mod_cgi, mod_alias, เปเบฅเบฐ mod_env เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ•เบฑเป‰เบ‡ GIT_PROJECT_ROOT (เบซเบผเบท
DocumentRoot) เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เปเบฅเบฐเบชเป‰เบฒเบ‡ ScriptAlias โ€‹โ€‹เบเบฑเบš CGI:

SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias โ€‹โ€‹/git/ /usr/libexec/git-core/git-http-backend/

เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เปเบšเบšเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆเปเบ•เปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”
เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบเบฒเบ™เป‚เบ„เบชเบฐเบ™เบฒเบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™ (เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเบงเบ”เบžเบปเบšเบงเปˆเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบŠเบธเบเบเบนเป‰เบœเปˆเบฒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปƒเบ™ query string), เปเบฅเบฐเบเบฒเบ™เป€เบญเบตเป‰เบ™เบฎเบฑเบšเบŠเบญเบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡:

RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
RewriteCond %{REQUEST_URI} /git-receive-pack$
RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]


เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เป€เบชเบ”โ€‹, เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹
เบ›เบฐเบ•เบดเป€เบชเบ”เบˆเบฒเบ env=AUTHREQUIRED

AuthType Basic
เบŠเบทเปˆ "Git Access"
เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบ„เบฐโ€‹เบ™เบฐโ€‹เบเปเบฒโ€‹เบกเบฐโ€‹เบเบธเปˆเบกโ€‹
เบžเปเปƒเบˆเบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก
...


เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบกเบต mod_rewrite เบ—เบตเปˆเบˆเบฐเบเบปเบ‡เบเบฑเบš string query, เบกเบฑเบ™เปเบกเปˆเบ™
เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบ›เบปเบเบ›เป‰เบญเบ‡ git-receive-pack เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เป€เบŠเบฑเปˆเบ™:


AuthType Basic
เบŠเบทเปˆ "Git Access"
เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบ„เบฐโ€‹เบ™เบฐโ€‹เบเปเบฒโ€‹เบกเบฐโ€‹เบเบธเปˆเบกโ€‹
...


เปƒเบ™เป‚เบซเบกเบ”เบ™เบตเป‰, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบˆเบฐเบšเปเปˆเบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบˆเบปเบ™เบเปˆเบงเบฒเบฅเบนเบเบ„เป‰เบฒเบ•เบปเบงเบˆเบดเบ‡
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบฅเบเบฐเบเบฒเบ™เป€เบˆเบฅเบฐเบˆเบฒเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบŠเบธเบเบเบนเป‰, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบ™เป„เบฅเบเบฐเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™
เบ•เบดเบ”เบ•เปเปˆ. เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบ•เป‰เบญเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ http.receivepack เปƒเบ™
repositories เปƒเบ”เบ—เบตเปˆเบ„เบงเบ™เบˆเบฐเบเบญเบกเบฎเบฑเบšเบเบฒเบ™เบŠเบธเบเบเบนเป‰. เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ–เป‰เบฒ http.receivepack
เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡, เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบŠเบธเบเบเบนเป‰เปƒเบ”เป†เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™; เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบˆเบฐ
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบฒเบเบ‡เบฒเบ™ 403 Forbidden เบเบฑเบšเบฅเบนเบเบ„เป‰เบฒ, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเป‚เบญเบเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™
เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡.

เป€เบžเบทเปˆเบญเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™, เปƒเบซเป‰เปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบญเป‰เบญเบกเบฎเบญเบš
เบ„เบฑเบ‡เป€เบเบฑเบšเบกเป‰เบฝเบ™, เบซเบผเบทเบซเบ™เบถเปˆเบ‡เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบซเบผเบฑเบเบ‚เบญเบ‡เบกเบฑเบ™:


AuthType Basic
AuthName "เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ Git เบชเปˆเบงเบ™เบ•เบปเบง"
เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบ„เบฐโ€‹เบ™เบฐโ€‹เบเปเบฒโ€‹เบกเบฐโ€‹เบเบธเปˆเบกโ€‹
...


เป€เบžเบทเปˆเบญเบฎเบฑเบšเปƒเบŠเป‰ gitweb เบขเบนเปˆเปƒเบ™ url เบ”เบฝเบงเบเบฑเบ™, เปƒเบŠเป‰ ScriptAliasMatch เปƒเบซเป‰เบเบฑเบš URL เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เป„เบ›
http-backend เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™, เปเบฅเบฐเบชเบปเปˆเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเป„เบ›เบซเบฒ gitweb:

ScriptAliasMatch \
"(?x)^/git/.*/(HEAD | \
เบ‚เปเป‰เบกเบนเบ™/เบญเป‰เบฒเบ‡เบญเบตเบ‡ | \
เบงเบฑเบ”เบ–เบธ/(เบ‚เปเป‰เบกเบนเบ™/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
/usr/libexec/git-core/git-http-backend/$1

ScriptAlias โ€‹โ€‹/git/ /var/www/cgi-bin/gitweb.cgi/

เป€เบžเบทเปˆเบญเบฎเบฑเบšเปƒเบŠเป‰เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบซเบผเบฒเบเบšเปˆเบญเบ™เบˆเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ gitnamespaces(7โ€‹) เปƒเบ™ repository เบ”เบฝเบงโ€‹:

SetEnvIf Request_URI "^/git/([^/]*)" GIT_NAMESPACE=$1
ScriptAliasMatch ^/git/[^/]*(.*) /usr/libexec/git-core/git-http-backend/storage.git$1

Accelerated static Apache 2.x
เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เปเบ•เปˆ Apache เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเบฑเบšเบ„เบทเบ™เป„เบŸเบฅเปŒ static เบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™
เปเบœเปˆเบ™. เปƒเบ™เบซเบผเบฒเบเป†เบฅเบฐเบšเบปเบšเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™เบเป‰เบญเบ™เบงเปˆเบฒ Apache เบชเบฒเบกเบฒเบ”เบ‚เปเปƒเบซเป‰ kernel เบ„เบฑเบ”เบฅเบญเบ
เป€เบ™เบทเป‰เบญเปƒเบ™เป„เบŸเบฅเปŒเบˆเบฒเบเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเป‚เบ”เบเบเบปเบ‡เบเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ:

SetEnv GIT_PROJECT_ROOT /var/www/git

AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
AliasMatch ^/git/.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
ScriptAlias โ€‹โ€‹/git/ /usr/libexec/git-core/git-http-backend/

เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ gitweb:

SetEnv GIT_PROJECT_ROOT /var/www/git

AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1
AliasMatch ^/git/.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1
ScriptAliasMatch \
"(?x)^/git/.*/(HEAD | \
เบ‚เปเป‰เบกเบนเบ™/เบญเป‰เบฒเบ‡เบญเบตเบ‡ | \
objects/info/[^/]+ | \
git-(upload|receive)-pack))$" \
/usr/libexec/git-core/git-http-backend/$1
ScriptAlias โ€‹โ€‹/git/ /var/www/cgi-bin/gitweb.cgi/

เบชเบฐเบซเบงเปˆเบฒเบ‡
เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ mod_cgi, mod_alias, mod_auth, mod_setenv เบ–เบทเบเป‚เบซเบฅเบ”, เบˆเบฒเบเบ™เบฑเป‰เบ™เบ•เบฑเป‰เบ‡
GIT_PROJECT_ROOT เบขเปˆเบฒเบ‡เป€เปเบฒเบฐเบชเบปเบก เปเบฅเบฐเบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบฑเบ‡เปเบปเบ”เป„เบ›เบซเบฒ CGI:

alias.url += ( "/git" => "/usr/lib/git-core/git-http-backend")
$HTTP["url"] =~ "^/git" {
cgi.assign = ("" => "")
setenv.add-environment = (
"GIT_PROJECT_ROOT" => "/var/www/git",
"GIT_HTTP_EXPORT_ALL" => ""
)
}

เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เปเบšเบšเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆเปเบ•เปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡:

$HTTP["querystring"] =~ "service=git-receive-pack" {
เบ›เบฐเบเบญเบšเบกเบต "git-auth.conf"
}
$HTTP["url"] =~ "^/git/.*/git-receive-pack$" {
เบ›เบฐเบเบญเบšเบกเบต "git-auth.conf"
}

เบšเปˆเบญเบ™เบ—เบตเปˆ git-auth.conf เบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ„เป‰เบฒเบเบ„เบท:

auth.require = (
"/" => (
"เบงเบดเบ—เบตเบเบฒเบ™" => "เบžเบทเป‰เบ™เบ–เบฒเบ™",
"realm" => "Git Access",
"require" => "เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡"
)
)
# ...เปเบฅเบฐเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ auth.backend เบ—เบตเปˆเบ™เบตเป‰

เป€เบžเบทเปˆเบญเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบ—เบฑเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™:

$HTTP["url"] =~ "^/git/private" {
เบ›เบฐเบเบญเบšเบกเบต "git-auth.conf"
}

ENVIRONMENT


เป„เบ› http-backend เบญเบตเบ‡เปƒเบชเปˆเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก CGI เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเบ—เบตเปˆเป€เบญเบตเป‰เบ™,
เบฅเบงเบกเบ—เบฑเบ‡:

ยท PATH_INFO (เบ–เป‰เบฒ GIT_PROJECT_ROOT เบ–เบทเบเบ•เบฑเป‰เบ‡, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ PATH_TRANSLATED)

ยท REMOTE_USER

ยท REMOTE_ADDR

ยท CONTENT_TYPE

ยท QUERY_STRING

ยท REQUEST_METHOD

เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก GIT_HTTP_EXPORT_ALL เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบš git-http-backend เป€เบžเบทเปˆเบญ bypass
เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป„เบŸเบฅเปŒ "git-daemon-export-ok" เปƒเบ™เปเบ•เปˆเบฅเบฐ repository เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบปเปˆเบ‡เบญเบญเบ.
เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบ™เบฑเป‰เบ™.

เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก GIT_HTTP_MAX_REQUEST_BUFFER (เบซเบผเบท http.maxRequestBuffer config
variable) เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เปƒเบซเป‰เบ›เปˆเบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เป€เบˆเบฅเบฐเบˆเบฒ ref เบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆ git เบˆเบฐเบˆเบฑเบ”เบเบฒเบ™
เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™ fetch; เบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ”เป†เบเปเบ•เบฒเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ buffer เปƒเบซเบเปˆเบเบงเปˆเบฒเบˆเบฐเบšเปเปˆเบชเปเบฒเป€เบฅเบฑเบ”. เบกเบนเบ™เบ„เปˆเบฒเบ™เบตเป‰เบ„เบงเบ™
เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ repository
เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบซเบผเบฒเบ. เบกเบนเบ™เบ„เปˆเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ”เป‰เบงเบเบซเบ™เปˆเบงเบเบ‡เบฒเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡: 100M
เบชเปเบฒเบฅเบฑเบš 100 megabytes). เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10 megabytes.

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ backend เบเปเบฒเบ™เบปเบ” GIT_COMMITTER_NAME เป€เบ›เบฑเบ™ $REMOTE_USER เปเบฅเบฐ GIT_COMMITTER_EMAIL เบเบฑเบš
${REMOTE_USER}@http.${REMOTE_ADDR}, เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ reflogs เปƒเบ”เป†เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ git-receive-pack
เบกเบตเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบฅเบฐเบšเบธเบ•เบปเบงเบ•เบปเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบŠเบธเบเบเบนเป‰.

เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก CGI เบ—เบฑเบ‡เปเบปเบ”เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เปเบ•เปˆเบฅเบฐ hooks เบ—เบตเปˆเบ–เบทเบเบฎเบฝเบเบฎเป‰เบญเบ‡เป‚เบ”เบ
git-receive-pack.

GIT


เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ เป„เบ›(1) เบŠเบธเบ”

เปƒเบŠเป‰ git-http-backend เบญเบญเบ™เป„เบฅเบ™เปŒเป‚เบ”เบเปƒเบŠเป‰เบšเปเบฅเบดเบเบฒเบ™ onworks.net


เป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบตเป€เบฎเบฑเบ”เบงเบฝเบเบŸเบฃเบต

เบ”เบฒเบงเป‚เบซเบผเบ”เปเบญเบฑเบš Windows เปเบฅเบฐ Linux

  • 1
    JXplorer - เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš Java Ldap
    JXplorer - เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš Java Ldap
    java LDAP client เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ LDIF,
    เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž (inc SSL, SASL & GSSAPI),
    เปเบ›เป€เบ›เบฑเบ™เบซเบผเบฒเบเบžเบฒเบชเบฒ (inc.
    เบˆเบตเบ™), เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบญเบญเบ™เป„เบฅเบ™เปŒ, เบฎเบนเบšเปเบšเบšเบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐ
    เบญเบทเปˆเบ™เป†เบญเบตเบ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” JXplorer - A Java Ldap Browser
  • 2
    PosteRazor - เบชเป‰เบฒเบ‡เป‚เบ›เบชเป€เบ•เบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡!
    PosteRazor - เบชเป‰เบฒเบ‡เป‚เบ›เบชเป€เบ•เบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡!
    เบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบดเบกเป‚เบ›เบชเป€เบ•เบตเบšเป? เบเบฒเบ™เบ•เบฑเบ” PosteRazor
    เป„เบŸเบฅเปŒเบฎเบนเบšเบžเบฒเบšเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ•เปˆเบญเบ™เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰
    เบžเบดเบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบชเปˆเป€เบ„เบทเปˆเบญเบ‡เบžเบดเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบเบฒเบงเบžเบงเบเบกเบฑเบ™
    เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบšเป‚เบ›เบชเป€เบ•เบต. FLTK เบ‡เปˆเบฒเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ
    เปƒเบŠเป‰...
    เบ”เบฒเบงโ€‹เป‚เบซเบผเบ” PosteRazor - เบชเป‰เบฒเบ‡โ€‹เป‚เบ›โ€‹เบชโ€‹เป€เบ•เบตโ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบญเบ‡โ€‹!
  • 3
    เป€เบŸเบ”
    เป€เบŸเบ”
    Phaser เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบ›เบตเบ”เป„เบง, เบŸเบฃเบต, เปเบฅเบฐเบกเปˆเบงเบ™เบŠเบทเปˆเบ™
    เปเบซเบผเปˆเบ‡ HTML5 เบเบญเบšเป€เบเบกเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบต
    WebGL เปเบฅเบฐ Canvas rendering เบ—เบปเปˆเบง
    desktop เปเบฅเบฐเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบกเบทเบ–เบท. เป€เบเบก
    เบชเบฒเบกเบฒเบ”เบฎเปˆเบงเบก...
    เบ”เบฒเบงเป‚เบซเบฅเบ” Phaser
  • 4
    เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ VASSAL
    เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ VASSAL
    VASSAL เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡
    เบชเบฐเบšเบฑเบšเป€เบญเป€เบฅเบฑเบเป‚เบ•เบฃเบ™เบดเบเบ‚เบญเบ‡เบเบฐเบ”เบฒเบ™เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡
    เปเบฅเบฐเป€เบเบกเบšเบฑเบ”. เบกเบฑเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš
    เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เป€เบเบกเปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš,
    เปเบฅเบฐ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” VASSAL Engine
  • 5
    OpenPDF - เบชเป‰เบญเบกเบ‚เบญเบ‡ iText
    OpenPDF - เบชเป‰เบญเบกเบ‚เบญเบ‡ iText
    OpenPDF เปเบกเปˆเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Java เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡
    เปเบฅเบฐเปเบเป‰เป„เบ‚เป„เบŸเบฅเปŒ PDF เบ”เป‰เบงเบ LGPL เปเบฅเบฐ
    เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ”เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ” MPL. OpenPDF เปเบกเปˆเบ™โ€‹
    LGPL/MPL open source เบœเบนเป‰เบชเบทเบšเบ—เบญเบ” iText,
    a
    เบ”เบฒเบงเป‚เบซเบฅเบ” OpenPDF - Fork เบ‚เบญเบ‡ iText
  • 6
    SAGA GIS
    SAGA GIS
    SAGA - เบฅเบฐเบšเบปเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
    Geoscientific Analyzes - เปเบกเปˆเบ™เบžเบนเบกเบชเบฒเบ”
    เบŠเบญเบšเปเบงเบฅเบฐเบšเบปเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™ (GIS) เบเบฑเบš
    เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบญเบฑเบ™เบเบดเปˆเบ‡เปƒเบซเบเปˆเบชเปเบฒเบฅเบฑเบš geodata
    เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡ เปเบฅเบฐ ana...
    เบ”เบฒเบงเป‚เบซเบฅเบ” SAGA GIS
  • เป€เบžเบตเปˆเบกเป€เบ•เบตเบก ยป

Linux เบ„เบณ เบชเบฑเปˆเบ‡

Ad