ຄູ່ມືສຸດທ້າຍໃນການຕັ້ງຄ່າ Apache Subversion SVN ແລະ TortoiseSVN ສຳ ລັບການຄວບຄຸມເວີຊັນ


ຖ້າວຽກງານຂອງທ່ານຮຽກຮ້ອງໃຫ້ມີການຈັດການເອກະສານ, ເວບໄຊທ໌ແລະເອກະສານປະເພດອື່ນໆທີ່ຖືກປັບປຸງເປັນປົກກະຕິ, ທ່ານອາດຈະຕ້ອງການໃຊ້ກົນໄກຄວບຄຸມເວີຊັນຖ້າທ່ານຍັງບໍ່ໄດ້ປະຕິບັດຢູ່ແລ້ວ.

ໃນບັນດາສິ່ງອື່ນໆ, ສິ່ງນີ້ຊ່ວຍໃຫ້ທ່ານ (ແລະກຸ່ມຂອງຜູ້ຮ່ວມມືທີ່ມີທ່າແຮງເຊັ່ນດຽວກັນ) ຕິດຕາມການປ່ຽນແປງທີ່ເຮັດກັບເອກະສານທີ່ໃຫ້ໄວ້, ແລະຊ່ວຍໃຫ້ທ່ານສາມາດກັບຄືນໄປຫາຮຸ່ນເກົ່າກ່ອນຖ້າມີປັນຫາຫລືເມື່ອການປັບປຸງບໍ່ໄດ້ສ້າງຜົນທີ່ຄາດຫວັງ. .

ໃນລະບົບນິເວດຊອບແວທີ່ບໍ່ເສຍຄ່າ, ລະບົບຄວບຄຸມເວີຊັນທີ່ຖືກ ນຳ ໃຊ້ຫຼາຍທີ່ສຸດແມ່ນເອີ້ນວ່າ Apache Subversion (ຫຼື SVN ສັ້ນ). ດ້ວຍການຊ່ວຍເຫຼືອຂອງ mod_dav_svn (ໂມດູນຂອງ Apache ສຳ ລັບ Subversion), ທ່ານສາມາດເຂົ້າເຖິງຫໍສະມຸດ Subversion ໂດຍໃຊ້ HTTP ແລະເຄື່ອງແມ່ຂ່າຍເວັບ.

ສິ່ງນັ້ນເວົ້າ, ໃຫ້ເຮົານຸ່ງເສອແຂນຂອງພວກເຮົາແລະຕິດຕັ້ງເຄື່ອງມືເຫລົ່ານີ້ຢູ່ໃນເຄື່ອງແມ່ຂ່າຍ RHEL/CentOS 7, Fedora 22-24, Debian 8/7 ແລະ Ubuntu 16.04-15.04. ສຳ ລັບການທົດສອບຂອງພວກເຮົາພວກເຮົາຈະ ນຳ ໃຊ້ເຊີບເວີ CentOS 7 ທີ່ມີ IP 192.168.0.100.

ດ້ານລູກຄ້າ (ເຄື່ອງຈັກ Windows 7), ພວກເຮົາຈະຕິດຕັ້ງແລະ ນຳ ໃຊ້ TortoiseSVN (ເຊິ່ງອີງໃສ່ Apache Subversion) ເປັນການໂຕ້ຕອບກັບ SVN.

Server - CentOS 7
IP Address - 192.168.0.100
Client - Windows 7

ຂັ້ນຕອນທີ 1 - ການຕິດຕັ້ງແລະການຕັ້ງຄ່າ SVN ໃນ Linux

ດັ່ງທີ່ພວກເຮົາໄດ້ກ່າວມາແລ້ວ, ພວກເຮົາຈະອີງໃສ່ Apache ເພື່ອສາມາດເຂົ້າເຖິງຫໍສະມຸດ SVN ໂດຍໃຊ້ອິນເຕີເຟດ. ຖ້າມັນບໍ່ໄດ້ຖືກຕິດຕັ້ງຢູ່ແລ້ວ, ໃຫ້ແນ່ໃຈວ່າຈະເພີ່ມມັນເຂົ້າໃນບັນຊີຂອງແພັກເກດດັ່ງທີ່ສະແດງຢູ່ດ້ານລຸ່ມ:

------------------ On CentOS / RHEL / Fedora ------------------ 
# yum update && yum install mod_dav_svn subversion httpd -y

------------------ On Debian / Ubuntu ------------------ 
# apt-get update && apt-get install libapache2-svn subversion apache2 -y 

ໃນລະຫວ່າງການຕິດຕັ້ງໃນ CentOS 7, ເອກະສານການຕັ້ງຄ່າ Apache ສຳ ລັບ SVN ຈະຖືກສ້າງຂື້ນເປັນ /etc/httpd/conf.modules.d/10-subversion.conf. ເປີດເອກະສານແລະເພີ່ມບລັອກການຕັ້ງຄ່າດັ່ງຕໍ່ໄປນີ້:

<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/httpd/subversion-auth
    Require valid-user
</Location>

ໝາຍ ເຫດ: ໃນ Debian/Ubuntu ທ່ານ ຈຳ ເປັນຕ້ອງເພີ່ມສາຍຢູ່ທາງລຸ່ມໃສ່ /etc/apache2/mods-enabled/dav_svn.conf file.

<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/apache2/subversion-auth
    Require valid-user
</Location>

ໃນ Debian/Ubuntu, ທ່ານ ຈຳ ເປັນຕ້ອງເປີດໃຊ້ໂມດູນກວ້າງ_svn Apache:

# a2enmod dav_svn

ຄູ່ນ່ຶຂອງຄວາມກະຈ່າງແຈ້ງ:

  1. The SVNParentPath directive indicates the directory where our repositories will be later created. If this directory does not exist (which is most likely the case), create it with:
    # mkdir -p /websrv/svn
    

    It is important to note that this directory must NOT be located inside, or overlap, the DocumentRoot of a virtual host currently being served by Apache. This is a showstopper!

  2. The AuthUserFile directive indicates the file where the credentials of a valid user will be stored. If you want to allow everyone to access SVN without authentication, remove the last four lines in the Location block. If that is the case, skip Step 2 and head directly to Step 3.
  3. Although you may be tempted to restart Apache in order to apply these recent changes, don’t do it yet as we still need to create the authentication file with valid users for SVN, and the repository itself.

ຂັ້ນຕອນທີ 2 - ເພີ່ມຜູ້ໃຊ້ທີ່ອະນຸຍາດເຂົ້າໃຊ້ SVN

ດຽວນີ້ພວກເຮົາຈະໃຊ້ htpasswd ເພື່ອສ້າງລະຫັດລັບ ສຳ ລັບບັນຊີເຊິ່ງຈະຖືກອະນຸຍາດໃຫ້ເຂົ້າໃຊ້ SVN. ສຳ ລັບຜູ້ໃຊ້ ທຳ ອິດ, ພວກເຮົາຈະຕ້ອງການຕົວເລືອກ -c .

ບັນຊີທີ່ຖືກອະນຸຍາດແລະລະຫັດຜ່ານທີ່ເຂົ້າລະຫັດດ້ວຍລະຫັດລັບ ( -B ) ຈະຖືກເກັບໄວ້ໃນ/etc/httpd/subversion-auth ໃນຄູ່ ສຳ ຄັນ. ໃຫ້ສັງເກດວ່າໂດຍມາດຕະຖານຂອງມື້ນີ້, ການເຂົ້າລະຫັດ MD5 ຫຼື SHA ໃນຕອນຕົ້ນທີ່ໃຊ້ໂດຍ htpasswd ແມ່ນຖືວ່າບໍ່ປອດໄພ.

------------------ On CentOS / RHEL / Fedora ------------------ 
# htpasswd -cB /etc/httpd/subversion-auth tecmint

------------------ On Debian / Ubuntu ------------------ 
# htpasswd -cB /etc/apache2/subversion-auth tecmint

ຢ່າລືມຕັ້ງຄ່າສິດເປັນເຈົ້າຂອງແລະສິດທີ່ຖືກຕ້ອງໃຫ້ກັບເອກະສານການກວດສອບ:

------------------ On CentOS / RHEL / Fedora ------------------ 
# chgrp apache /etc/httpd/subversion-auth
# chmod 660 /etc/httpd/subversion-auth

------------------ On Debian / Ubuntu ------------------ 
# chgrp www-data /etc/apache2/subversion-auth
# chmod 660 /etc/apache2/subversion-auth

ຂັ້ນຕອນທີ 3 - ເພີ່ມຄວາມປອດໄພແລະສ້າງບ່ອນເກັບມ້ຽນ SVN

ເນື່ອງຈາກວ່າທ່ານຈະເຂົ້າໃຊ້ SVN ຜ່ານອິນເຕີເຟດ, ທ່ານຈະຕ້ອງໄດ້ອະນຸຍາດໃຫ້ມີການເຂົ້າຊົມ HTTP (ແລະທາງເລືອກ HTTPS) ຜ່ານ ກຳ ແພງຂອງທ່ານ.

------------------ On CentOS / RHEL / Fedora ------------------ 
# firewall-cmd --add-service=http --permanent
# firewall-cmd --add-service=https --permanent
# firewall-cmd --reload 

ໂດຍການຕັ້ງຄ່າການຕັ້ງຄ່າ firewall ຄືນ ໃໝ່ ດ້ວຍ - ໂຫຼດ , ການຕັ້ງຄ່າຖາວອນຈະຖືກ ນຳ ໃຊ້ທັນທີ.

ສ້າງຫໍສະມຸດ SVN ໃນເບື້ອງຕົ້ນທີ່ເອີ້ນວ່າ tecmint:

# svnadmin create /websrv/svn/tecmint

ປ່ຽນເຈົ້າຂອງແລະຜູ້ເປັນເຈົ້າຂອງກຸ່ມໃຫ້ເຂົ້າເວັບ ໃໝ່ ໂດຍອ້າງອີງ:

------------------ On CentOS / RHEL / Fedora ------------------ 
# chown -R apache:apache /websrv/svn/tecmint

------------------ On Debian / Ubuntu ------------------ 
# chown -R www-data:www-data /websrv/svn/tecmint

ສຸດທ້າຍ, ທ່ານຈະຕ້ອງປ່ຽນສະພາບການຄວາມປອດໄພຂອງ /websrv/svn/tecmint (ໃຫ້ສັງເກດວ່າທ່ານຈະຕ້ອງເຮັດອີກຂັ້ນຕອນນີ້ຖ້າທ່ານຕັດສິນໃຈສ້າງຫໍສະມຸດອື່ນໆໃນພາຍຫລັງ):

------------------ On CentOS / RHEL / Fedora ------------------ 
# chcon -R -t httpd_sys_content_t /websrv/svn/tecmint/
# chcon -R -t httpd_sys_rw_content_t /websrv/svn/tecmint/

ໝາຍ ເຫດ: ສອງ ຄຳ ສັ່ງສຸດທ້າຍອາດຈະບໍ່ຖືກ ນຳ ໃຊ້ຖ້າທ່ານ ກຳ ລັງຕິດຕັ້ງ SVN ໃສ່ VPS ທີ່ມີ SELinux ຖືກປິດໃຊ້ງານ.

Restart Apache ແລະກວດສອບບ່ອນເກັບມ້ຽນທີ່ມີຢູ່.

------------------ On CentOS / RHEL / Fedora ------------------ 
# systemctl restart httpd

------------------ On Debian / Ubuntu ------------------ 
# systemctl restart apache2

ຈາກນັ້ນເປີດຕົວທ່ອງເວັບແລະຊີ້ໄປທີ່ http://192.168.0.100/svn/tecmint . ຫຼັງຈາກເຂົ້າໄປໃນຂໍ້ມູນປະ ຈຳ ຕົວ ສຳ ລັບຜູ້ໃຊ້ທີ່ຖືກຕ້ອງທີ່ພວກເຮົາສ້າງຂື້ນໃນຂັ້ນຕອນທີ 1, ຜົນຜະລິດຄວນຈະຄ້າຍຄືກັບ:

ໃນຈຸດນີ້ພວກເຮົາບໍ່ໄດ້ເພີ່ມລະຫັດໃດໆໃນຫໍສະມຸດຂອງພວກເຮົາ. ແຕ່ພວກເຮົາຈະເຮັດແນວນັ້ນໃນເວລາ ໜຶ່ງ ນາທີ.

ຂັ້ນຕອນທີ 4 - ຕິດຕັ້ງ TortoiseSVN ໃນລູກຄ້າ Windows 7

ດັ່ງທີ່ພວກເຮົາໄດ້ກ່າວມາໃນບົດແນະ ນຳ, TortoiseSVN ແມ່ນການໂຕ້ຕອບທີ່ເປັນມິດກັບຜູ້ໃຊ້ກັບ Apache Subversion. ມັນແມ່ນຊອບແວເສລີທີ່ໄດ້ຮັບອະນຸຍາດພາຍໃຕ້ GPL ແລະສາມາດດາວໂຫລດໄດ້ຈາກ https://tortoisesvn.net/downloads.html.

ເລືອກສະຖາປັດຕະຍະ ກຳ (32 ຫລື 64 ບິດ) ທີ່ກົງກັບເຄື່ອງຂອງທ່ານແລະຕິດຕັ້ງໂປແກຼມກ່ອນທີ່ຈະ ດຳ ເນີນການຕໍ່ໄປ.

ຂັ້ນຕອນທີ 5 - ການຕັ້ງຄ່າຫໍສະມຸດ SVN ໃນເຄື່ອງລູກຄ້າ

ໃນຂັ້ນຕອນນີ້ພວກເຮົາຈະໃຊ້ໂຟນເດີທີ່ມີຊື່ວ່າ webapp ພາຍໃນເອກະສານຕ່າງໆ. ໂຟນເດີນີ້ມີເອກະສານ HTML, ແລະສອງແຟ້ມທີ່ມີຊື່ວ່າສະຄິບແລະຄໍເຕົ້າໄຂ່ທີ່ມີເອກະສານ Javascript ແລະເອກະສານ CSS (script.js ແລະ styles.css ຕາມ ລຳ ດັບ) ທີ່ພວກເຮົາຕ້ອງການເພີ່ມໃສ່ການຄວບຄຸມເວີຊັນ.

ກົດຂວາ webapp ແລະເລືອກ SVN Checkout. ນີ້ຈະສ້າງ ສຳ ເນົາຂອງບ່ອນເກັບຂໍ້ມູນຫ່າງໄກສອກຫຼີກໃນທ້ອງຖິ່ນ (ເຊິ່ງມັນບໍ່ຫວ່າງໃນເວລານີ້) ແລະເລີ່ມຕົ້ນໂຟເດີ ສຳ ລັບການຄວບຄຸມເວີຊັນ:

ໃນ URL ຂອງຫໍໄຕ, ພິມ http://192.168.0.100/svn/tecmint ແລະໃຫ້ແນ່ໃຈວ່າລາຍຊື່ການກວດກາໃນທ້ອງຖິ່ນຍັງຄືເກົ່າ, ຈາກນັ້ນກົດ OK:

ໃສ່ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານ (ເບິ່ງໃນຂັ້ນຕອນທີ 2) ແລະກົດ OK:

ທ່ານຈະຖືກຖາມວ່າທ່ານຕ້ອງການເຊັກເອົາເຂົ້າໃນໄດເລກະທໍລີທີ່ບໍ່ຫວ່າງຫລືບໍ່. ຢືນຢັນວ່າຈະ ດຳ ເນີນການກັບດ່ານກວດກາ. ເມື່ອມັນສ້າງ ສຳ ເລັດແລ້ວ, ເຄື່ອງ ໝາຍ ສີຂຽວຈະປາກົດຢູ່ຖັດຈາກຊື່ໂຟນເດີ:

ຂັ້ນຕອນທີ 6 - ປະຕິບັດການປ່ຽນແປງແລະຈັດສົ່ງເອກະສານໄປຍັງບ່ອນເກັບມ້ຽນເອກະສານ SVN ທີ່ຢູ່ໄກ

ກົດຂວາໃສ່ webapp ອີກເທື່ອ ໜຶ່ງ ແລະເລືອກ Commit this. ຕໍ່ໄປ, ຂຽນ ຄຳ ເຫັນທີ່ອະທິບາຍເພື່ອລະບຸຕໍ່ການກະ ທຳ ດັ່ງກ່າວ, ແລະກວດເບິ່ງເອກະສານແລະແຟ້ມທີ່ທ່ານຕ້ອງການ ນຳ ໃຊ້ໃນຫໍສະມຸດ. ສຸດທ້າຍ, ກົດ OK:

ອີງຕາມຂະ ໜາດ ຂອງເອກະສານ, ຄຳ ໝັ້ນ ສັນຍາບໍ່ຄວນໃຊ້ເວລາເກີນ ໜຶ່ງ ນາທີ. ເມື່ອມັນ ສຳ ເລັດແລ້ວ, ທ່ານຈະເຫັນວ່າຕອນນີ້ພວກເຮົາ ກຳ ລັງປັບປຸງແກ້ໄຂ 1, ເຊິ່ງກົງກັບເວີຊັນແລະແຟ້ມທີ່ລະບຸໄວ້ໃນອິນເຕີເນັດ:

ຖ້າມີຫລາຍຄົນເຮັດວຽກຢູ່ໃນເອກະສານດຽວກັນ, ທ່ານຕ້ອງການປັບປຸງ ສຳ ເນົາທ້ອງຖິ່ນຂອງທ່ານເພື່ອໃຫ້ມີສະບັບລ້າສຸດເພື່ອເຮັດວຽກ. ທ່ານສາມາດເຮັດແນວນັ້ນໄດ້ໂດຍການກົດທີ່ຂວາມືໃສ່ webapp ແລະເລືອກ Update ຈາກເມນູສະພາບການ.

ຊົມເຊີຍ! ທ່ານໄດ້ ສຳ ເລັດການຕັ້ງຄ່າເຊີຟເວີ SVN ແລະໄດ້ກະກຽມ/ປັບປຸງໂຄງການງ່າຍໆພາຍໃຕ້ການຄວບຄຸມເວີຊັນ.

ບົດສະຫຼຸບ

ໃນບົດຂຽນນີ້ພວກເຮົາໄດ້ອະທິບາຍວິທີການຕິດຕັ້ງແລະ ກຳ ຫນົດຄ່າເຄື່ອງແມ່ຂ່າຍຂອງ Apache Subversion repository ໃນເຄື່ອງແມ່ຂ່າຍ CentOS 7, ແລະວິທີການທີ່ຈະປະຕິບັດການປ່ຽນແປງໃນຫໍສະມຸດນັ້ນໂດຍໃຊ້ TortoiseSVN.

ກະລຸນາຮັບຊາບວ່າມີຫຼາຍຢ່າງຫຼາຍຕໍ່ SVN ແລະ TortoiseSVN ຫຼາຍກ່ວາສິ່ງທີ່ພວກເຮົາສາມາດກວມເອົາໄດ້ທີ່ນີ້ຢ່າງພຽງພໍ (ເປັນພິເສດໃນການກັບຄືນສູ່ການດັດແກ້ທີ່ຜ່ານມາ), ດັ່ງນັ້ນທ່ານອາດຈະຕ້ອງການອ້າງອີງເຖິງເອກະສານທາງການ (TortoiseSVN) ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມແລະກໍລະນີການຕັ້ງຄ່າ.

ດັ່ງທີ່ເຄີຍເຮັດ, ຢ່າລັງເລທີ່ຈະແຈ້ງໃຫ້ພວກເຮົາທາບຖ້າທ່ານມີ ຄຳ ຖາມ! ຮູ້ສຶກວ່າສາມາດໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມເພື່ອເຂົ້າຫາພວກເຮົາໄດ້ທຸກເວລາ.