畢業(yè)設(shè)計(jì)(論文)基于Web的subversion用戶管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
畢業(yè)設(shè)計(jì)(論文)基于Web的subversion用戶管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
畢業(yè)設(shè)計(jì)(論文)基于Web的subversion用戶管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
畢業(yè)設(shè)計(jì)(論文)基于Web的subversion用戶管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁
畢業(yè)設(shè)計(jì)(論文)基于Web的subversion用戶管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于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)實(shí)。實(shí)現(xiàn)友好的subversion用戶界面,以提高工作效率。subversion用戶管理系統(tǒng)分為兩大基本部分,一個是普通用戶的注冊及自己資料的修改和管理。另外一個主要部分是超級用戶對于普通用戶的申請進(jìn)行認(rèn)證。以及對通過認(rèn)證的用戶分配相應(yīng)

2、的權(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)等特點(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, concurre

3、nt 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 base

4、d on the reality, achieves a friendly user interface, in order to enhance efficiency.the user management sub-system of subversion is divided into two basic parts. one part is ordinary user management, including registration and information editing. another major part is the super-user authenticates

5、to the common users 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

6、 system has high stability and portability .key words: php;subversion;apache;user managemen目 錄論文總頁數(shù):24頁1引 言12系統(tǒng)需求分析22.1系統(tǒng)功能模塊需求22.1.1用戶注冊模塊的需求22.1.2管理員功能處理模塊的需求22.1.3各個功能模塊數(shù)據(jù)結(jié)構(gòu)圖32.2用戶環(huán)境需求32.2.1用戶使用環(huán)境需求32.2.2其它需求33系統(tǒng)總體設(shè)計(jì)33.1系統(tǒng)功能模塊劃分33.2系統(tǒng)功能模塊流程圖33.3數(shù)據(jù)庫總體設(shè)計(jì)44環(huán)境選擇、搭建和配置44.1選擇使用apache+php+mysql的可行性以及各自特

7、點(diǎn)44.1.1使用apache+php+mysql的可行性44.1.2 php技術(shù)的特點(diǎn)44.1.3 apache的技術(shù)特點(diǎn)54.1.4 mysql的技術(shù)特點(diǎn)54.2系統(tǒng)環(huán)境的搭建64.2.1 安裝配置php64.2.2 安裝配置apache64.2.3 安裝配置mysql74.2.4 安裝subversion以及建立版本庫84.2.5 subversion服務(wù)器配置95模塊功能的詳細(xì)實(shí)現(xiàn)過程105.1本系統(tǒng)使用的subversion權(quán)限機(jī)制105.2數(shù)據(jù)流程圖115.2.1用戶注冊數(shù)據(jù)流程圖115.2.2管理員管理數(shù)據(jù)流程圖125.3數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)125.4數(shù)據(jù)庫操作135.4.1數(shù)據(jù)庫的連

8、接、添加、刪除和更新等135.5生成subversion權(quán)限配置文件時(shí)對文件的操作175.5.1數(shù)據(jù)文件的寫入175.5.2數(shù)據(jù)文件的讀取186模塊測試結(jié)果186.1用戶注冊模塊測試結(jié)果186.2管理員模塊測試結(jié)果19結(jié) 論22參考文獻(xiàn)22致 謝23聲 明241引 言版本控制之于程序員,就好像還原系統(tǒng)對于計(jì)算機(jī)一樣。使得即使計(jì)算機(jī)系統(tǒng)崩潰了,也能回復(fù)到正常的狀態(tài)。同樣,版本控制使您有能力去冒以往想都不敢想的風(fēng)險(xiǎn)。如果哪兒出了錯,您總是可以使自己的代碼回復(fù)到一個已知的、工作正常的版本。您可以在不觸及主干的分支中進(jìn)行試驗(yàn),而不會影響到其他小組成員。如果沒有版本控制,您必須極為慎之又慎,緩慢地推進(jìn),

9、總而言之,生產(chǎn)力會更低。在開源軟件世界,并行版本系統(tǒng)(cvs)一直是版本控制長久以來的唯一選擇。事實(shí)證明,這是個正確的選擇。cvs本身是自由軟件,不加限制的處事風(fēng)格,對網(wǎng)絡(luò)化操作的支持(眾多身處不同地方的程序員可以共享他們的工作),都非常符合開源世界的協(xié)作精神。cvs和它半混亂狀態(tài)的開發(fā)模型已成為開源文化的基石。但是,和其它許多工具一樣,cvs開始顯露出衰老的跡象。而subversion,正是以cvs繼承者的面目出現(xiàn)的新型版本控制系統(tǒng)。subversion的設(shè)計(jì)者們力圖通過兩方面的努力贏得cvs用戶的青睞:保持構(gòu)建開源軟件版本控制系統(tǒng)的方式(以及視覺和感覺上)與cvs盡可能類似,同時(shí)盡力彌補(bǔ)c

10、vs許多顯著的缺陷。這些努力的結(jié)果使得從cvs移到subversion不需要作出重大的變革,subversion確實(shí)是非常強(qiáng)大、非常有用和非常靈活的工具。版本控制是管理信息變化的藝術(shù)。對于經(jīng)常對軟件改來改去的程序員來說,它早就是重要的工具。但是版本控制軟件的價(jià)值已遠(yuǎn)遠(yuǎn)超出軟件開發(fā)的領(lǐng)域??偸强梢钥吹饺藗兪褂糜?jì)算機(jī)管理易變的信息,這正是版本控制的生存之道,也是subversion表演的舞臺。subversion是一個自由/開源的版本控制系統(tǒng)。也就是說,在subversion管理下,文件和目錄可以超越時(shí)空。subversion將文件存放在中心版本庫里。這個版本庫很像一個普通的文件服務(wù)器,不同的是,

11、它可以記錄每一次文件和目錄的修改情況。于是我們就可以籍此將數(shù)據(jù)回復(fù)到以前的版本,并可以查看數(shù)據(jù)的更改細(xì)節(jié)。正因?yàn)槿绱耍S多人將版本控制系統(tǒng)當(dāng)作一種神奇的“時(shí)間機(jī)器”。subversion的版本庫可以通過網(wǎng)絡(luò)訪問,從而使用戶可以在不同的電腦上進(jìn)行操作。從某種程序上來說,允許用戶在各自的空間里修改和管理同一組數(shù)據(jù)可以促進(jìn)團(tuán)隊(duì)協(xié)作。因?yàn)樾薷牟辉偈菃尉€進(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è)

12、計(jì),專門且來管理源代碼樹,并且具備許多與軟件開發(fā)有關(guān)的特性比如,對編程語言的支持,或者提供程序構(gòu)建工具。不過subversion并不是這樣的系統(tǒng)。它是非曲直一個通用系統(tǒng),可以管理任何類型的文件集。對你來說,這些文件這可能是源程序頁對別人,則可能是一個貨物清單或者是數(shù)字電影。但是subversion的用戶管理機(jī)制卻是很差的.從而需要一個關(guān)于subversion的用戶管理系統(tǒng).在本系統(tǒng)中,它可以使得正在使用subversion的某一項(xiàng)工程的人們,可以通過網(wǎng)絡(luò)來管理自己的用戶資料.而管理員也可以通過這個系統(tǒng)來管理用戶.包括對用戶最終基本的認(rèn)證管理和權(quán)限管理.subversion用戶管理系統(tǒng)有兩大主要

13、模塊.一個用戶認(rèn)證注冊模塊.另一個主要的模塊是管理員的管理模塊.當(dāng)某位用戶需要加入到某一項(xiàng)工程當(dāng)中的時(shí)候.就可以通過網(wǎng)絡(luò)來注冊自己的用戶.而管理員模塊則可以對注冊的用戶進(jìn)行認(rèn)證.通過認(rèn)證后可以分配相當(dāng)?shù)臋?quán)限.這樣就是完成了一個簡單的用戶管理過程。而我所需要做的則是以下工作:首先實(shí)現(xiàn)subversion和apache的整合配置,使用apache的webdav接口來訪問subversion的版本庫。然后使用apache的數(shù)據(jù)庫驗(yàn)證模塊來對subversion庫的訪問權(quán)限進(jìn)行限制。因?yàn)轵?yàn)證信息存放在數(shù)據(jù)庫中,可以使用腳本編程實(shí)現(xiàn)界面對用戶進(jìn)行添加刪除和修改操作。subversion對目錄的權(quán)限保存在

14、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)?,F(xiàn)在subversion也得到了很廣泛的使用。但是subversion的用戶管理機(jī)制卻是很差的。從而需要一個關(guān)于subversion的用戶管理系統(tǒng).在本系統(tǒng)中,它可以使得正在使用subversion的某一項(xiàng)工程的人們,可以通過網(wǎng)絡(luò)來管理自己的用戶資料。而管理員也可以通過這個系統(tǒng)來管理用戶。包括對用戶最終基本的認(rèn)證

15、管理和權(quán)限管理。以及最后生成subversion權(quán)限配置文件2.1系統(tǒng)功能模塊需求2.1.1用戶注冊模塊的需求用戶注冊模塊能夠滿足用戶的注冊。包括用戶的資料管理、修改等等。2.1.2管理員功能處理模塊的需求此模塊能夠滿足管理員對注冊的用戶進(jìn)行管理,包括對注冊的用戶進(jìn)行審核通過。對審核通過的用戶進(jìn)行刪除,分配權(quán)限。以及能夠使數(shù)據(jù)庫當(dāng)中的數(shù)據(jù)能夠生成subversion權(quán)限配置文件。2.1.3各個功能模塊數(shù)據(jù)結(jié)構(gòu)圖用戶注冊mysql數(shù)據(jù)庫subversion權(quán)限配置文件 圖1 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)2.2用戶環(huán)境需求2.2.1用戶使用環(huán)境需求1、硬件需求:計(jì)算機(jī)一臺2、操作系統(tǒng):windows xp/200

16、03、開發(fā)語言:php4、服務(wù)器工具:apache5、數(shù)據(jù)庫:mysql6、其它工具:subversion2.2.2其它需求完成系統(tǒng)需求平臺的搭建。即apache+php+mysql+subversion等工具的整合和配置。3系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)功能模塊劃分subversion用戶管理系統(tǒng)有兩大主要模塊:一個用戶認(rèn)證注冊模塊。另一個主要的模塊是管理員的管理模塊。當(dāng)某位用戶需要加入到某一項(xiàng)工程當(dāng)中的時(shí)候,就可以通過網(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

17、權(quán)限配置文件。這樣就是完成了一個簡單的用戶管理過程。3.2系統(tǒng)功能模塊流程圖同步svn審核寫入數(shù)據(jù)庫管理員管理模塊寫入數(shù)據(jù)庫結(jié)束開始用戶認(rèn)證注冊模塊注冊圖2 系統(tǒng)功能模塊流程圖3.3數(shù)據(jù)庫總體設(shè)計(jì)在數(shù)據(jù)庫svn_usr中包含了如下的一些表以及它們各自的作用。表1 數(shù)據(jù)庫中的表序號表參數(shù)名表名說明1user記錄注冊用戶基本信息2users用來進(jìn)行apache登錄認(rèn)證3pre_reg_user記錄未審核注冊用戶信息4test2記錄注冊用戶的組權(quán)限4環(huán)境選擇、搭建和配置4.1選擇使用apache+php+mysql的可行性以及各自特點(diǎn)4.1.1使用apache+php+mysql的可行性本系統(tǒng)是基于

18、subversion的用戶管理系統(tǒng)。它的要求是在web頁面下完成對用戶注冊模塊的管理和管理員模塊的管理。這使得我們生產(chǎn)首先必須建立一個web平臺。而subversion作為一個開源軟件。那么我做的這個關(guān)于subversion的用戶管理系統(tǒng)更要發(fā)揚(yáng)這一種開源精神。并且從這個系統(tǒng)的實(shí)際用戶出發(fā),在從一系統(tǒng)中的開發(fā)語言、數(shù)據(jù)庫和web服務(wù)器中選擇了apache、php和mysql這樣的組合。最重要的是它們都開源軟件,選擇它們具有很強(qiáng)的經(jīng)濟(jì)優(yōu)勢,使得本系統(tǒng)具有開源的特性,可以免費(fèi)的發(fā)布、修改、使用等等。4.1.2 php技術(shù)的特點(diǎn) (1)開放源代碼php在“the php license,versio

19、n 2.02”協(xié)議下發(fā)行,實(shí)際上也是一種自由的軟件。一方面,任何人都可以得到并修改源代碼;另一方面,不必主擁有和使用php支付任何費(fèi)用。(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

20、、dba、dbase、dbm、filepro、informix、interbase、msql、microsoft sql server、mysql、solid、 sybase、odbc、oracle8、oracle、postgresql等。(4)網(wǎng)絡(luò)支持php對網(wǎng)絡(luò)的支持非常全面,包括與電子郵件相關(guān)的imap和pop3、簡單網(wǎng)管snmp、網(wǎng)絡(luò)新聞nmtp、賬號共用nis、http及apache服務(wù)器和目錄協(xié)議ldap等。(5)功能強(qiáng)大一般語言所具有的功能,數(shù)學(xué)運(yùn)算、時(shí)間處理、文件系統(tǒng)、字符串處理、進(jìn)程處理等,php都一應(yīng)俱全。用戶也可以按照php開發(fā)規(guī)范自行開發(fā)功能擴(kuò)展模塊。在添加其他模塊之后

21、,php提供更多的功能,如英文拼寫檢查、bc高精確度計(jì)算、公元?dú)v法、pdf文件格式、hyperwave服務(wù)器、圖形處理、加密、解密、哈系處理、wddx功能、qmail與vmailmgr系統(tǒng)、壓縮文件處理、xml解析等。php的功能足以支持任何類型的web站點(diǎn)。(6)易用性php語言的語法類似于c、jave、pear、整個語言的核心非常短小、精練,主要通過函數(shù)擴(kuò)展其功能,因此非常易于理解、掌握和使用。4.1.3 apache的技術(shù)特點(diǎn)apache是世界使用排名第一的web服務(wù)器。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺上。它源于ncsahttpd服務(wù)器,經(jīng)過多次修改,成為世界上最流行的web服務(wù)

22、器軟件之一。apache取自“a patchy server”的讀音,意思是充滿補(bǔ)丁的服務(wù)器,因?yàn)樗亲杂绍浖?,所以不斷有人來為它開發(fā)新的功能、新的特性、修改原來的缺陷。apache的特點(diǎn)是簡單、速度快、性能穩(wěn)定,并可做代理服務(wù)器來使用。本來它只用于小型或試驗(yàn)internet網(wǎng)絡(luò),后來逐步擴(kuò)充到各種unix系統(tǒng)中,尤其對linux的支持相當(dāng)完美。apache有多種產(chǎn)品,可以支持ssl技術(shù),支持多個虛擬主機(jī)。apache是以進(jìn)程為基礎(chǔ)的結(jié)構(gòu),進(jìn)程要比線程消耗更多的系統(tǒng)開支,不太適合于多處理器環(huán)境,因此,在一個apache web站點(diǎn)擴(kuò)容時(shí),通常是增加服務(wù)器或擴(kuò)充群集節(jié)點(diǎn)而不是增加處理器。它的成功

23、之處主要在于它的源代碼開放、有一支開放的開發(fā)隊(duì)伍、支持跨平臺的應(yīng)用以及它的可移植性等方面。4.1.4 mysql的技術(shù)特點(diǎn)mysql是一個快速、多線程、多用戶的sql數(shù)據(jù)庫服務(wù)器,其出現(xiàn)雖然只有短短的數(shù)年時(shí)間,但憑借著“開放源代碼”的東風(fēng),它從眾多的數(shù)據(jù)庫中脫穎而出,成為php的首選數(shù)據(jù)庫。除了因?yàn)閹缀跏敲赓M(fèi)的這點(diǎn)之外,支持正規(guī)的sql查詢語言和采用多種數(shù)據(jù)類型,能對數(shù)據(jù)進(jìn)行各種詳細(xì)的查詢等都是php選擇mysql的主要原因。下面,就讓我們來看看mysql數(shù)據(jù)庫的主要特征。 (1)mysql的核心程序采用完全的多線程編程。線程是輕量級的進(jìn)程,它可以靈活地為用戶提供服務(wù),而不過多的系統(tǒng)資源。用多

24、線程和c語言實(shí)現(xiàn)的mysql能很容易充分利用cpu。(2)mysql可運(yùn)行在不同的操作系統(tǒng)下。簡單地說,mysql可以支持windows95/98/nt/2000以及unix、linux和sun os等多種操作系統(tǒng)平臺。這意味著在一個操作系統(tǒng)中實(shí)現(xiàn)的應(yīng)用可以很方便地移植到其他的操作系統(tǒng)下。(3)mysql有一個非常靈活而且安全的權(quán)限和口令系統(tǒng)。當(dāng)客戶與mysql服務(wù)器連接時(shí),他們之間所有的口令傳送被加密,而且mysql支持主機(jī)認(rèn)證。(4)mysql支持odbc for windows。mysql支持所有的odbc 2.5函數(shù)和其他許多函數(shù),這樣就可以用access連接mysql服務(wù)器,從而使得

25、mysql的應(yīng)用被大大擴(kuò)展。(5)mysql支持大型的數(shù)據(jù)庫。雖然對于用php編寫的網(wǎng)頁來說只要能夠存放上百條以上的記錄數(shù)據(jù)就足夠了,但mysql可以方便地支持上千萬條記錄的數(shù)據(jù)庫。作為一個開放源代碼的數(shù)據(jù)庫,mysql可以針對不同的應(yīng)用進(jìn)行相應(yīng)的修改。(6)mysql擁有一個非??焖俣曳€(wěn)定的基于線程的內(nèi)存分配系統(tǒng),可以持續(xù)使用面不必?fù)?dān)心其穩(wěn)定性。事實(shí)上,mysql的穩(wěn)定性足以應(yīng)付一個超大規(guī)模的數(shù)據(jù)庫。(7)強(qiáng)大的查詢功能。mysql支持查詢的select和where語句的全部運(yùn)算符和函數(shù),并且可以在同一查詢中混用來自不同數(shù)據(jù)庫的表,從而使得查詢變得快捷和方便。(8)php為mysql提供了

26、強(qiáng)力支持,php中提供了一整套的mysql函數(shù),對mysql進(jìn)行了全方位的支持。4.2系統(tǒng)環(huán)境的搭建4.2.1 安裝配置php (1)解壓縮php壓縮包到d:php(這個路徑可以隨意,不過以下要是用到這個路徑,請相應(yīng)的修改)。(2)復(fù)制d:php目錄下的php4ts.dll及d:phpdlls目錄下的所有文件到windows的系統(tǒng)文件夾里,文件夾視windows版本的不同而不同我用的是windows xp則為c:windowssystem32其中c:為你現(xiàn)在所使用的操作系統(tǒng)的系統(tǒng)盤,如果你目前操作系統(tǒng)不是安裝在c:windows下,請相應(yīng)做出修改。復(fù)制php.ini-dist到c:window

27、s下,并將其改名為php.ini。用記事本打開,修改一下信息:搜索extension_dir = ./ 這行,并將其路徑指到你的php目錄下的extensions目錄,比如:extension_dir = d:phpextensions4.2.2 安裝配置apache我們下載到的for win32的是一個msi安裝文件,直接雙擊它后就會自動執(zhí)行apache的安裝了,按照提示安裝即可,其中要書寫的東西按照你的喜好填寫,沒甚么影響,當(dāng)然,目錄我還是建議你和php的目錄以致,選擇d:目錄,這樣安裝后可以看到d:apache了。裝完后會在桌面右下角系統(tǒng)托盤里顯示apache的圖標(biāo),雙擊可以打開apac

28、he的控制面板,可以停止或者重起服務(wù)器。這里要做的是對d:apacheconfhttpd.conf這個文件進(jìn)行修改,用記事本打開:找到: addtype application/x-tar .tgz在下面添加以下兩行: addtype application/x-httpd-php .phpaddtype image/x-icon .ico找到: #loadmodule ssl_module modules/mod_ssl.so在下面添加二行:phpinidir root/phploadmodule php5_module root/php/php5apache2_2.dll增加默認(rèn)文件:找到

29、directoryindex * 這行,可以這樣修改,添加默認(rèn)的文件名: directoryindex index.php default.php index.htm index.html default.htm default.html保存文件,重起apache服務(wù)器。4.2.3 安裝配置mysqlmysql相對來說是比較獨(dú)立的,這個數(shù)據(jù)庫很小,不能直接對它進(jìn)行操作,不像access或者sql2000那么直觀,不過目前已經(jīng)有很多軟件可以很好的操作它的,比如phpmyadmin,sqlyogent。這些軟件可以到 上面下載獲得。下載獲得mysql的for win32安裝包后,用winzip打開

30、,直接運(yùn)行setup.exe,需要注意的是選擇一個安裝路徑,當(dāng)然,安裝路徑可以任意,不過我建議將它和php安裝在一起,選擇d:mysql目錄。安裝完成后mysql也就完成了。至于設(shè)置用戶和密碼,可以使用上面提到的兩個軟件進(jìn)行管理。這里不繼續(xù)描述,默認(rèn)的用戶名是root,密碼為空。一般裝完mysql后會自動啟動服務(wù),如果沒有啟動的話,請運(yùn)行d:mysqlbinmysqld-nt.exe4.2.4 安裝subversion以及建立版本庫安裝subversion主要包括服務(wù)器端的安裝和客戶端的安裝。圖3 服務(wù)器安裝圖4 客戶端安裝圖5 建立版本庫的過程4.2.5 subversion服務(wù)器配置由于本

31、系統(tǒng)是采取的的基于apache的認(rèn)證方式,所以需要進(jìn)行一些配置,如下:在http.conf文件中配置如下內(nèi)容:sslrandomseed startup builtinsslrandomseed connect builtinphpinidir root/phploadmodule php5_module root/php/php5apache2_2.dlladdtype application/x-httpd-php .phploadmodule mysql_auth_module modules/mod_auth_mysql.soloadmodule dav_module modules/

32、mod_dav.soloadmodule dav_fs_module modules/mod_dav_fs.soloadmodule dav_svn_module modules/mod_dav_svn.soloadmodule authz_svn_module modules/mod_authz_svn.so authmysqlenable on authmysqlauthoritative on authname mysql auth authtype basic authmysqlhost localhost authmysqldb svn_usr authmysqluser svn_d

33、b authmysqlpassword 1234 authmysqlusertable users authmysqlpwencryption none require valid-user require valid-user dav svn#指向svn repository的rootsvnpath root/svnrepo以上就是本系統(tǒng)的環(huán)境建立及配置過程。5模塊功能的詳細(xì)實(shí)現(xiàn)過程5.1本系統(tǒng)使用的subversion權(quán)限機(jī)制apache的http服務(wù)器是一個subversion可以利用的“重型”網(wǎng)絡(luò)服務(wù)器,通過一個自定義模塊,httpd可以讓subversion版本庫通過webdav/d

34、eltav協(xié)議在客戶端前可見,webdav/deltav協(xié)議是http 1.1的擴(kuò)展。這個協(xié)議利用了無處不在的http協(xié)議是廣域網(wǎng)的核心這一點(diǎn),添加了寫能力更明確一點(diǎn),版本化的寫能力。結(jié)果就是這樣一個標(biāo)準(zhǔn)化的健壯的系統(tǒng),作為apache軟件的一部分打包,被許多操作系統(tǒng)和第三方產(chǎn)品支持,網(wǎng)絡(luò)管理員也不需要打開另一個自定義端口。這樣一個apache-subversion服務(wù)器具備了許多svnserve沒有的特性,但是也有一點(diǎn)難于配置,靈活通常會帶來復(fù)雜性。為了讓你的版本庫使用http網(wǎng)絡(luò),你基本上需要兩個包里的四個部分。你需要apache httpd 2.0和包括的mod_dav dav模塊,su

35、bversion和與之一同分發(fā)的mod_dav_svn文件系統(tǒng)提供者模塊,如果你有了這些組件,網(wǎng)絡(luò)化你的版本庫將非常簡單,如:配置好httpd 2.0,并且使用mod_dav啟動,為mod_dav安裝mod_dav_svn插件,它會使用subversion的庫訪問版本庫,并且配置你的httpd.conf來輸出(或者說暴露)版本庫。你可以通過從源代碼編譯httpd和subversion來完成前兩個項(xiàng)目,也可以通過你的系統(tǒng)上的已經(jīng)編譯好的二進(jìn)制包來安裝。最新的使用apache http的subversion的編譯方法和apache的配置方式可以看subversion源代碼樹根目錄的install文

36、件。在subversion的服務(wù)器端,它的最大的獨(dú)特之處,在于它可以通過一個擴(kuò)展模塊與 apache 的 http 服務(wù)器相結(jié)合,實(shí)現(xiàn)很多高級的管理功能和安全特性。與 cvs 相比,subversion 實(shí)現(xiàn)了更加先進(jìn)和安全的用戶認(rèn)證功能。在 apache 的支持下,用戶可以通過 http 協(xié)議訪問版本庫,管理員可以對用戶訪問 http 的權(quán)限做出具體的設(shè)置,同時(shí) subversion 還可以獲得 ssl 傳輸加密,用戶數(shù)據(jù)加密,以及目錄級的訪問控制等特性。而本系統(tǒng)正是基于此,使用mysql數(shù)據(jù)庫的users表中內(nèi)容作為用戶登錄的認(rèn)證。使用authz文件作為權(quán)限控制文件。5.2數(shù)據(jù)流程圖5.2

37、.1用戶注冊數(shù)據(jù)流程圖開始修改信息用戶注冊未注冊用戶是否注冊已注冊用戶 否 是pre_reg_user表user表結(jié)束圖形注釋:數(shù)據(jù)庫 :功能:單向數(shù)據(jù)流動 :雙向數(shù)據(jù)流動圖6 用戶注冊數(shù)據(jù)流程圖5.2.2管理員管理數(shù)據(jù)流程圖開始分配用戶組權(quán)限審核注冊用戶test2表user表subversion權(quán)限配置文件同步結(jié)束圖形注釋:數(shù)據(jù)文件:數(shù)據(jù)庫 :功能:單向數(shù)據(jù)流動 :雙向數(shù)據(jù)流動圖7 管理員管理數(shù)據(jù)流程圖5.3數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫當(dāng)中各個表的詳細(xì)設(shè)計(jì)表2 記錄用戶基本信息主鍵列(屬性)名中文名稱類型寬度是否允許為空username用戶名varchar25not nullpasswd用戶密碼va

38、rchar25not nullgroups用戶組varchar25not nullrealname用戶真實(shí)姓名varchar10not nulldept所屬部門varchar50not nulltel聯(lián)系電話varchar20not null表3 記錄未審核注冊用戶信息主鍵列(屬性)名中文名稱類型寬度是否允許為空username用戶名varchar25not nullpasswd用戶密碼varchar25not nullgroups用戶組varchar25not nullrealname用戶真實(shí)姓名varchar10not nulldept所屬部門varchar50not nulltel聯(lián)系電

39、話varchar20not null表4 用來進(jìn)行apache登錄認(rèn)證主鍵列(屬性)名中文名稱類型寬度是否允許為空username用戶名varchar25not nullpasswd用戶密碼varchar25not nullgroups用戶組varchar25not null表5 記錄用戶權(quán)限數(shù)據(jù)以及生成subversion權(quán)限配置文件主鍵列(屬性)名中文名稱類型寬度是否允許為空number列名int20not nullgroup用戶組名varchar50not nullname用戶名varchar50not null5.4數(shù)據(jù)庫操作5.4.1數(shù)據(jù)庫的連接、添加、刪除和更新等class csv

40、ndb/privateprivate $m_link = null;function _construct() /數(shù)據(jù)庫連接$host = localhost;$user = svn_db;$passwd = 1234;$db = svn_usr;$m_link = mysql_connect($host, $user, $passwd);if (!$m_link)die(could not connect: . mysql_error();$db_selected = mysql_select_db($db, $m_link);if (!$db_selected) mysql_close($

41、link);die (could not use db : . mysql_error(); /public /檢查值是否存在public function check_field_value_exist($table,$field,$value)$sql = select $field from $table where $field=$value;$query = mysql_query ($sql);if(!$query)die (invalid query: . mysql_error();if(mysql_num_rows($query) = 0)return false;elser

42、eturn true;public function add_user_array($table,$userinfo) /增加用戶$sql = insert into $table ( username , passwd , groups , realname , dept ,tel)values(.$userinfousername.,.$userinfopasswd.,.$userinfogroups.,.$userinforealname.,.$userinfodept.,.$userinfotel. ); $query = mysql_query ($sql); if(!$query)

43、die (invalid query: . mysql_error();return true; public function add_user_array1($table,$userinfo) $sql = insert into $table ( user_name , user_password , user_group)values(.$userinfousername.,.$userinfopasswd.,.$userinfogroups. );$query = mysql_query ($sql);if(!$query)die (invalid query: . mysql_er

44、ror();return true;public function add_user($table,$u_name,$u_pwd,$u_rname,$u_dept,$u_tel)$sql = insert into $table ( username , passwd , groups , realname , dept , tel )values ($u_name, $u_pwd, user, $u_rname, $u_dept, $u_tel); $query = mysql_query ($sql);if(!$query)die (invalid query: . mysql_error

45、();return true;function get_user_info($table,$user) /取得用戶信息$sql = select * from $table where username=$user;$query = mysql_query ($sql);if(!$query)die (invalid query: . mysql_error();return mysql_fetch_assoc($query) ;function update_user_info_array($table,$userinfo) /更新用戶信息$sql = update $table set passwd=.$userinfopasswd.,realname=.$userinforealname.,dept=.$userinfodept.,tel=.$use

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論