اوبنٹو پر HTTP کے ساتھ گٹ سرور تشکیل دیں۔

Configure Git Server With Http Ubuntu



اگر آپ Git ذخیروں کے ساتھ نجی طور پر کام کرنے کے لیے Git HTTP سرور سیٹ اپ کرنا چاہتے ہیں تو یہ مضمون آپ کے لیے ہے۔ اس آرٹیکل میں ، میں آپ کو دکھانے جا رہا ہوں کہ اپاچی ایچ ٹی ٹی پی سرور کے ساتھ اوبنٹو پر گٹ اسمارٹ ایچ ٹی ٹی پی سرور کو کیسے ترتیب دیا جائے۔ تو ، آئیے شروع کریں۔

گٹ اور اپاچی پیکجز اوبنٹو کے آفیشل پیکج ریپوزٹری میں دستیاب ہیں۔ لہذا ، آپ اسے اے پی ٹی پیکیج مینیجر کے ساتھ آسانی سے انسٹال کرسکتے ہیں۔







سب سے پہلے ، مندرجہ ذیل کمانڈ کے ساتھ اے پی ٹی پیکیج ریپوزٹری کیشے کو اپ ڈیٹ کریں۔



$سودومناسب اپ ڈیٹ



اے پی ٹی پیکیج ریپوزٹری کیشے کو اپ ڈیٹ کیا جانا چاہیے۔





اب ، مندرجہ ذیل کمانڈ کے ساتھ گٹ اور اپاچی انسٹال کریں:



$سودومناسبانسٹال کریں جاؤapache2 apache2-utils۔

اب ، دبائیں۔ اور اور پھر دبائیں تنصیب کی تصدیق کے لیے

گٹ اور اپاچی انسٹال ہونا چاہیے۔

گٹ کے لیے اپاچی HTTP سرور کی تشکیل:

اب ، اپاچی کو فعال کریں۔ mod_env ، mod_cgi ، mod_alias اور mod_rewrite مندرجہ ذیل کمانڈ کے ساتھ ماڈیولز:

$سودوa2enmodenvسی جی آئیعرفدوبارہ لکھنا

مطلوبہ اپاچی ماڈیولز کو فعال کرنا چاہیے۔

اب ، ایک نئی ڈائریکٹری بنائیں۔ /var/www/git تمام گٹ ذخیروں کو درج ذیل کمانڈ کے ساتھ رکھنے کے لیے:

$سودو mkdir /کہاں/www/جاؤ

اب ، ایک نئی اپاچی سائٹ کنفیگریشن بنائیں۔ /etc/apache2/sites-available/git.conf Git کے لیے درج ذیل کمانڈ کے ساتھ:

$سودو نینو /وغیرہ/اپاچی 2۔/سائٹیں دستیاب ہیں۔/git.conf

اب ، کنفیگریشن فائل میں درج ذیل لائنیں ٹائپ کریں:

<ورچوئل ہوسٹ۔*:80۔>
سرور ایڈمن ویب ماسٹر۔۔لوکل ہوسٹ

SetEnv GIT_PROJECT_ROOT۔<مضبوط> /کہاں/www/جاؤمضبوط>
SetEnv GIT_HTTP_EXPORT_ALL۔
اسکرپٹ الیاس۔/جاؤ/ /usr/lib/گٹ کور/git-http-backend/

عرف/جاؤ /کہاں/www/جاؤ

<ڈائریکٹری/usr/lib/گٹ کور>
اختیارات +ExecCGI-ملٹی ویوز+SymLinksIfOwnerMatch۔
اجازت دیں اوور رائیڈ کوئی نہیں۔
تمام عطا کی ضرورت ہے۔
ڈائریکٹری>

DocumentRoot/کہاں/www/html

<ڈائریکٹری/کہاں/www>
آپشن انڈیکس فالو سیم لنکس ملٹی ویوز۔
اجازت دیں اوور رائیڈ کوئی نہیں۔
تمام عطا کی ضرورت ہے۔
ڈائریکٹری>


ErrorLog$ {APACHE_LOG_DIR}/error.log
لاگ لیول وارننگ۔
کسٹم لاگ۔$ {APACHE_LOG_DIR}/access.log مشترکہ۔
ورچوئل ہوسٹ۔>

حتمی ترتیب فائل مندرجہ ذیل نظر آتی ہے۔ اب ، کنفیگریشن فائل کو دباکر محفوظ کریں۔ + ایکس اس کے بعد اور اور .

اب ، مندرجہ ذیل کمانڈ کے ساتھ ڈیفالٹ اپاچی سائٹ کنفیگریشن کو غیر فعال کریں:

$سودوa2dissite 000-default.conf

ڈیفالٹ سائٹ کنفیگریشن غیر فعال ہونی چاہیے۔

اب ، مندرجہ ذیل کمانڈ کے ساتھ گٹ سائٹ کنفیگریشن کو فعال کریں:

$سودوa2ensite git.conf

گٹ سائٹ کنفیگریشن فعال ہونی چاہیے۔

اب ، مندرجہ ذیل کمانڈ کے ساتھ اپاچی HTTP سرور کو دوبارہ شروع کریں:

$سودوsystemctl apache2 دوبارہ شروع کریں۔

اپاچی ایچ ٹی ٹی پی سرور پر قابل رسائی ایک نیا گٹ ذخیرہ بوٹسٹریپ کرنے کے ل you ، آپ کو کچھ کمانڈ چلانی ہوں گی۔ آپ ایک نیا گٹ ذخیرہ بنانے کے لیے بار بار ایک ہی کام نہیں کرنا چاہتے۔ لہذا ، میں نے اس مقصد کے لیے شیل اسکرپٹ لکھنے کا فیصلہ کیا۔

پہلے ، ایک نیا شیل اسکرپٹ بنائیں۔ /usr/local/bin/git-create-repo.sh مندرجہ ذیل کمانڈ کے ساتھ:

$سودو نینو /usr/مقامی/ہوں/git-create-repo.sh

اب ، شیل اسکرپٹ میں کوڈ کی درج ذیل لائنیں ٹائپ کریں۔

#!/bin/bash

GIT_DIR='/var/www/git'
REPO_NAME۔=$ 1

mkdir -پی '$ {GIT_DIR}/$ {REPO_NAME}.جاؤ'
سی ڈی '$ {GIT_DIR}/$ {REPO_NAME}.جاؤ'

git init -بس &>۔ /دیو/خالی
چھوناgit-daemon-export-ok
cpہکس/پوسٹ اپ ڈیٹ. نمونہ ہکس/اپ ڈیٹ کے بعد
git confighttp.receivepackسچ
git update-server-info
چبانا -آرفwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.جاؤ'
باہر پھینک دیا 'گٹ ذخیرہ'$ {REPO_NAME}'میں بنایا گیا$ {GIT_DIR}/$ {REPO_NAME}.جاؤ'

ایک بار جب آپ ان لائنوں میں ٹائپ کرتے ہیں تو ، شیل اسکرپٹ کو مندرجہ ذیل نظر آنا چاہئے۔ اب ، دبانے سے فائل کو محفوظ کریں۔ + ایکس اس کے بعد اور اور .

اب ، درج ذیل کمانڈ کے ساتھ شیل اسکرپٹ میں عملدرآمد کی اجازت شامل کریں:

$سودو chmod+ ایکس۔/usr/مقامی/ہوں/git-create-repo.sh

اب ، ایک نیا گٹ ذخیرہ بنائیں۔ پرکھ گٹ پروجیکٹ کی جڑ میں۔ /var/www/git کا استعمال کرتے ہوئے git-create-repo.sh شیل اسکرپٹ مندرجہ ذیل ہے:

$سودوgit-create-repo.shپرکھ

گٹ ذخیرہ۔ پرکھ بنانا چاہیے.

گٹ ذخیرے تک رسائی کے ل you ، آپ کو گٹ HTTP سرور کا IP پتہ درکار ہے۔

$آئی پیکو

جیسا کہ آپ دیکھ سکتے ہیں ، میرے معاملے میں آئی پی ایڈریس ہے۔ 192.168.21.208۔ . یہ آپ کے لیے مختلف ہوگا۔ اسے اب سے اپنے ساتھ تبدیل کریں۔

اب ، آپ کلون کر سکتے ہیں پرکھ گٹ ذخیرہ مندرجہ ذیل ہے:

$گٹ کلونhttp://192.168.21.208۔/جاؤ/test.go

گٹ ذخیرہ۔ پرکھ کلون ہونا چاہیے

اب ، آئیے ایک نیا عہد شامل کریں۔ پرکھ گٹ ذخیرہ۔

$سی ڈیپرکھ/
$باہر پھینک دیا 'ہیلو ورلڈ' >ہیلو
$git add.
$گٹ کمٹمنٹ 'ابتدائی عہد'

اب ، تبدیلیوں کو اپ لوڈ کریں پرکھ سرور پر گٹ ذخیرہ مندرجہ ذیل ہے:

$گٹ دھکااصل

جیسا کہ آپ دیکھ سکتے ہیں ، تبدیلیاں بالکل ٹھیک اپ لوڈ کی جاتی ہیں۔

صارف کی توثیق کی تشکیل:

اس سیکشن میں ، میں آپ کو دکھانے جا رہا ہوں کہ سرور میں گٹ ذخیروں پر صارف کی تصدیق کو کیسے ترتیب دیا جائے۔

سب سے پہلے ، میں ترمیم کریں۔ git.conf سائٹ کنفیگریشن فائل درج ذیل ہے:

$سودو نینو /وغیرہ/اپاچی 2۔/سائٹیں دستیاب ہیں۔/git.conf

اب ، کنفیگریشن فائل میں درج ذیل سیکشن کو شامل کریں۔

<لوکیشن میچ۔/جاؤ/.*.جاؤ>
AuthType بنیادی۔
AuthName'گٹ کی تصدیق'
AuthUserFile۔/وغیرہ/اپاچی 2۔/git.passwd
درست صارف کی ضرورت ہے۔
لوکیشن میچ۔>

یہاں ، /etc/apache2/git.passwd صارف ڈیٹا بیس فائل ہے۔

حتمی ترتیب فائل مندرجہ ذیل نظر آنی چاہیے۔ اب ، دبانے سے فائل کو محفوظ کریں۔ + ایکس اس کے بعد اور اور .

اب ، ایک نیا صارف ڈیٹا بیس فائل بنائیں۔ /etc/apache2/git.passwd اور ایک نیا صارف شامل کریں (آئیے کہتے ہیں۔ شوون ڈیٹا بیس فائل میں درج ذیل:

$سودوhtpasswd-سی /وغیرہ/اپاچی 2۔/git.passwd shovon

اب ، نئے صارف کے لیے نیا پاس ورڈ ٹائپ کریں اور دبائیں۔ .

وہی پاس ورڈ دوبارہ ٹائپ کریں اور دبائیں۔ .

یوزر پاس ورڈ کا جوڑا ڈیٹا بیس میں شامل کیا جائے۔

اب ، مندرجہ ذیل کمانڈ کے ساتھ اپاچی HTTP سرور کو دوبارہ شروع کریں:

$سودوsystemctl apache2 دوبارہ شروع کریں۔

اب ، اگر آپ کلون کرنے کی کوشش کرتے ہیں۔ پرکھ ذخیرہ دوبارہ ، آپ سے تصدیق کرنے کو کہا جائے گا جیسا کہ آپ نیچے اسکرین شاٹ میں دیکھ سکتے ہیں۔

ایک بار جب آپ صارف نام اور پاس ورڈ کا استعمال کرتے ہوئے تصدیق کرتے ہیں ، تو آپ گٹ ذخیرے تک رسائی حاصل کر سکیں گے۔

یہاں تک کہ جب آپ گٹ ذخیرے سے دھکیلنے یا کھینچنے کی کوشش کریں گے ، آپ سے صارف نام اور پاس ورڈ بھی پوچھا جائے گا۔

ایک بار جب آپ تصدیق کرتے ہیں تو ، پش/پل کام کرے گا۔

آپ مختلف Git ذخیروں کے لیے مختلف صارف ڈیٹا بیس بھی ترتیب دے سکتے ہیں۔ یہ ان منصوبوں کے لیے مفید ہو سکتا ہے جہاں بہت سارے لوگ ایک ہی گٹ ذخیرے پر مل کر کام کر رہے ہوں۔

گٹ ذخیرے کے لحاظ سے توثیق کو ترتیب دینے کے لیے ، پہلے ترمیم کریں۔ git.conf سائٹ کنفیگریشن فائل درج ذیل ہے:

$سودو نینو /وغیرہ/اپاچی 2۔/سائٹیں دستیاب ہیں۔/git.conf

اب ، کنفیگریشن فائل میں درج ذیل لائنیں شامل کریں۔

<مقام/جاؤ/test.go>
AuthType بنیادی۔
AuthName'گٹ کی تصدیق'
AuthUserFile۔/وغیرہ/اپاچی 2۔/git.test.passwd
درست صارف کی ضرورت ہے۔
مقام>

<مقام/جاؤ/test2.git>
AuthType بنیادی۔
AuthName'گٹ کی تصدیق'
AuthUserFile۔/وغیرہ/اپاچی 2۔/git.test2.passwd
درست صارف کی ضرورت ہے۔
مقام>

ہر گٹ ذخیرے کے لیے۔ پرکھ اور ٹیسٹ 2۔ ، کو سیکشن کی وضاحت کی گئی ہے۔ ہر Git مخزن کے لیے ایک مختلف صارف ڈیٹا بیس فائل استعمال کی جاتی ہے۔

حتمی ترتیب فائل مندرجہ ذیل نظر آنی چاہیے۔ اب ، کنفیگریشن فائل کو دباکر محفوظ کریں۔ + ایکس اس کے بعد اور اور .

اب ، آپ مندرجہ ذیل کے طور پر مطلوبہ صارف ڈیٹا بیس بنا سکتے ہیں:

$سودوhtpasswd-سی /وغیرہ/اپاچی 2۔/git.test.passwd USERNAME۔
$سودوhtpasswd-سی /وغیرہ/اپاچی 2۔/git.test2.passwd USERNAME۔

ایک بار جب آپ کام کرلیں ، اپاچی HTTP سرور کو درج ذیل کمانڈ کے ساتھ دوبارہ شروع کریں:

$سودوsystemctl apache2 دوبارہ شروع کریں۔

اب ، ہر گٹ ذخیرے میں صارفین کا اپنا سیٹ ہونا چاہیے جو اس تک رسائی حاصل کر سکے۔

تو ، اسی طرح آپ اوبنٹو پر اپاچی ایچ ٹی ٹی پی سرور کے ساتھ گٹ سرور کو تشکیل دیتے ہیں۔ اس مضمون کو پڑھنے کے لیے شکریہ۔