אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » יצירת שרת SVN בשרת הפיתוח

יצירת שרת SVN בשרת הפיתוח

רן בר-זיק יוני 20, 2010 8:02 am אין תגובות

התקנת מערכת ניהול גרסאות מסוג SVN על לינוקס (דביאן) והתחברות אליו עם Tortoise

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

SVN היא שיטת ניהול הגרסאות המובילה בסביבת קוד פתוח. למרות שיש עוד שיטת ניהול גרסאות (כמו Git שתפסה תאוצה בזמן האחרון). SVN לטעמי היא השיטה המוצלחת ביותר לניהול גרסאות. כאשר מקובל להתקין שרת SVN על שרת פיתוח מבוסס לינוקס ולנהל אותו ישירות מה-Shell או באמצעות ה-repo-browser של SVN Tortoise שהוא קליינט מוצלח מאד לחלונות (למי שלא מכיר).

קל להתקין SVN Tortoise על מחשב הפיתוח שעובד על חלונות. קצת פחות קל להתקין שרת SVN על שרת פיתוח מבוסס לינוקס (דביאן). יש כמה סוגים של התקנות, הפופולרית יותר היא התקנה עם SSH לאבטחה יותר טובה. אבל אם עסקינן בשרת פיתוח ביתי, שגם כך לא חשוף בכלל לאינטרנט או שנמצא מאחורי פיירוול טוב, אין סיבה שלא להתקין שרת SVN מאובטח מעט פחות אך קל יותר להתקנה ולתפעול. כל הפקודות במדריך הזה מתאימות להפצת לינוקס מסוג דביאן (אובונטו, centos וכו').

ראשית עלינו להתקין את SVN על שרת הפיתוח שלנו. נכנסים ל-shell של לינוקס ומתקינים גם את ה-SVN וגם את SVN server:


sudo apt-get install subversion libapache2-svn

אחרי כן ניצור תיקיה שבה יהיו ה-repository שלנו. אני בדרך כלל יוצר תיקית SVN ממש מתחת ל-root:


sudo svnadmin create /svn

עכשיו נערוך את קובץ ההגדרות. נכנס עם עורך הטקסט nano לקובץ ההגדרות:


sudo nano /etc/apache2/mods-enabled/dav_svn.conf

ונשנה את מה שמופיע שם למה שמופיע פה. אין הרבה הבדל ביניהם, רק כמה uncomment.


# Note, a literal /svn should NOT exist in your document root.
<location /svn>

  # Uncomment this to enable the repository
  DAV svn

  # Set this to the path to your repository
  #SVNPath /var/lib/svn
  SVNPath /svn

  # Alternatively, use SVNParentPath if you have multiple repositories under
  # under a single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...).
  # You need either SVNPath and SVNParentPath, but not both.
  #SVNParentPath /var/lib/svn

  # Access control is done at 3 levels: (1) Apache authentication, via
  # any of several methods.  A "Basic Auth" section is commented out
  # below.  (2) Apache limit and limitexcept, also commented out
  # below.  (3) mod_authz_svn is a svn-specific authorization module
  # which offers fine-grained read/write access control for paths
  # within a repository.  (The first two layers are coarse-grained; you
  # can only enable/disable access to an entire repository.)  Note that
  # mod_authz_svn is noticeably slower than the other two layers, so if
  # you don't need the fine-grained control, don't configure it.

  # Basic Authentication is repository-wide.  It is not secure unless
  # you are using https.  See the 'htpasswd' command to create and
  # manage the password file - and the documentation for the
  # 'auth_basic' and 'authn_file' modules, which you will need for this
  # (enable them with 'a2enmod').
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user

  # To enable authorization via mod_authz_svn
  #AuthzSVNAccessFile /etc/apache2/dav_svn.authz

  # The following three lines allow anonymous read, but make
  # committers authenticate themselves.  It requires the 'authz_user'
  # module (enable it with 'a2enmod').
  #<limitexcept GET PROPFIND OPTIONS REPORT>
    #Require valid-user
  #</limitexcept>

</location>


שימו לב שבשורה SVNPath /svn ה/svn זה הנתיב שצריך להכניס במידה ולא בחרתם ליצור repository בתיקית svn מתחת ל-root.

עכשיו צריך ליצור user ל-SVN.


sudo htpasswd -c /etc/apache2/dav_svn.passwd 

כאשר במקום ה- אנו רושמים את השם האמיתי של המשתמש (למשל ran). אחרי כן אנו נתבקש להזין סיסמה ואחרי כן שוב סיסמה.

אם אנו רוצים ליצור משתמש נוסף, אנו נשתמש בשורה הבאה:


sudo htpasswd -m /etc/apache2/dav_svn.passwd 

השינוי הוא בין האות c לאות m.

עכשיו, אחרי שסיימנו את כל ההגדרות, נרסט את ה-apache:


sudo /etc/init.d/apache2 restart

אם אין שגיאות (ולא צריכות להיות) אז כדאי לבדוק את השרת. אנו נכניס את ה-ip של המחשב שלנו בתוספת שם התיקיה. בשרת הפיתוח שלי למשל, ה-IP הפנימי של מחשב הפיתוח הוא: 192.168.253.83 ולפיכך הכתובת של שרת ה-SVN היא: http://192.168.253.83/svn
נכניס את הכתובת לדפדפן, אם קופץ לנו פופ-אפ חביב שמבקש שם משתמש וסיסמה, הכל תקין. נזין שם משתמש וסיסמה ונראה את ה-repository שלנו.

עכשיו הגיעה העת לחבר את שרת ה-SVN ל-Tortoise הנאמן שלנו. אבל זה די קל, נכנסים ל-Repo-browser ומכניסים בראשו את הכתובת שלנו, כמו למשל http://192.168.253.83/svn. יקפוץ פופ אפ של שם משתמש וסיסמה, נכניס את שם המשתמש והסיסמה וזה הכל.

במידה וכאשר אנו מנסים ליצור תיקיה באמצעות ה-Tortoise ויש לנו שגיאת access denied, אנחנו צריכים לבדוק את ההרשאות בתיקית svn/.

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

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
מידע למפתחים פתרונות תשתית

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד