Vivasoft-logo

ā§Ē.ā§Ŧ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻ—āĻŋāϟ – āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ HTTP

āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ HTTP

āφāĻŽāϰāĻž āχāϤ⧋āĻŽāĻ§ā§āϝ SSL āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻ•ā§āϏ⧇āϏ āĻ…āĻĨ⧇āύāϟāĻŋāϕ⧇āϟ āĻāĻŦāĻ‚ git:// āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻ•ā§āϏ⧇āϏ āφāύ-āĻ…āĻĨ⧇āύāϟāĻŋāϕ⧇āϟ āĻ•āϰ⧇āĻ›āĻŋ , āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāϰāĻ“ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āĻāχāϚāϟāĻŋāϟāĻŋāĻĒāĻŋ āĻĒā§āϰāĻŸā§‹āĻ•āϞ āφāϛ⧇ āϝāĻž āĻĻ⧁āχāϟāĻŋ āĻ•āĻžāϜ āĻāĻ• āϏāĻžāĻĨ⧇ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻŽā§‚āϞāϤ āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āĻāχāϚāϟāĻŋāϟāĻŋāĻĒāĻŋ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž āĻšāϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻāĻ•āϟāĻž CGI āĻāύāĻžāĻŦāϞ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻāϟāĻž āĻšāϞ git-http-backend, āϝāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āĻĨāĻžāϕ⧇āĨ¤ CGI āφāϏāϞ⧇ āĻĒāĻžāĻĨ āĻ“ āĻšā§‡āĻĄāĻžāϰāϗ⧁āϞ⧋ āĻĒā§œā§‡, āϝāĻž git fetch āĻ…āĻĨāĻŦāĻž git push āĻāχāϚāϟāĻŋāϟāĻŋāĻĒāĻŋ URL āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĒāĻžāĻ āĻžā§Ÿ āĻāĻŦāĻ‚ HTTP āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻ•āĻŋ āύāĻž āϤāĻž āϝāĻžāϚāĻžāχ āĻ•āϰ⧇ (HTTP ā§§.ā§Ŧ.ā§Ŧ āĻ­āĻžāĻ°ā§āĻļāύ āĻĨ⧇āϕ⧇ āϏāĻ•āϞ āĻ•ā§āϞāĻžāχāĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āωāĻĒāϝ⧁āĻ•ā§āϤ)āĨ¤ āĻ•ā§āϞāĻžāχāĻ¨ā§āϟ āϝāĻĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āĻšā§Ÿ, āϤāĻ–āύ CGI āĻ•ā§āϞāĻžāχāĻ¨ā§āϟ āĻāϰ āϏāĻžāĻĨ⧇ āĻ¸ā§āĻŽāĻžāĻ°ā§āϟāϞāĻŋ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰ⧇ āĻ…āĻ¨ā§āϝāĻĨāĻžā§Ÿ āύ⧀āϰāĻŦ āφāϚāĻžāϰāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āĻĒāĻŋāϛ⧁ āĻšāĻŸā§‡ (āϤāĻžāχ āĻāϟāĻŋ āĻĒ⧁āϰāĻžāύ⧋ āĻ•ā§āϞāĻžāχāĻ¨ā§āϟāĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒ⧜āĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻžāĻ•āĻ“ā§ŸāĻžāĻ°ā§āĻĄ āĻ•āĻŽā§āĻĒā§āϝāĻžāϟāĻŋāĻŦāϞ āĻšā§Ÿā§‡ āĻĨāĻžāϕ⧇)

āĻāĻ–āύ āφāĻŽāĻžāϰāĻž āĻāĻ•āϟāĻž āĻŽā§ŒāϞāĻŋāĻ• āϏ⧇āϟ āφāĻĒ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻļ⧁āϰ⧁ āĻ•āϰāĻŦāĨ¤ āφāĻŽāϰāĻž Apache āϕ⧇ CGI āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϧāϰ⧇ āϏ⧇āϟāφāĻĒ āĻ•āϰāĻŦāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ Apache āϏ⧇āϟāφāĻĒ āĻ•āϰāĻž āύāĻž āĻĨāĻžāϕ⧇ āϤāĻžāĻšāϞ⧇ āϞāĻŋāύāĻžāĻ•ā§āϏ āĻŦāĻ•ā§āϏ āĻĻāĻŋā§Ÿā§‡ āύāĻŋāĻšā§‡āϰ āĻŽāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāσ
				
					$ sudo apt-get install apache2 apache2-utils
$ a2enmod cgi alias env

				
			
āĻāϟāĻŋ mod_cgi, mod_alias, āĻāĻŦāĻ‚ mod_env āĻŽāĻĄāĻŋāωāϞ āϗ⧁āϞ⧋āϕ⧇ āĻāύāĻžāĻŦāϞ āĻ•āϰ⧇, āφāϰ āϏāĻ āĻŋāĻ• āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāχ āĻŽāĻĄāĻŋāωāϞ āϗ⧁āϞ⧋ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§ŸāĨ¤

āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϝ⧇āύ āϰāĻŋāĻĒā§‹āϜāĻŋāĻŸā§‹āϰāĻŋāϤ⧇ āϞ⧇āĻ–āϤ⧇ āĻāĻŦāĻ‚ āĻĒ⧜āϤ⧇ āĻĒāĻžāϰ⧇ āϏ⧇āχ āϜāĻ¨ā§āϝ āĻĄāĻŋāϰ⧇āĻ•ā§āϟāϰāĻŋ /srv/git āĻĨ⧇āϕ⧇ www-data āχāωāύāĻŋāĻ•ā§āϏ āχāωāϜāĻžāϰ āĻ—ā§āϰ⧁āĻĒ āϏ⧇āϟ āφāĻĒ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āĻ•āĻžāϰāύ Apache āχāĻ¨ā§āϏāĻŸā§āϝāĻžāĻ¨ā§āϏ CGI āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϕ⧇ āϚāϞāĻŽāĻžāύ āĻ•āϰ⧇ āϝāĻž āωāĻ•ā§āϤ āχāωāϜāĻžāϰ āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāϞāĻŽāĻžāύ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤
				
					$ chgrp -R www-data /srv/git
				
			
āĻāϰāĻĒāϰ āφāĻŽāĻžāĻĻ⧇āϰ Apache āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇ āĻāĻŽāύ āĻ•āĻŋāϛ⧁ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āĻ•āϰ⧇ āĻ“ā§Ÿā§‡āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ /git āĻāχ āĻĒāĻĨ⧇ āϝāĻž āĻ•āĻŋāϛ⧁ āφāϏ⧁āĻ• āύāĻž āϕ⧇āύ āϝ⧇āύ git-http-backend āϕ⧇ āϚāϞāĻŽāĻžāύ āϰāĻžāĻ–āϤ⧇ āϏāĻšāĻžā§ŸāĻ• āĻšā§ŸāĨ¤
				
					SetEnv GIT_PROJECT_ROOT /srv/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/

				
			
āφāĻĒāύāĻŋ āϝāĻĻāĻŋ GIT_HTTP_EXPORT_ALL āĻāχ āϭ⧇āϰāĻŋā§Ÿā§‡āĻŦāϞ āϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻ•āϰ⧇āύ āϤāĻžāĻšāϞ⧇ Git āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āφāύ- āĻ…āĻĨ⧇āύāϟāĻŋāϕ⧇āĻŸā§‡āĻĄ āĻ•ā§āϞāĻžāχāĻ¨ā§āϟāĻĻ⧇āϰ git-daemon-export-ok āĻĢāĻžāχāϞ⧇āϰ āϏāĻžāĻĨ⧇ āϰāĻŋāĻĒā§‹āϜāĻŋāĻŸā§‹āϰāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻŦ⧇ āϝāĻž Git daemon āĻ•āϰ⧇āĻ›āĻŋāϞāĨ¤

āĻ…āĻŦāĻļ⧇āώ⧇ āφāĻĒāύāĻžāϕ⧇ Apache āϕ⧇ āĻŦāϞāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ git-http-backend āĻāϰ āϰāĻŋāĻ•ā§ā§Ÿā§‡āĻ¸ā§āϟāϗ⧁āϞāĻŋ āϕ⧇ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻāĻŋāϤ⧇ āĻāĻŦāĻ‚ āϕ⧋āύāĻ­āĻžāĻŦ⧇ āĻ…āĻĨ⧇āύāϟāĻŋāϕ⧇āϟ āĻ•āϰāϤ⧇, āϏāĻŽā§āĻ­āĻŦāϤ āύāĻŋāĻšā§‡āϰ āĻŽāϤ āĻāĻ•āϟāĻŋ Auth āĻŦā§āϞāĻ• āĻĻāĻŋā§Ÿā§‡āσ
				
					<Files "git-http-backend">
	AuthType Basic
	AuthName "Git Access"
	AuthUserFile /srv/git/.htpasswd
	Require expr!(%{QUERY_STRING} -strmatch '*service=git-receive-pack*' || %{REQUEST_URI} =~ m#/git-receive-pack$#)
	Require valid-user
</Files>

				
			
āφāĻĒāύāĻžāϕ⧇ .htpasswd āĻāĻ•āϟāĻž āĻĢāĻžāχāϞ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇āĻ–āĻžāύ⧇ āϏāĻ•āϞ āĻŦ⧈āϧ āχāωāϜāĻžāϰ⧇āϰ āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤

“schacon” āύāĻžāĻŽā§‡ āĻāĻ• āϜāύ āχāωāϜāĻžāϰāϕ⧇ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϰāĻžāĻ–āϤ⧇ āĻšā§Ÿ āϏ⧇āϟāĻž āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ āύāĻŋāĻšā§‡:
				
					$ htpasswd -c /srv/git/.htpasswd schacon
				
			
āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āωāĻĒāĻžā§Ÿā§‡ Apache āχāωāϜāĻžāϰ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϝāĻžā§Ÿ, āφāĻĒāύāĻžāϕ⧇ āϝ⧇ āϕ⧋āύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āωāĻĒāϰ⧇ āϝāĻž āφāϞ⧋āϚāύāĻž āĻ•āϰāϞāĻžāĻŽ āĻāϟāĻž āĻŽā§‹āϟāĻŽā§āϟāĻŋ āϏāĻšāϜ āωāĻĻāĻžāĻšāϰāύ āĨ¤ SSL āĻāϰ āĻŽāĻ§ā§āϝāĻŽā§‡ āϏ⧇āϟ āφāĻĒ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āĻ•āϰ⧇ āϏāĻ•āϞ āĻĄā§‡āϟāĻž āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻšā§Ÿā§‡ āφāϏ⧇āĨ¤

āϝ⧇āĻšā§‡āϤ⧁ āĻ…āĻ¨ā§āϝ āϕ⧋āύ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ­āĻžāϞ āĻĢāϞāĻžāĻĢāϞ āĻĒāĻžāĻ“ā§ŸāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āϤāĻžāχ Apache āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āφāĻŽāϰāĻž āϖ⧁āĻŦ āĻ—āĻ­ā§€āϰ⧇ āϝāĻžāĻŦ āύāĻžāĨ¤ āφāĻŦāĻžāϰ āĻ­āĻŋāĻ¨ā§āύ āϕ⧋āύ āĻ…āĻĨ⧇āύāϟāĻŋāϕ⧇āĻļāύ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϤ⧇āĻ“ āĻĒāĻžāϰ⧇āĨ¤ āĻŽā§‚āϞ āĻĒā§āϰāĻ•ā§āϰāĻŋ⧟āĻž āĻšāϞ āĻ—āĻŋāĻŸā§‡āϰ āϏāĻžāĻĨ⧇ CGI āĻĨāĻžāϕ⧇ āϝāĻžāϕ⧇ git-http-backend āĻŦāϞāĻž āĻšā§ŸāĨ¤ āϝāĻ–āύ āĻāϕ⧇ āχāύāĻ­ā§‹āĻ• āĻ•āϰāĻž āĻšā§Ÿ āϤāĻ–āύ HTTP āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĄā§‡āϟāĻž āφāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āĻ¨ā§āϝ āϏāĻ•āϞ āύ⧇āĻ—ā§‹āĻļāĻŋā§Ÿā§‡āĻļāύ āύāĻŋāĻœā§‡āχ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āύāĻŋāϜ āĻĨ⧇āϕ⧇ āϕ⧋āύ āĻ…āĻĨ⧇āύāϟāĻŋāϕ⧇āĻļāύ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻ•āϰ⧇ āύāĻžāĨ¤ āϤāĻŦ⧇ āĻāϟāĻž āϖ⧁āĻŦ āϏāĻšāĻœā§‡ āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāύ āĻ•āϰāĻž āϝāĻžā§Ÿ āĻ“ā§Ÿā§‡āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĨ⧇āϕ⧇āĨ¤ CGI āϕ⧇ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻāĻŽāύ āϝ⧇āϕ⧋āύ āĻ“ā§Ÿā§‡āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĻāĻŋā§Ÿā§‡ āĻāϟāĻž āĻ•āϰāĻž āϝāĻžā§Ÿ, āϤāĻžāχ āϝ⧇ āϝ⧇āϟāĻž āϖ⧁āĻŦ āĻ­āĻžāϞ āĻĒāĻžāϰ⧇ āϏ⧇āϟāĻžāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāχ āĻ­āĻžāϞāĨ¤
āύ⧋āϟ
āĻāĻĒāĻžāϚāĻŋ āϤ⧇ āφāϰāĻ“ āĻ…āĻĨ⧇āĻ¨ā§āϟāĻŋāϕ⧇āĻļāύ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āφāϰāĻ“ āχāύāĻĢāϰāĻŽā§‡āĻļāύ āĻāχ āϞāĻŋāĻ‚āĻ• āĻ āĻĻā§‡ā§ŸāĻž āφāϛ⧇āσ https://httpd.apache.org/docs/current/howto/auth.html āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻŦā§āϰāĻžāĻžā§āĻšā§‡āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŽāĻžāĻ°ā§āĻœā§‡āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āϜāĻžāύāĻžāϰ āϜāĻ¨ā§āϝ⧇ āφāĻĒāύāĻŋ āϏāĻ°ā§āĻŦāĻĻāĻžāχ āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āĻĒā§āϰāĻĨāĻŽ āĻŦā§āϰāĻžāĻžā§āϚāϟāĻŋ āĻšā§‡āĻ• āύāĻž āĻ•āϰ⧇āχ, āϝ⧇āĻŽāύ, master āĻŦā§āϰāĻžāĻžā§āĻšā§‡ āϕ⧋āύāϟāĻŋ āĻŽāĻžāĻ°ā§āϜ āĻšā§ŸāύāĻŋ?