【正文】
畢業(yè)設(shè)計(jì)(論文)基于Web的subversion用戶管理系統(tǒng)論文作者姓名:申請(qǐng)學(xué)位專業(yè):申請(qǐng)學(xué)位類別:指導(dǎo)教師姓名(職稱):論文提交日期:基于Web的subversion用戶管理系統(tǒng)摘 要本系統(tǒng)主要是基于Web的subversion系統(tǒng)的用戶管理系統(tǒng)。在開(kāi)源軟件世界,并行版本系統(tǒng)(cvs)一直是版本控制長(zhǎng)久以來(lái)的唯一選擇,但是,和其它許多工具一樣,cvs開(kāi)始顯露出衰老的跡象,而subversion,正是以cvs繼任者的面目出現(xiàn)的新型版本控制系統(tǒng)。但是,它的用戶管理機(jī)制卻是很差,本系統(tǒng)正是基于這個(gè)現(xiàn)實(shí)。實(shí)現(xiàn)友好的subversion用戶界面,以提高工作效率。subversion用戶管理系統(tǒng)分為兩大基本部分,一個(gè)是普通用戶的注冊(cè)及自己資料的修改和管理。另外一個(gè)主要部分是超級(jí)用戶對(duì)于普通用戶的申請(qǐng)進(jìn)行認(rèn)證。以及對(duì)通過(guò)認(rèn)證的用戶分配相應(yīng)的權(quán)限。本系統(tǒng)是基于apache和php平臺(tái)的Web應(yīng)用程序。采用php人作為前臺(tái)開(kāi)發(fā)語(yǔ)言。Mysql作為后臺(tái)數(shù)據(jù)庫(kù)。apache作為服務(wù)器對(duì)subversion用戶進(jìn)行管理。系統(tǒng)具有良好的穩(wěn)定性,并具有可移植性強(qiáng)等特點(diǎn)。關(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目 錄論文總頁(yè)數(shù):24頁(yè)1引 言 12系統(tǒng)需求分析 2 2 2 2 3 3 3 33系統(tǒng)總體設(shè)計(jì) 3 3 3 44環(huán)境選擇、搭建和配置 4+php+mysql的可行性以及各自特點(diǎn) 4+php+mysql的可行性 4 php技術(shù)的特點(diǎn) 4 apache的技術(shù)特點(diǎn) 5 mysql的技術(shù)特點(diǎn) 5 6 安裝配置php 6 安裝配置apache 6 安裝配置mysql 7 安裝subversion以及建立版本庫(kù) 8 subversion服務(wù)器配置 95模塊功能的詳細(xì)實(shí)現(xiàn)過(guò)程 10 10 11 11 12 12 1添加、刪除和更新等 13 17 17 186模塊測(cè)試結(jié)果 18 18 19結(jié) 論 22參考文獻(xiàn) 22致 謝 23聲 明 241引 言版本控制之于程序員,就好像還原系統(tǒng)對(duì)于計(jì)算機(jī)一樣。使得即使計(jì)算機(jī)系統(tǒng)崩潰了,也能回復(fù)到正常的狀態(tài)。同樣,版本控制使您有能力去冒以往想都不敢想的風(fēng)險(xiǎn)。如果哪兒出了錯(cuò),您總是可以使自己的代碼回復(fù)到一個(gè)已知的、工作正常的版本。您可以在不觸及主干的分支中進(jìn)行試驗(yàn),而不會(huì)影響到其他小組成員。如果沒(méi)有版本控制,您必須極為慎之又慎,緩慢地推進(jìn),總而言之,生產(chǎn)力會(huì)更低。在開(kāi)源軟件世界,并行版本系統(tǒng)(CVS)一直是版本控制長(zhǎng)久以來(lái)的唯一選擇。事實(shí)證明,這是個(gè)正確的選擇。CVS本身是自由軟件,不加限制的處事風(fēng)格,對(duì)網(wǎng)絡(luò)化操作的支持(眾多身處不同地方的程序員可以共享他們的工作),都非常符合開(kāi)源世界的協(xié)作精神。CVS和它半混亂狀態(tài)的開(kāi)發(fā)模型已成為開(kāi)源文化的基石。但是,和其它許多工具一樣,CVS開(kāi)始顯露出衰老的跡象。而subversion,正是以CVS繼承者的面目出現(xiàn)的新型版本控制系統(tǒng)。subversion的設(shè)計(jì)者們力圖通過(guò)兩方面的努力贏得CVS用戶的青睞:保持構(gòu)建開(kāi)源軟件版本控制系統(tǒng)的方式(以及視覺(jué)和感覺(jué)上)與CVS盡可能類似,同時(shí)盡力彌補(bǔ)CVS許多顯著的缺陷。這些努力的結(jié)果使得從CVS移到subversion不需要作出重大的變革,subversion確實(shí)是非常強(qiáng)大、非常有用和非常靈活的工具。版本控制是管理信息變化的藝術(shù)。對(duì)于經(jīng)常對(duì)軟件改來(lái)改去的程序員來(lái)說(shuō),它早就是重要的工具。但是版本控制軟件的價(jià)值已遠(yuǎn)遠(yuǎn)超出軟件開(kāi)發(fā)的領(lǐng)域。總是可以看到人們使用計(jì)算機(jī)管理易變的信息,這正是版本控制的生存之道,也是subversion表演的舞臺(tái)。subversion是一個(gè)自由/開(kāi)源的版本控制系統(tǒng)。也就是說(shuō),在subversion管理下,文件和目錄可以超越時(shí)空。subversion將文件存放在中心版本庫(kù)里。這個(gè)版本庫(kù)很像一個(gè)普通的文件服務(wù)器,不同的是,它可以記錄每一次文件和目錄的修改情況。于是我們就可以籍此將數(shù)據(jù)回復(fù)到以前的版本,并可以查看數(shù)據(jù)的更改細(xì)節(jié)。正因?yàn)槿绱?,許多人將版本控制系統(tǒng)當(dāng)作一種神奇的“時(shí)間機(jī)器”。subversion的版本庫(kù)可以通過(guò)網(wǎng)絡(luò)訪問(wèn),從而使用戶可以在不同的電腦上進(jìn)行操作。從某種程序上來(lái)說(shuō),允許用戶在各自的空間里修改和管理同一組數(shù)據(jù)可以促進(jìn)團(tuán)隊(duì)協(xié)作。因?yàn)樾薷牟辉偈菃尉€進(jìn)行(單線進(jìn)行也就是必須一個(gè)一個(gè)進(jìn)行),開(kāi)發(fā)進(jìn)度會(huì)進(jìn)展迅速。此旬,由于所有的工作都已版本化,也就不必?fù)?dān)心由于錯(cuò)誤的更改而影響軟件質(zhì)量—如果出現(xiàn)不正確的更改,只要撤銷那一次更改操作即可。某些版本控制系統(tǒng)本身也是軟件配置管理(SCM)系統(tǒng),這種系統(tǒng)經(jīng)過(guò)精巧的設(shè)計(jì),專門且來(lái)管理源代碼樹(shù),并且具備許多與軟件開(kāi)發(fā)有關(guān)的特性—比如,對(duì)編程語(yǔ)言的支持,或者提供程序構(gòu)建工具。不過(guò)subversion并不是這樣的系統(tǒng)。它是非曲直一個(gè)通用系統(tǒng),可以管理任何類型的文件集。對(duì)你來(lái)說(shuō),這些文件這可能是源程序—頁(yè)對(duì)別人,則可能是一個(gè)貨物清單或者是數(shù)字電影。,它可以使得正在使用subversion的某一項(xiàng)工程的人們,.。而我所需要做的則是以下工作:首先實(shí)現(xiàn)subversion和Apache的整合配置,使用apache的WebDAV接口來(lái)訪問(wèn)subversion的版本庫(kù)。然后使用Apache的數(shù)據(jù)庫(kù)驗(yàn)證模塊來(lái)對(duì)subversion庫(kù)的訪問(wèn)權(quán)限進(jìn)行限制。因?yàn)轵?yàn)證信息存放在數(shù)據(jù)庫(kù)中,可以使用腳本編程實(shí)現(xiàn)界面對(duì)用戶進(jìn)行添加刪除和修改操作。subversion對(duì)目錄的權(quán)限保存在subversion的配置文件當(dāng)中。可以使用腳本對(duì)配置文件進(jìn)行修改,從而進(jìn)一步完善subversion的權(quán)限管理。編寫(xiě)WEB界面對(duì)后臺(tái)的腳本進(jìn)行調(diào)用,使得可以通過(guò)WEB界面對(duì)subversion的配置文件進(jìn)行一定的修改。2系統(tǒng)需求分析subversion是一個(gè)自由/開(kāi)源的版本控制系統(tǒng)?,F(xiàn)在subversion也得到了很廣泛的使用。但是subversion的用戶管理機(jī)制卻是很差的。,它可以使得正在使用subversion的某一項(xiàng)工程的人們,可以通過(guò)網(wǎng)絡(luò)來(lái)管理自己的用戶資料。而管理員也可以通過(guò)這個(gè)系統(tǒng)來(lái)管理用戶。包括對(duì)用戶最終基本的認(rèn)證管理和權(quán)限管理。以及最后生成subversion權(quán)限配置文件用戶注冊(cè)模塊能夠滿足用戶的注冊(cè)。包括用戶的資料管理、修改等等。此模塊能夠滿足管理員對(duì)注冊(cè)的用戶進(jìn)行管理,包括對(duì)注冊(cè)的用戶進(jìn)行審核通過(guò)。對(duì)審核通過(guò)的用戶進(jìn)行刪除,分配權(quán)限。以及能夠使數(shù)據(jù)庫(kù)當(dāng)中的數(shù)據(jù)能夠生成subversion權(quán)限配置文件。用戶注冊(cè)Mysql數(shù)據(jù)庫(kù)Subversion權(quán)限配置文件 圖1 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)硬件需求:計(jì)算機(jī)一臺(tái)操作系統(tǒng):Windows XP/2000開(kāi)發(fā)語(yǔ)言:php服務(wù)器工具:apache數(shù)據(jù)庫(kù):mysql其它工具:subversion完成系統(tǒng)需求平臺(tái)的搭建。即apache+php+mysql+subversion等工具的整合和配置。3系統(tǒng)總體設(shè)計(jì)subversion用戶管理系統(tǒng)有兩大主要模塊:一個(gè)用戶認(rèn)證注冊(cè)模塊。另一個(gè)主要的模塊是管理員的管理模塊。當(dāng)某位用戶需要加入到某一項(xiàng)工程當(dāng)中的時(shí)候,就可以通過(guò)網(wǎng)絡(luò)來(lái)注冊(cè)自己的用戶。而管理員模塊則可以對(duì)注冊(cè)的用戶進(jìn)行認(rèn)證。通過(guò)認(rèn)證后可以分配相當(dāng)?shù)臋?quán)限。其中的數(shù)據(jù)處理在mysql數(shù)據(jù)庫(kù)當(dāng)中完成。最后由數(shù)據(jù)庫(kù)當(dāng)中表的數(shù)據(jù)生成subversion權(quán)限配置文件。這樣就是完成了一個(gè)簡(jiǎn)單的用戶管理過(guò)程。同步SVN審核寫(xiě)入數(shù)據(jù)庫(kù)管理員管理模塊寫(xiě)入數(shù)據(jù)庫(kù)結(jié)束開(kāi)始用戶認(rèn)證注冊(cè)模塊注冊(cè)圖2 系統(tǒng)功能模塊流程圖在數(shù)據(jù)庫(kù)svn_usr中包含了如下的一些表以及它們各自的作用。表1 數(shù)據(jù)庫(kù)中的表序號(hào)表參數(shù)名表名說(shuō)明1user記錄注冊(cè)用戶基本信息2users用來(lái)進(jìn)行apache登錄認(rèn)證3Pre_reg_user記錄未審核注冊(cè)用戶信息4Test2記錄注冊(cè)用戶的組權(quán)限4環(huán)境選擇、搭建和配置+php+mysql的可行性以及各自特點(diǎn)+php+mysql的可行性本系統(tǒng)是基于subversion的用戶管理系統(tǒng)。它的要求是在Web頁(yè)面下完成對(duì)用戶注冊(cè)模塊的管理和管理員模塊的管理。這使得我們生產(chǎn)首先必須建立一個(gè)Web平臺(tái)。而subversion作為一個(gè)開(kāi)源軟件。那么我做的這個(gè)關(guān)于subversion的用戶管理系統(tǒng)更要發(fā)揚(yáng)這一種開(kāi)源精神。并且從這個(gè)系統(tǒng)的實(shí)際用戶出發(fā),在從一系統(tǒng)中的開(kāi)發(fā)語(yǔ)言、數(shù)據(jù)庫(kù)和Web服務(wù)器中選擇了apache、php和mysql這樣的組合。最重要的是它們都開(kāi)源軟件,選擇它們具有很強(qiáng)的經(jīng)濟(jì)優(yōu)勢(shì),使得本系統(tǒng)具有開(kāi)源的特性,可以免費(fèi)的發(fā)布、修改、使用等等。 php技術(shù)的特點(diǎn) (1)開(kāi)放源代碼PHP在“The PHP License,version ”協(xié)議下發(fā)行,實(shí)際上也是一種自由的軟件。一方面,任何人都可以得到并修改源代碼;另一方面,不必主擁有和使用PHP支付任何費(fèi)用。(2)跨平臺(tái)目前版本的PHP支持Windows 95/98/me、Windows NT/Workstation、Windows 2000 Professional/Server,以及各種版本的UNIX,如Linux、Solaris UNIX、SCO UNIX等。用PHP開(kāi)發(fā)網(wǎng)頁(yè)代碼可以很容易地移植到不同的系統(tǒng)平臺(tái)上。(3)數(shù)據(jù)庫(kù)庫(kù)支持對(duì)數(shù)據(jù)庫(kù)提供廣泛的支持是PHP受到人們普遍歡迎的主要原因之一,世界上流行的數(shù)據(jù)庫(kù)系統(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對(duì)網(wǎng)絡(luò)的支持非常全面,包括與電子郵件相關(guān)的IMAP和POP簡(jiǎn)單網(wǎng)管SNMP、網(wǎng)絡(luò)新聞NMTP、賬號(hào)共用NIS、HTTP及Apache服務(wù)器和目錄協(xié)議LDAP等。(5)功能強(qiáng)大一般語(yǔ)言所具有的功能,數(shù)學(xué)運(yùn)算、時(shí)間處理、文件系統(tǒng)、字符串處理、進(jìn)程處理等,PHP都一應(yīng)俱全。用戶也可以按照PHP開(kāi)發(fā)規(guī)范自行開(kāi)發(fā)功能擴(kuò)展模塊。在添加其他模塊之后,PHP提供更多的功能,如英文拼寫(xiě)檢查、BC高精確度計(jì)算、公元?dú)v法、PDF文件格式、Hyperwave服務(wù)器、圖形處理、加密、解密、哈系處理、WDDX功能、qmail與vmailmgr系統(tǒng)、壓縮文件處理、XML解析等。PHP的功能足以支持任何類型的Web站點(diǎn)。(6)易用性PHP語(yǔ)言的語(yǔ)法類似于C、Jave、pear、整個(gè)語(yǔ)言的核心非常短小、精練,主要通過(guò)函數(shù)擴(kuò)展其功能,因此非常易于理解、掌握和使用。 apache的技術(shù)特點(diǎn)Apache是世界使用排名第一的Web服務(wù)器。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上。它源于NCSAd服務(wù)器,經(jīng)過(guò)多次修改,成為世界上最流行的Web服務(wù)器軟件之一。Apache取自“a patchy server”的讀音,意思是充滿補(bǔ)丁的服務(wù)器,因?yàn)樗亲?