הגדר את שרת Git עם HTTP באובונטו

Configure Git Server With Http Ubuntu



אם אתה רוצה להתקין שרת HTTP של Git לעבודה עם מאגרי Git באופן פרטי, מאמר זה הוא בשבילך. במאמר זה, אני הולך להראות לך כיצד להגדיר שרת Git Smart HTTP באובונטו עם שרת HTTP של Apache. אז בואו נתחיל.

חבילות Git ו- Apache זמינות במאגר החבילות הרשמי של אובונטו. אז אתה יכול להתקין אותו בקלות עם מנהל החבילות APT.







ראשית, עדכן את מטמון מאגר החבילות APT בפקודה הבאה:



$סודועדכון מתאים



יש לעדכן את מטמון מאגר החבילות APT.





כעת, התקן את Git ו- Apache עם הפקודה הבאה:



$סודומַתְאִיםלהתקין ללכתapache2 apache2-utils

עכשיו, לחץ וגם ולאחר מכן לחץ על כדי לאשר את ההתקנה.

צריך להתקין Git ו- Apache.

הגדרת שרת HTTP של Apache עבור Git:

כעת, הפעל את Apache mod_env , mod_cgi , mod_alias ו mod_rewrite מודולים עם הפקודה הבאה:

$סודוa2enmodenvcgiכינוילִכתוֹב מִחָדָשׁ

יש להפעיל את המודולים הנדרשים של Apache.

כעת, צור ספרייה חדשה /var/www/git לשמירה על כל מאגרי Git עם הפקודה הבאה:

$סודו mkdir /איפה/www/ללכת

כעת, צור תצורה חדשה של אתר Apache /etc/apache2/sites-available/git.conf עבור Git עם הפקודה הבאה:

$סודו ננו /וכו/apache2/זמין באתרים/git.conf

כעת, הקלד את השורות הבאות בקובץ התצורה:

<VirtualHost*:80>
מנהל האתר של ServerAdmin@מארח מקומי

SetEnv GIT_PROJECT_ROOT<חָזָק> /איפה/www/ללכתחָזָק>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/ללכת/ /usr/lib/git-core/git-http-backend/

כינוי/ללכת /איפה/www/ללכת

<מַדרִיך/usr/lib/git-core>
אפשרויות +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride אין
לדרוש את כל המוענק
מַדרִיך>

DocumentRoot/איפה/www/html

<מַדרִיך/איפה/www>
אפשרויות אינדקס FollowSymLinks MultiViews
AllowOverride אין
לדרוש את כל המוענק
מַדרִיך>


יומן שגיאות$ {APACHE_LOG_DIR}/error.log
מזהיר LogLevel
CustomLog$ {APACHE_LOG_DIR}/access.log בשילוב
VirtualHost>

קובץ התצורה הסופי נראה כדלקמן. כעת, שמור את קובץ התצורה על ידי לחיצה על + איקס בא אחריו וגם ו .

כעת, השבת את תצורת אתר Apache המוגדרת כברירת מחדל באמצעות הפקודה הבאה:

$סודוa2dissite 000-default.conf

יש להשבית את תצורת ברירת המחדל של האתר.

כעת, הפעל את תצורת אתר Git באמצעות הפקודה הבאה:

$סודוa2ensite git.conf

יש לאפשר את תצורת אתר Git.

כעת, הפעל מחדש את שרת HTTP של Apache עם הפקודה הבאה:

$סודוsystemctl הפעלה מחדש של apache2

על מנת לאתחל מאגר Git חדש הנגיש באמצעות שרת HTTP של Apache, יהיה עליך להריץ כמה פקודות. אתה לא רוצה לעשות את אותו הדבר שוב ושוב רק כדי ליצור מאגר Git חדש. לכן, החלטתי לכתוב סקריפט מעטפת למטרה זו.

ראשית, צור סקריפט מעטפת חדש /usr/local/bin/git-create-repo.sh עם הפקודה הבאה:

$סודו ננו /usr/מְקוֹמִי/אני/git-create-repo.sh

כעת, הקלד את שורות הקודים הבאות בתסריט המעטפת.

#!/bin/bash

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

mkdir -p '$ {GIT_DIR}/$ {REPO_NAME}.ללכת'
CD '$ {GIT_DIR}/$ {REPO_NAME}.ללכת'

git init --רַק &> /dev/ריק
לגעתgit-daemon-export-ok
cpווים/הודעות ווים/לאחר עדכון
git confighttp.receivepackנָכוֹן
git עדכון-שרת-מידע
חבוש -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.ללכת'
זרק 'מאגר Git'$ {REPO_NAME}' נוצר ב$ {GIT_DIR}/$ {REPO_NAME}.ללכת'

לאחר הקלדת שורות אלה, סקריפט המעטפת אמור להיראות כדלקמן. כעת, שמור את הקובץ על ידי לחיצה על + איקס בא אחריו וגם ו .

כעת, הוסף הרשאת ביצוע לסקריפט המעטפת באמצעות הפקודה הבאה:

$סודו chmod+ x/usr/מְקוֹמִי/אני/git-create-repo.sh

כעת, צור מאגר Git חדש מִבְחָן בשורש פרוייקט Git /var/www/git משתמש ב git-create-repo.sh סקריפט מעטפת כדלקמן:

$סודוgit-create-repo.shמִבְחָן

מאגר Git מִבְחָן צריך להיווצר.

כדי לגשת למאגר Git, אתה צריך את כתובת ה- IP של שרת Git HTTP.

$ipל

כפי שאתה יכול לראות, כתובת ה- IP במקרה שלי היא 192.168.21.208 . אצלך זה יהיה שונה. החלף אותו שלך מעכשיו.

כעת תוכל לשכפל את מִבְחָן מאגר Git כדלקמן:

$שיבוט githttp://192.168.21.208/ללכת/test.go

מאגר Git מִבְחָן צריך לשבט.

כעת, נוסיף התחייבות חדשה ל מִבְחָן מאגר Git.

$CDמִבְחָן/
$זרק 'שלום עולם' >שלום
$git להוסיף.
$git commit -M 'התחייבות ראשונית'

כעת, העלה את השינויים ל- מִבְחָן מאגר Git בשרת כדלקמן:

$git pushמָקוֹר

כפי שאתה יכול לראות, השינויים מועלים בסדר גמור.

הגדרת אימות משתמש:

בחלק זה, אני הולך להראות לך כיצד להגדיר את אימות המשתמש במאגרי Git בשרת.

ראשית, ערוך את git.conf קובץ תצורת האתר כדלקמן:

$סודו ננו /וכו/apache2/זמין באתרים/git.conf

כעת, הוסף את הקטע הבא בקובץ התצורה.

<LocationMatch/ללכת/.*.ללכת>
AuthType Basic
שם אמת'אימות גיט'
AuthUserFile/וכו/apache2/git.passwd
דרוש משתמש חוקי
LocationMatch>

פה, /etc/apache2/git.passwd הוא קובץ מסד הנתונים של המשתמש.

קובץ התצורה הסופי צריך להיראות כדלקמן. כעת, שמור את הקובץ על ידי לחיצה על + איקס בא אחריו וגם ו .

כעת, צור קובץ מסד נתונים חדש של משתמשים /etc/apache2/git.passwd והוסף משתמש חדש (נניח shovon ) לקובץ מסד הנתונים כדלקמן:

$סודוhtpasswd /וכו/apache2/git.passwd shovon

כעת, הקלד סיסמה חדשה עבור המשתמש החדש ולחץ .

הקלד שוב את אותה הסיסמה ולחץ .

יש להוסיף את זוג סיסמת המשתמש למסד הנתונים.

כעת, הפעל מחדש את שרת HTTP של Apache עם הפקודה הבאה:

$סודוsystemctl הפעלה מחדש של apache2

עכשיו, אם אתה מנסה לשכפל את מִבְחָן מאגר שוב, תתבקש לאמת כפי שאתה יכול לראות בצילום המסך למטה.

לאחר שתאמת באמצעות שם המשתמש והסיסמה, תוכל לגשת למאגר Git.

גם כשאתה מנסה לדחוף או למשוך ממאגר Git, תתבקש גם להזין את שם המשתמש והסיסמה.

ברגע שתאמת, דחיפה/משיכה יעבוד.

תוכל גם להגדיר מסד נתונים של משתמשים שונים עבור מאגרי Git שונים. זה עשוי להיות שימושי עבור פרויקטים שבהם הרבה אנשים עובדים יחד על אותו מאגר Git.

כדי להגדיר אימות מבחינת מאגר Git, ראשית, ערוך את git.conf קובץ תצורת האתר כדלקמן:

$סודו ננו /וכו/apache2/זמין באתרים/git.conf

כעת, הוסף את השורות הבאות בקובץ התצורה.

<מקום/ללכת/test.go>
AuthType Basic
שם אמת'אימות גיט'
AuthUserFile/וכו/apache2/git.test.passwd
דרוש משתמש חוקי
מקום>

<מקום/ללכת/test2.git>
AuthType Basic
שם אמת'אימות גיט'
AuthUserFile/וכו/apache2/git.test2.passwd
דרוש משתמש חוקי
מקום>

לכל מאגר Git מִבְחָן ו test2 , ל קטע מוגדר. קובץ מסד נתונים אחר של משתמשים משמש לכל מאגר Git.

קובץ התצורה הסופי צריך להיראות כדלקמן. כעת, שמור את קובץ התצורה על ידי לחיצה על + איקס בא אחריו וגם ו .

כעת תוכל ליצור את מסדי הנתונים של המשתמשים הדרושים כדלקמן:

$סודוhtpasswd /וכו/apache2/git.test.passwd USERNAME
$סודוhtpasswd /וכו/apache2/git.test2.passwd USERNAME

לאחר שתסיים, הפעל מחדש את שרת HTTP של Apache עם הפקודה הבאה:

$סודוsystemctl הפעלה מחדש של apache2

כעת, לכל מאגר Git צריכה להיות קבוצת משתמשים משלו שיכולה לגשת אליו.

אז כך אתה מגדיר את שרת Git עם שרת HTTP של Apache באובונטו. תודה שקראת מאמר זה.