【正文】
畢業(yè)設(shè)計(論文)基于Web的subversion用戶管理系統(tǒng)論文作者姓名:申請學(xué)位專業(yè):申請學(xué)位類別:指導(dǎo)教師姓名(職稱):論文提交日期:基于Web的subversion用戶管理系統(tǒng)摘 要本系統(tǒng)主要是基于Web的subversion系統(tǒng)的用戶管理系統(tǒng)。在開源軟件世界,并行版本系統(tǒng)(cvs)一直是版本控制長久以來的唯一選擇,但是,和其它許多工具一樣,cvs開始顯露出衰老的跡象,而subversion,正是以cvs繼任者的面目出現(xiàn)的新型版本控制系統(tǒng)。但是,它的用戶管理機(jī)制卻是很差,本系統(tǒng)正是基于這個現(xiàn)實。實現(xiàn)友好的subversion用戶界面,以提高工作效率。subversion用戶管理系統(tǒng)分為兩大基本部分,一個是普通用戶的注冊及自己資料的修改和管理。另外一個主要部分是超級用戶對于普通用戶的申請進(jìn)行認(rèn)證。以及對通過認(rèn)證的用戶分配相應(yīng)的權(quán)限。本系統(tǒng)是基于apache和php平臺的Web應(yīng)用程序。采用php人作為前臺開發(fā)語言。Mysql作為后臺數(shù)據(jù)庫。apache作為服務(wù)器對subversion用戶進(jìn)行管理。系統(tǒng)具有良好的穩(wěn)定性,并具有可移植性強(qiáng)等特點。關(guān)鍵詞:Php;Subversion;Apache;用戶管理User Management System Based on WEB for SubversionAbstractThe system is a Web based user management system about subversion. On the Open Source World, concurrent version system (cvs) has long been the only choice in version control. However, like many other tools, cvs begins to show out of date. And subversion, as a successor to cvs which has the features of the new version control system. However, its user management mechanism is poor. The system is based on the reality, achieves a friendly user interface, in order to enhance efficiency.The user management subsystem of subversion is divided into two basic parts. One part is ordinary user management, including registration and information editing. Another major part is the superuser authenticates to the mon user’s applications and the distribution of the corresponding authority.The system is based on Web using apache, php and mysql. Php as a active pager procedure, mysql as background information storage. Apache as HTTP server to provide a web interface for this user management system. The system has high stability and portability .Key words: Php;Subversion;Apache;User Managemen目 錄論文總頁數(shù):24頁1引 言 12系統(tǒng)需求分析 2 2 2 2 3 3 3 33系統(tǒng)總體設(shè)計 3 3 3 44環(huán)境選擇、搭建和配置 4+php+mysql的可行性以及各自特點 4+php+mysql的可行性 4 php技術(shù)的特點 4 apache的技術(shù)特點 5 mysql的技術(shù)特點 5 6 安裝配置php 6 安裝配置apache 6 安裝配置mysql 7 安裝subversion以及建立版本庫 8 subversion服務(wù)器配置 95模塊功能的詳細(xì)實現(xiàn)過程 10 10 11 11 12 12 1添加、刪除和更新等 13 17 17 186模塊測試結(jié)果 18 18 19結(jié) 論 22參考文獻(xiàn) 22致 謝 23聲 明 241引 言版本控制之于程序員,就好像還原系統(tǒng)對于計算機(jī)一樣。使得即使計算機(jī)系統(tǒng)崩潰了,也能回復(fù)到正常的狀態(tài)。同樣,版本控制使您有能力去冒以往想都不敢想的風(fēng)險。如果哪兒出了錯,您總是可以使自己的代碼回復(fù)到一個已知的、工作正常的版本。您可以在不觸及主干的分支中進(jìn)行試驗,而不會影響到其他小組成員。如果沒有版本控制,您必須極為慎之又慎,緩慢地推進(jìn),總而言之,生產(chǎn)力會更低。在開源軟件世界,并行版本系統(tǒng)(CVS)一直是版本控制長久以來的唯一選擇。事實證明,這是個正確的選擇。CVS本身是自由軟件,不加限制的處事風(fēng)格,對網(wǎng)絡(luò)化操作的支持(眾多身處不同地方的程序員可以共享他們的工作),都非常符合開源世界的協(xié)作精神。CVS和它半混亂狀態(tài)的開發(fā)模型已成為開源文化的基石。但是,和其它許多工具一樣,CVS開始顯露出衰老的跡象。而subversion,正是以CVS繼承者的面目出現(xiàn)的新型版本控制系統(tǒng)。subversion的設(shè)計者們力圖通過兩方面的努力贏得CVS用戶的青睞:保持構(gòu)建開源軟件版本控制系統(tǒng)的方式(以及視覺和感覺上)與CVS盡可能類似,同時盡力彌補CVS許多顯著的缺陷。這些努力的結(jié)果使得從CVS移到subversion不需要作出重大的變革,subversion確實是非常強(qiáng)大、非常有用和非常靈活的工具。版本控制是管理信息變化的藝術(shù)。對于經(jīng)常對軟件改來改去的程序員來說,它早就是重要的工具。但是版本控制軟件的價值已遠(yuǎn)遠(yuǎn)超出軟件開發(fā)的領(lǐng)域??偸强梢钥吹饺藗兪褂糜嬎銠C(jī)管理易變的信息,這正是版本控制的生存之道,也是subversion表演的舞臺。subversion是一個自由/開源的版本控制系統(tǒng)。也就是說,在subversion管理下,文件和目錄可以超越時空。subversion將文件存放在中心版本庫里。這個版本庫很像一個普通的文件服務(wù)器,不同的是,它可以記錄每一次文件和目錄的修改情況。于是我們就可以籍此將數(shù)據(jù)回復(fù)到以前的版本,并可以查看數(shù)據(jù)的更改細(xì)節(jié)。正因為如此,許多人將版本控制系統(tǒng)當(dāng)作一種神奇的“時間機(jī)器”。subversion的版本庫可以通過網(wǎng)絡(luò)訪問,從而使用戶可以在不同的電腦上進(jìn)行操作。從某種程序上來說,允許用戶在各自的空間里修改和管理同一組數(shù)據(jù)可以促進(jìn)團(tuán)隊協(xié)作。因為修改不再是單線進(jìn)行(單線進(jìn)行也就是必須一個一個進(jìn)行),開發(fā)進(jìn)度會進(jìn)展迅速。此旬,由于所有的工作都已版本化,也就不必?fù)?dān)心由于錯誤的更改而影響軟件質(zhì)量—如果出現(xiàn)不正確的更改,只要撤銷那一次更改操作即可。某些版本控制系統(tǒng)本身也是軟件配置管理(SCM)系統(tǒng),這種系統(tǒng)經(jīng)過精巧的設(shè)計,專門且來管理源代碼樹,并且具備許多與軟件開發(fā)有關(guān)的特性—比如,對編程語言的支持,或者提供程序構(gòu)建工具。不過subversion并不是這樣的系統(tǒng)。它是非曲直一個通用系統(tǒng),可以管理任何類型的文件集。對你來說,這些文件這可能是源程序—頁對別人,則可能是一個貨物清單或者是數(shù)字電影。,它可以使得正在使用subversion的某一項工程的人們,.。而我所需要做的則是以下工作:首先實現(xiàn)subversion和Apache的整合配置,使用apache的WebDAV接口來訪問subversion的版本庫。然后使用Apache的數(shù)據(jù)庫驗證模塊來對subversion庫的訪問權(quán)限進(jìn)行限制。因為驗證信息存放在數(shù)據(jù)庫中,可以使用腳本編程實現(xiàn)界面對用戶進(jìn)行添加刪除和修改操作。subversion對目錄的權(quán)限保存在subversion的配置文件當(dāng)中??梢允褂媚_本對配置文件進(jìn)行修改,從而進(jìn)一步完善subversion的權(quán)限管理。編寫WEB界面對后臺的腳本進(jìn)行調(diào)用,使得可以通過WEB界面對subversion的配置文件進(jìn)行一定的修改。2系統(tǒng)需求分析subversion是一個自由/開源的版本控制系統(tǒng)。現(xiàn)在subversion也得到了很廣泛的使用。但是subversion的用戶管理機(jī)制卻是很差的。,它可以使得正在使用subversion的某一項工程的人們,可以通過網(wǎng)絡(luò)來管理自己的用戶資料。而管理員也可以通過這個系統(tǒng)來管理用戶。包括對用戶最終基本的認(rèn)證管理和權(quán)限管理。以及最后生成subversion權(quán)限配置文件用戶注冊模塊能夠滿足用戶的注冊。包括用戶的資料管理、修改等等。此模塊能夠滿足管理員對注冊的用戶進(jìn)行管理,包括對注冊的用戶進(jìn)行審核通過。對審核通過的用戶進(jìn)行刪除,分配權(quán)限。以及能夠使數(shù)據(jù)庫當(dāng)中的數(shù)據(jù)能夠生成subversion權(quán)限配置文件。用戶注冊Mysql數(shù)據(jù)庫Subversion權(quán)限配置文件 圖1 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)硬件需求:計算機(jī)一臺操作系統(tǒng):Windows XP/2000開發(fā)語言:php服務(wù)器工具:apache數(shù)據(jù)庫:mysql其它工具:subversion完成系統(tǒng)需求平臺的搭建。即apache+php+mysql+subversion等工具的整合和配置。3系統(tǒng)總體設(shè)計subversion用戶管理系統(tǒng)有兩大主要模塊:一個用戶認(rèn)證注冊模塊。另一個主要的模塊是管理員的管理模塊。當(dāng)某位用戶需要加入到某一項工程當(dāng)中的時候,就可以通過網(wǎng)絡(luò)來注冊自己的用戶。而管理員模塊則可以對注冊的用戶進(jìn)行認(rèn)證。通過認(rèn)證后可以分配相當(dāng)?shù)臋?quán)限。其中的數(shù)據(jù)處理在mysql數(shù)據(jù)庫當(dāng)中完成。最后由數(shù)據(jù)庫當(dāng)中表的數(shù)據(jù)生成subversion權(quán)限配置文件。這樣就是完成了一個簡單的用戶管理過程。同步SVN審核寫入數(shù)據(jù)庫管理員管理模塊寫入數(shù)據(jù)庫結(jié)束開始用戶認(rèn)證注冊模塊注冊圖2 系統(tǒng)功能模塊流程圖在數(shù)據(jù)庫svn_usr中包含了如下的一些表以及它們各自的作用。表1 數(shù)據(jù)庫中的表序號表參數(shù)名表名說明1user記錄注冊用戶基本信息2users用來進(jìn)行apache登錄認(rèn)證3Pre_reg_user記錄未審核注冊用戶信息4Test2記錄注冊用戶的組權(quán)限4環(huán)境選擇、搭建和配置+php+mysql的可行性以及各自特點+php+mysql的可行性本系統(tǒng)是基于subversion的用戶管理系統(tǒng)。它的要求是在Web頁面下完成對用戶注冊模塊的管理和管理員模塊的管理。這使得我們生產(chǎn)首先必須建立一個Web平臺。而subversion作為一個開源軟件。那么我做的這個關(guān)于subversion的用戶管理系統(tǒng)更要發(fā)揚這一種開源精神。并且從這個系統(tǒng)的實際用戶出發(fā),在從一系統(tǒng)中的開發(fā)語言、數(shù)據(jù)庫和Web服務(wù)器中選擇了apache、php和mysql這樣的組合。最重要的是它們都開源軟件,選擇它們具有很強(qiáng)的經(jīng)濟(jì)優(yōu)勢,使得本系統(tǒng)具有開源的特性,可以免費的發(fā)布、修改、使用等等。 php技術(shù)的特點 (1)開放源代碼PHP在“The PHP License,version ”協(xié)議下發(fā)行,實際上也是一種自由的軟件。一方面,任何人都可以得到并修改源代碼;另一方面,不必主擁有和使用PHP支付任何費用。(2)跨平臺目前版本的PHP支持Windows 95/98/me、Windows NT/Workstation、Windows 2000 Professional/Server,以及各種版本的UNIX,如Linux、Solaris UNIX、SCO UNIX等。用PHP開發(fā)網(wǎng)頁代碼可以很容易地移植到不同的系統(tǒng)平臺上。(3)數(shù)據(jù)庫庫支持對數(shù)據(jù)庫提供廣泛的支持是PHP受到人們普遍歡迎的主要原因之一,世界上流行的數(shù)據(jù)庫系統(tǒng)幾乎都在它的支持之列,包括:Adabas D、DBA、dBase、dbm、filePro、Informix、InterBase、mSQL、Microsoft SQL Server、MySQL、Solid、 Sybase、ODBC、OracleOracle、PostgreSQL等。(4)網(wǎng)絡(luò)支持PHP對網(wǎng)絡(luò)的支持非常全面,包括與電子郵件相關(guān)的IMAP和POP簡單網(wǎng)管SNMP、網(wǎng)絡(luò)新聞NMTP、賬號共用NIS、HTTP及Apache服務(wù)器和目錄協(xié)議LDAP等。(5)功能強(qiáng)大一般語言所具有的功能,數(shù)學(xué)運算、時間處理、文件系統(tǒng)、字符串處理、進(jìn)程處理等,PHP都一應(yīng)俱全。用戶也可以按照PHP開發(fā)規(guī)范自行開發(fā)功能擴(kuò)展模塊。在添加其他模塊之后,PHP提供更多的功能,如英文拼寫檢查、BC高精確度計算、公元歷法、PDF文件格式、Hyperwave服務(wù)器、圖形處理、加密、解密、哈系處理、WDDX功能、qmail與vmailmgr系統(tǒng)、壓縮文件處理、XML解析等。PHP的功能足以支持任何類型的Web站點。(6)易用性PHP語言的語法類似于C、Jave、pear、整個語言的核心非常短小、精練,主要通過函數(shù)擴(kuò)展其功能,因此非常易于理解、掌握和使用。 apache的技術(shù)特點Apache是世界使用排名第一的Web服務(wù)器。它可以運行在幾乎所有廣泛使用的計算機(jī)平臺上。它源于NCSAd服務(wù)器,經(jīng)過多次修改,成為世界上最流行的Web服務(wù)器軟件之一。Apache取自“a patchy server”的讀音,意思是充滿補丁的服務(wù)器,因為它是自