Ubuntu下Apache+SVN+submin實現WEB管理SVN


為什么需要submin管理SVN?

原來在Ubuntu下,都是直接通過命令行創建SVN倉庫並分配權限,但是這有一些問題:

  • 每創建一個SVN倉庫,都需要修改httpd.conf
  • 每創建一個帳戶,都需要手動輸入htpasswd並指定文件
  • 每修改權限,都要求登陸到服務器編輯authz
  • 授權管理員權限困難,且必須提供登陸Linux的帳號;
    這些不便在創建submin后都可以解決。

submin的安裝與配置

1.下載submin源碼包,我使用的是submin-2.1.2-0.tar.gz
2.解壓,進入源碼根目錄,執行以下命令將submin安裝到系統:

$sudo python setup.py install

3.創建submin的環境,執行以下命令

$sudo submin2-admin /var/lib/submin initenv yourname@email.address

4.執行以下命令

$sudo ln -s /var/lib/submin/conf/apache-webui-cgi.conf /etc/apache2/conf.d/
$sudo ln -s /var/lib/submin/conf/apache-svn.conf /etc/apache2/conf.d/
$sudo apache restart

5.在瀏覽器中輸入http://localhost/submin/

提示以下界面,表示安裝成功,用戶名為admin,密碼會發送到前面配置環境時設置的郵箱。

登陸成功后,應該出現如下界面,菜單欄USERS下面應有admin用戶 :

如果沒有正常顯示,說明submin可能哪里還沒配置成功。運行

$sudo submin2-admin /var/lib/submin diagnostics

檢查下,最后會輸出一段總結,確認下Subversion是ok的。

(...省略部分輸出)
Summary:

* Email settings: fail
* Git:            ok
* Subversion:     ok #這邊一定要為ok
* Trac:           disabled

如果不為ok,請根據具體的出錯現象排查,下面一節是我在配置過程中遇到的問題。

配置中遇到的問題

沒有啟用CGI的錯誤

如果出現以下錯誤,說明沒有啟用CGI:

配置方法:
修改httpd.conf(基於Apache 2.4),確保以下CGI和rewrite,alias模塊有打開:

LoadModule cgid_module modules/mod_cgid.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule alias_module modules/mod_alias.so

找到以下標簽,確保有ScriptAlias指令,沒有則添加:

<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/cgi-bin/"
</IfModule>

找到以下標簽,按以下配置修改

<Directory "/usr/cgi-bin">
    AllowOverride None
    Options +ExecCGI
</Directory>
AddHandler cgi-script .cgi .pl

然后重啟下apache,自己編寫下測試程序test.sh

#!/bin/bash
echo '<h1>hello</h1>'

修改權限為755,然后放到/usr/cgi-bin/。
在瀏覽器中輸入http://localhost/cgi-bin/test.sh, 測試下如果能正常輸出,說明CGI配置OK了。

不能正常發送郵箱的處理方法

先確保本地mail命令能正常使用,然后刪除/var/lib/submin,重新配置submin,郵箱地址配置成當前用戶。比如當前登陸的用戶名為root,則為

$sudo submin2-admin /var/lib/submin initenv root@localhost

權限問題

apache是以www-data用戶運行的,可能對/opt/svn沒有寫入權限,因此將/opt/svn的所有者改為www-data。

chown www-data:www-data /opt/svn 

參考

Invalid command 'Rewrite Engine'解決方法
apache運行CGI程序的配置
SVN的WEB管理接口 Submin安裝搭建
ubuntu 14.04安裝submin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM