كيفية إعداد خادم Subversion (SVN) على GNU/Linux - Ubuntu [مغلق]

StackOverflow https://stackoverflow.com/questions/60736

  •  09-06-2019
  •  | 
  •  

سؤال

لدي جهاز كمبيوتر محمول يعمل بنظام Ubuntu وأرغب في العمل كخادم Subversion.سواء بالنسبة لي للالتزام محليًا أو للآخرين عن بعد.ما هي الخطوات المطلوبة للحصول على هذا العمل؟يرجى تضمين الخطوات التالية:

  • احصل على Apache والوحدات النمطية الضرورية وقم بتكوينها (أعلم أن هناك طرقًا أخرى لإنشاء خادم SVN، لكني أرغب في أن يكون خاصًا بـ Apache)
  • تكوين طريقة آمنة للوصول إلى الخادم (SSH/HTTPS)
  • قم بتكوين مجموعة من المستخدمين المعتمدين (كما هو الحال في، يجب أن يكونوا مصرح لهم بالالتزام، ولكنهم أحرار في التصفح)
  • التحقق من صحة الإعداد من خلال الالتزام الأولي ("Hello World" من نوع ما)

يمكن أن تتضمن هذه الخطوات أي خليط من سطر الأوامر أو تعليمات تطبيق واجهة المستخدم الرسومية.إذا أمكن، يرجى ملاحظة أين تكون التعليمات خاصة بتوزيع أو إصدار معين، وأين يمكن استخدام اختيار المستخدمين لأداة معينة بدلاً من ذلك (على سبيل المثال، نانو بدلاً من السادس).

هل كانت مفيدة؟

المحلول

الخطوات التي اتخذتها لجعل جهاز الكمبيوتر المحمول الخاص بي خادمًا للتخريب.يجب أن يذهب الائتمان إلى ألفزارو لتوجيهاته هنا.لدي الآن خادم SVN يعمل (والذي تم اختباره محليًا حاليًا فقط).

الإعداد المحدد:كوبونتو 8.04 هاردي هيرون

متطلبات اتباع هذا الدليل:

  • apt-get برنامج مدير الحزم
  • محرر النصوص (أنا أستخدم كيت)
  • حقوق الوصول إلى سودو

1:تثبيت خادم Apache HTTP والوحدات المطلوبة:

sudo apt-get install libapache2-svn apache2

سيتم تثبيت الحزم الإضافية التالية:

apache2-mpm-worker apache2-utils apache2.2-common

2:تمكين طبقة المقابس الآمنة

sudo a2enmod ssl
sudo kate /etc/apache2/ports.conf

قم بإضافة أو التحقق من وجود ما يلي في الملف:

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

3:إنشاء شهادة SSL:

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

4:إنشاء مضيف افتراضي

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
sudo kate /etc/apache2/sites-available/svnserver

التغيير (فيports.conf):

"NameVirtualHost *" to "NameVirtualHost *:443"

و (في سفنسيرفر)

<VirtualHost *> to <VirtualHost *:443>

أضف ضمن ServerAdmin (أيضًا في الملف svnserver):

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

5:تمكين الموقع:

sudo a2ensite svnserver
sudo /etc/init.d/apache2 restart

للتغلب على التحذيرات:

sudo kate /etc/apache2/apache2.conf

يضيف:

"ServerName $your_server_name"

6:إضافة المستودع (المستودعات):يفترض الإعداد التالي أننا نريد استضافة مستودعات متعددة.قم بتشغيل هذا لإنشاء المستودع الأول:

sudo mkdir /var/svn

REPOS=myFirstRepo
sudo svnadmin create /var/svn/$REPOS
sudo chown -R www-data:www-data /var/svn/$REPOS
sudo chmod -R g+ws /var/svn/$REPOS

6.أ.لمزيد من المستودعات:قم بالخطوة 6 مرة أخرى (تغيير قيمة REPOS)، وتخطي الخطوة mkdir /var/svn

7:إضافة مستخدم مصادق عليه

sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name

8:تمكين وتكوين WebDAV وSVN:

sudo kate /etc/apache2/mods-available/dav_svn.conf

إضافة أو إلغاء التعليق:

<Location /svn>
DAV svn

# for multiple repositories - see comments in file
SVNParentPath /var/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
</Location>

9:إعادة تشغيل خادم أباتشي:

sudo /etc/init.d/apache2 restart

10:تصديق:

تشغيل المتصفح:

http://localhost/svn/$REPOS
https://localhost/svn/$REPOS

كلاهما يتطلب اسم مستخدم وكلمة مرور.أعتقد دون تعليق:

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

في /etc/apache2/mods-available/dav_svn.conf, ، سيسمح بالتصفح المجهول.

يعرض المتصفح "المراجعة 0:/"

ارتكب شيئا:

svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”

قبول الشهادة وإدخال كلمة المرور.تحقق مما التزمت به للتو:

svn co --username $user_name https://localhost/svn/$REPOS

باتباع هذه الخطوات (بافتراض أنني لم أرتكب أي خطأ في النسخ/اللصق)، كان لدي مستودع SVN عامل على الكمبيوتر المحمول الخاص بي.

نصائح أخرى

بعد ذلك، كنت بحاجة إلى التنفيذ (في سياق المثال المقتبس أعلاه)

$ sudo chmod g+w /var/svn/$REPOS/db/rep-cache.db

$ sudo chown www-data:www-data /var/svn/$REPOS/db/rep-cache.db

وإلا فإنني أتلقى خطأ 409 عند ارتكاب تعديلات محلية (على الرغم من أن الالتزامات كانت فعالة من جانب الخادم ، إلا أنني كنت بحاجة إلى المتابعة مع التحديثات المحلية)

هذا المقال يبدو أنه يعطي ملخصًا جيدًا للعملية بأكملها.أوصي باتباع التعليمات، ثم نشر بعض الأسئلة الأكثر تحديدًا حول أي مشكلات تواجهها والتي لم يتم تناولها في المقالات التي قمت أنا وأشخاص آخرون بربطها في هذه الردود.

إذا حصلت على 403 محظورًا عند وصولك إلى خادم الويب، فقد يكون ذلك بسبب استخدامك لاسم مضيف غير ما حددته في ملف التكوين الخاص بك (أي المضيف المحلي أو 127.0.0.1).حاول الضرب https://whateveryousetasyourhostname بدلاً من...

يرجى كتابة أمر واحد على المحطة.

لفتح المحطة يرجى الضغط كنترول + بديل + ت, ، ثم اكتب هذا الأمر:

$sudo apt-get install subversion

بالنسبة لأباتشي:

sudo apt-get -yq install apache2

بالنسبة لـ SSH:

sudo apt-get -yq install openssh-server

للتخريب:

sudo apt-get -yq install subversion subversion-tools

إذا كنت ترغب في ذلك، يمكنك دمجها في أمر واحد مثل:

sudo apt-get -yq install apache2 openssh-server subversion subversion-tools

لا أستطيع المساعدة في الباقي...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top