|
隨著互聯(lián)網(wǎng)的興起,web應(yīng)用程序服務(wù)器的使用越來越廣泛,目前流行的構(gòu)建web應(yīng)用程序和動態(tài)網(wǎng)頁的設(shè)計技術(shù)主要有JSP、PHP、ASP.NET三種,有一個公司將建設(shè)自己的web提供一個業(yè)務(wù)應(yīng)用的平臺。作為一名編程人員,我將闡述現(xiàn)主流Web開發(fā)語JSP、PHP、ASP.NET語言的比較,并且根據(jù)需求選擇基于PHP技術(shù)的web建設(shè)方案,能滿足我國中小企業(yè)的一般的辦公自動化的工作需求,參考這個方案做本公司的web設(shè)計與建設(shè)。 第1章 主流技術(shù)分析 現(xiàn)在主流的網(wǎng)站開發(fā)語言無外乎asp、php、asp.net、jsp等。網(wǎng)頁從開始簡單的hmtl到復(fù)雜的服務(wù)語言,走過了10多個年頭,各種技術(shù)層出不窮,單個的主流技術(shù)也在不斷翻新的版本,現(xiàn)在分析下各種語言的區(qū)別、優(yōu)勢、劣勢、開發(fā)注意事項! §1.1 主流技術(shù)介紹 §1.1.1 ASP.NET技術(shù) ASP.net是Microsoft.net的一部分,作為戰(zhàn)略產(chǎn)品,不僅僅是 Active Server Page (ASP) 的下一個版本;它還提供了一個統(tǒng)一的 Web 開發(fā)模型,其中包括開發(fā)人員生成企業(yè)級 Web 應(yīng)用程序所需的各種服務(wù)。ASP.NET 的語法在很大程度上與 ASP 兼容,同時它還提供一種新的編程模型和結(jié)構(gòu),可生成伸縮性和穩(wěn)定性更好的應(yīng)用程序,并提供更好的安全保護(hù)??梢酝ㄟ^在現(xiàn)有 ASP 應(yīng)用程序中逐漸添加 ASP.NET 功能,隨時增強 ASP 應(yīng)用程序的功能。ASP.NET 是一個已編譯的、基于 .NET 的環(huán)境,可以用任何與 .NET 兼容的語言(包括 Visual Basic .NET、C# 和 JScript .NET.)創(chuàng)作應(yīng)用程序。另外,任何 ASP.NET 應(yīng)用程序都可以使用整個 .NET Framework。開發(fā)人員可以方便地獲得這些技術(shù)的優(yōu)點,其中包括托管的公共語言運行庫環(huán)境、類型安全、繼承等等。ASP.NET 可以無縫地與 WYSIWYG HTML 編輯器和其他編程工具(包括 Microsoft Visual Studio .NET)一起工作。這不僅使得 Web 開發(fā)更加方便,而且還能提供這些工具必須提供的所有優(yōu)點,包括開發(fā)人員可以用來將服務(wù)器控件拖放到 Web 頁的 GUI 和完全集成的調(diào)試支持。微軟為ASP.net設(shè)計了這樣一些策略:易于寫出結(jié)構(gòu)清晰的代碼、代碼易于重用和共享、可用編譯類語言編寫等等,目的是讓程序員更容易開發(fā)出Web應(yīng)用,滿足計算向Web轉(zhuǎn)移的戰(zhàn)略需要。 §1.1.2 PHP技術(shù) PHP 的全名非常有趣,它是一個巢狀的縮寫名稱——“PHP: Hypertext Preprocessor”,打開縮寫還是縮寫。PHP是一種HTML 內(nèi)嵌式的語言 (就像上面講的ASP那樣)。而 PHP 獨特的語法混合了C,Java,Perl以及 PHP 式的新語法。它可以比 CGI 或者 Perl 更快速地執(zhí)行動態(tài)網(wǎng)頁。 PHP的源代碼完全公開,在 Open Source 意識抬頭的今天,它更是這方面的中流砥柱。不斷地有新的函數(shù)庫加入,以及不停地更新,使得 PHP 無論在 UNIX 或是 Win32 的平臺上都可以有更多新的功能。它提供豐富的函數(shù),使得在程式設(shè)計方面有著更好的資源。目前PHP的最新版本為5.0 ,它可以在Win32以及UNIX/Linux等幾乎所有的平臺上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比較傳統(tǒng) CGI 或者 ASP 等技術(shù)有了更好的表現(xiàn)。 平臺無關(guān)性是PHP的最大優(yōu)點,但是在優(yōu)點的背后,還是有一些小小的缺點的。如果在PHP中不使用ODBC,而用其自帶的數(shù)據(jù)庫函數(shù)(這樣的效率要比使用 ODBC高)來連接數(shù)據(jù)庫的話,使用不同的數(shù)據(jù)庫,PHP的函數(shù)名不能統(tǒng)一。這樣,使得程序的移植變得有些麻煩。不過,作為目前應(yīng)用最為廣泛的一種后臺語言,PHP的優(yōu)點還是異常明顯的。 §1.1.3 JSP技術(shù) JSP和Servlet要放在一起講,是因為它們都是Sun公司的J2EE(Java 2 platform Enterprise Edition)應(yīng)用體系中的一部分。 Servlet的形式和前面講的CGI差不多,它是HTML代碼和后臺程序分開的。它們的啟動原理也差不多,都是服務(wù)器接到客戶端的請求后,進(jìn)行應(yīng)答。不同的是,CGI對每個客戶請求都打開一個進(jìn)程(Process),而Servlet卻在響應(yīng)第一個請求的時候被載入,一旦Servlet被載入,便處于已執(zhí)行狀態(tài)。對于以后其他用戶的請求,它并不打開進(jìn)程,而是打開一個線程(Thread),將結(jié)果發(fā)送給客戶。由于線程與線程之間可以通過生成自己的父線程(Parent Thread)來實現(xiàn)資源共享,這樣就減輕了服務(wù)器的負(fù)擔(dān),所以,Java Servlet可以用來做大規(guī)模的應(yīng)用服務(wù)。 雖然在形式上JSP和ASP或PHP看上去很相似——都可以被內(nèi)嵌在HTML代碼中。但是,它的執(zhí)行方式和ASP或PHP完全不同。在JSP被執(zhí)行的時候,JSP文件被JSP解釋器(JSP Parser)轉(zhuǎn)換成Servlet代碼,然后Servlet代碼被Java編譯器編譯成 .class 字節(jié)文件,這樣就由生成的Servlet來對客戶端應(yīng)答。所以,JSP可以看做是Servlet的腳本語言(Script Language)版。 由于JSP/Servlet都是基于Java的,所以它們也有Java語言的最大優(yōu)點——平臺無關(guān)性,也就是所謂的“一次編寫,隨處運行(WORA – Write Once, Run Anywhere)”。除了這個優(yōu)點,JSP/Servlet的效率以及安全性也是相當(dāng)驚人的。因此,JSP/Servlet雖然在國內(nèi)目前的應(yīng)用并不廣泛,但是其前途不可限量。 在調(diào)試JSP代碼時,如果程序出錯,JSP服務(wù)器會返回出錯信息,并在瀏覽器中顯示。這時,由于JSP是先被轉(zhuǎn)換成Servlet后再運行的,所以,瀏覽器中所顯示的代碼出錯的行數(shù)并不是JSP源代碼的行數(shù),而是指轉(zhuǎn)換后的Servlet程序代碼的行數(shù)。這給調(diào)試代碼帶來一定困難。所以,在排除錯誤時,可以采取分段排除的方法(在可能出錯的代碼前后輸出一些字符串,用字符串是否被輸出來確定代碼段從哪里開始出錯),逐步縮小出錯代碼段的范圍,最終確定錯誤代碼的位置。 §1.2 主流技術(shù)開發(fā)組合 §1.2.1 IIS環(huán)境 ASP+ACCESS ASP+SQL SERVER ASP.NET+ACCESS ASP.NET+SQL SERVER §1.2.2 APACHE環(huán)境下
jsp+Oracale JSP+MYSQL PHP+MYSQL §1.2.3 技術(shù)分析 PHP是當(dāng)前興起備受推崇的一種WEB編程語言,開源且跨平臺,在歐美都比較的流行,最近在國內(nèi)也很受許多網(wǎng)站開發(fā)者的歡迎.開發(fā)效率高,成本低! JSP是了SUN公司推出的一種網(wǎng)絡(luò)編程語言,比較難學(xué)(是網(wǎng)上公認(rèn)的),跨平臺運行.安全性比較高,運行效率也比較的快.備受企業(yè)級的公司及銀行金融機構(gòu)使用. 主流網(wǎng)站開發(fā)語言之ASP.NET從某種意義上說應(yīng)該是ASP版本的升級,但是它又不完全是從ASP上升級來的,ASP.NET的推出是微軟為了與 SUN公司的JSP在網(wǎng)絡(luò)上的迅猛發(fā)展抵抗的,.NET架構(gòu)現(xiàn)在有許多人都在學(xué)習(xí),主要是開發(fā)的效率比較的高.但是還是基于WIN平臺運行,不能跨平臺.說java好主要是因為java的j2ee部分做企業(yè)級開發(fā)很強大,而且跨平臺 。c#是.net平臺上最好用的語言,現(xiàn)在只能運行在windows系統(tǒng)。 web開發(fā)方面.net和j2ee的競爭很激烈,難說以后鹿死誰手。 現(xiàn)在做網(wǎng)站大部分都是asp.net或jsp的,asp.net容易上手,比較普及,但是平臺單一,jsp雖然上手難,但是跨平臺,安全性高。大型網(wǎng)站很少有用windows系統(tǒng)的。 §1.3 優(yōu)缺點比較 ASP.NET優(yōu)點: 1. 簡潔的設(shè)計和實施。 2. 語言靈活,并支持復(fù)雜的面向?qū)ο筇匦浴?br/> 3. 開發(fā)環(huán)境。 缺點: 1.?dāng)?shù)據(jù)庫的連接復(fù)雜。 JSP優(yōu)點: 1、一處編寫隨處運行。 2、系統(tǒng)的多臺平支持。 3、強大的的可伸縮性。 4、多樣化和功能強大的開發(fā)工具支持。 缺點: 1、與ASP一樣,Java的一些優(yōu)勢正是它致命的問題所在。 2、缺少系統(tǒng)性的資料。 3、速度超慢 PHP優(yōu)點: 1、一種能快速學(xué)習(xí)、跨平臺、有良好數(shù)據(jù)庫交互能力的開發(fā)語言。 2、簡單輕便,易學(xué)易用。 3、與Apache及其它擴展庫結(jié)合緊密。 4、良好的安全性。 缺點: 1、數(shù)據(jù)庫支持的極大變化。 2、不適合應(yīng)用于大型電子商務(wù)站點 3、安裝復(fù)雜。 4、缺少正規(guī)的商業(yè)支持。 5、無法實現(xiàn)商品化應(yīng)用的開發(fā)。 根據(jù)圖示來進(jìn)行更為直觀的比較 第二章 系統(tǒng)需求分析 根據(jù)第一章的技術(shù)比較,PHP比較適合中小企業(yè)。無論是以后的移植或者開發(fā)成本和效率綜合因素考慮,PHP為首選開發(fā)技術(shù)。且天利公司對PHP開源項目很感興趣。所以,決定使用PHP + MySQL數(shù)據(jù)庫進(jìn)行項目開發(fā),足矣滿足公司日常工作需求。 §2.1現(xiàn)行業(yè)務(wù)描述§2.1.1公司組織結(jié)構(gòu)介紹管理層下設(shè)財務(wù)部、倉儲部、采購部、銷售部。組織結(jié)構(gòu)圖見2.1.1 表2.1.1 組織結(jié)構(gòu)職責(zé)表 部門 | 職責(zé) | 董事會 | 公司投資與運行戰(zhàn)略的部署和決策 | 總經(jīng)理 | 管理公司運營事物,實現(xiàn)運營目標(biāo) | 財務(wù)部 | 管理公司資金來源與運用,支持各部門的工作 | 倉儲部 | 從事公司生產(chǎn)與服務(wù)所需物資的入庫、儲存、發(fā)放 | 采購部 | 制定采購計劃,進(jìn)行供應(yīng)商的協(xié)調(diào)和管理,進(jìn)行市場的調(diào)研 | 銷售部 | 管理和處理公司具體的銷售業(yè)務(wù)工作 | 行政部 | 管理公司人員的招聘和職務(wù)調(diào)動 | 倉管員 | 發(fā)放管理公司物資 |
|
|
§2.1.2 業(yè)務(wù)流程分析本系統(tǒng)進(jìn)行業(yè)務(wù)流程分析采用的工具是業(yè)務(wù)流程圖,這是一種能夠較準(zhǔn)確表明系統(tǒng)內(nèi)各單位、人員之間業(yè)務(wù)關(guān)系、作業(yè)順序和管理信息流動的流程圖,它能夠幫助分析人員找出業(yè)務(wù)流程中不合理的地方?,F(xiàn)在分別分析采購與庫存管理業(yè)務(wù)流程和商品進(jìn)銷存管理業(yè)務(wù)流程。 1. 采購與庫存業(yè)務(wù)流程分析: 本公司采購與庫存業(yè)務(wù)流程重點管理商品周轉(zhuǎn),主要包括以下幾步: (1) 庫存管理員根據(jù)商品實存不足的情況,向采購部發(fā)出訂貨申請。 (2) 采購部根據(jù)申請組織供貨,庫存管理員驗貨入庫,采購部根據(jù)實際入庫的貨品情況填制進(jìn)貨單,庫存管理員登記進(jìn)貨單進(jìn)賬。 (3) 銷售部門填制銷售單,庫存管理員登記銷售單進(jìn)賬,并發(fā)貨給銷售部門。 (4) 定期編制商品進(jìn)銷存報表上報經(jīng)理。 采購與庫存管理業(yè)務(wù)流程圖見2.1.3 2. 商品進(jìn)銷存業(yè)務(wù)管理流程分析: 目前,本公司保管業(yè)務(wù)流程重點管理保管資金流程,對商品的保管主要包括以下幾步: (1) 保管人員負(fù)責(zé)保管物品。 (2) 員工向保管人員提出銷售請求。 (3) 保管人員為員工或客戶填寫發(fā)票。 (4) 保管人員將發(fā)票清單遞交負(fù)責(zé)人核查。 (5) 員工核查發(fā)票清單無異議簽字遞交庫存管理員。 (6) 庫存管理員提供員工所請求物品。 §2.2現(xiàn)行系統(tǒng)存在的主要問題現(xiàn)行系統(tǒng)是手工運作的系統(tǒng),可以向員工提供商品服務(wù)功能。但是,存在以下薄弱節(jié): (1) 現(xiàn)行系統(tǒng)收工操作,人員工作量大,數(shù)據(jù)遞交不及時。在數(shù)據(jù)進(jìn)行統(tǒng)計和計算過程中難免出現(xiàn)差錯,工作效率極低。 (2) 業(yè)務(wù)流程不夠嚴(yán)密。 (3) 向員工提供的發(fā)票清單手工書寫,常發(fā)生字跡不清且格式也不能夠保證統(tǒng)一。 (4) 歷史賬務(wù)查詢不方便 (5) 數(shù)據(jù)存儲在紙張,不容易長時間保管且不夠安全。 現(xiàn)行系統(tǒng)的上述問題,反映了公司工作中對信息的產(chǎn)生、傳輸、加工、安全與挖掘分析利用方面存在不足,不能滿足企業(yè)管理與業(yè)務(wù)發(fā)展的需求,也會對企業(yè)形象帶來不利的影響。這也是開發(fā)新系統(tǒng)的直接原因。 §2.3 解決方案公司規(guī)模不算太大,但是也有異地分公司。使用B/S架構(gòu)系統(tǒng)較為合適。開發(fā)成本低且使用方便簡單,一般人員不用培訓(xùn)即可上手使用。 §2.4 可行性分析與決策1. 技術(shù)可行性 最近十幾年來,信息管理系統(tǒng)從以前的桌面應(yīng)用程序已經(jīng)逐漸被網(wǎng)頁所代替。并且通過分析選用PHP + MySQL + Apache + UbuntuServer因為所用技術(shù)和系統(tǒng)全為開源技術(shù)。所以,基本上可以免費使用。這樣,不僅開發(fā)成本低廉開發(fā)也比較簡單并且能夠保障系統(tǒng)穩(wěn)定運行。 2. 經(jīng)濟(jì)可行性 本人參與本系統(tǒng)的開發(fā)工作,主要是為了綜合運用所學(xué)知識,通過理論與實踐相結(jié)合,提高本人的專業(yè)技術(shù)知識和應(yīng)用能力。所以,主動免費承擔(dān)本系統(tǒng)的研發(fā)工作。 3. 營運可行性 運用本系統(tǒng)的員工,需要具備Linux平臺上的基本操作知識,并不需要特別的技術(shù)能力。因為本系統(tǒng)操作簡單方便。在該公司與本項目運營的相關(guān)直接人員(包括管理層、倉儲部、銷售部)中已經(jīng)具備。并且,在該項目投入使用前,還會針對操作系統(tǒng)的人員進(jìn)行必要的培訓(xùn)。 第3章 系統(tǒng)邏輯方案 §3.1 數(shù)據(jù)流圖描述數(shù)據(jù)流圖是對組織中信息運動的抽象,是信息管理系統(tǒng)邏輯模型的主要表現(xiàn)形式。它不涉及具體的開發(fā),如硬件、軟件、數(shù)據(jù)結(jié)構(gòu)與文件組織,是用圖形語言以及相關(guān)注釋來表示系統(tǒng)的邏輯功能,及所開發(fā)的系統(tǒng)在管理信息處理方面需要做什么。 §3.1.1 系統(tǒng)關(guān)聯(lián)圖首先,根據(jù)對信息管理建設(shè)的總體要求,確定系統(tǒng)的外部項,即系統(tǒng)數(shù)據(jù)的來源和去處。通過分析,掌握本系統(tǒng)的數(shù)據(jù)流向,繪制本系統(tǒng)的關(guān)聯(lián)圖 采購部向本系統(tǒng)提供進(jìn)貨單信息F2,并可以通過從本系統(tǒng)獲得訂貨需求報告F1、查詢進(jìn)貨入庫信息F3; 銷售部部等部門對商品的領(lǐng)用F4信息提交本系統(tǒng)進(jìn)行管理,也可以通過本系統(tǒng)查詢商品銷售信息F5; 客戶通過出庫單,獲得商品F6。 最后可以生成分析報表F7,支持公司日常營運管理。 另外,本系統(tǒng)支持經(jīng)理對營運數(shù)據(jù)的統(tǒng)計分析功能F8。 §3.1.2 系統(tǒng)頂層數(shù)據(jù)流程圖說明本系統(tǒng)的頂層數(shù)據(jù)流圖 在頂層數(shù)據(jù)流圖3.1.2中,一共有四個主要的加工:“P1商品進(jìn)貨管理”,“P2商品銷售管理”,“P3庫存管理”、“P4統(tǒng)計報表”。 P1商品進(jìn)貨管理:處理各種商品入庫操作。 P2商品銷售管理:處理客戶信息,處理商品銷售操作生成“分析報表”上報公司經(jīng)理。 P3庫存管理:基于各項數(shù)據(jù)表的數(shù)據(jù)根據(jù)進(jìn)貨和保管生成庫存記錄。 P4綜合統(tǒng)計:基于各項數(shù)據(jù)表的數(shù)據(jù)進(jìn)行信息管理統(tǒng)計分析。 第4章 系統(tǒng)結(jié)構(gòu)設(shè)計 §4.1 軟件模塊結(jié)構(gòu)設(shè)計由于系統(tǒng)流程圖的不完善,在70年代中期出現(xiàn)了HIPO技術(shù),在軟件工程當(dāng)中經(jīng)常使用,它通過圖形方法表達(dá)了一個系統(tǒng)的輸入和輸出功能,以及模塊的層次。HIPO技術(shù)包含兩個方面的內(nèi)容: HIPO分層圖。用這樣的表示自頂向下分解所得系統(tǒng)的模塊層次結(jié)構(gòu)。 IPO圖(輸入→處理→輸出圖)。此圖描述系統(tǒng)功能模塊輸入輸出處理的內(nèi)容。 HIPO分層圖用一個方塊表達(dá)一個模塊,方塊內(nèi)可表示出此模塊的處理能力和模塊名。模塊之間的調(diào)用關(guān)系用連接兩模塊的直線表示。采用自頂向下擴展的方法表達(dá)整個系統(tǒng)模塊之間的關(guān)系。根據(jù)需求分析繪制的HIPO分層圖 §4.2 數(shù)據(jù)庫設(shè)計概念模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。在系統(tǒng)的數(shù)據(jù)庫設(shè)計中,首先要對系統(tǒng)分析得到的數(shù)據(jù)字典中的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流和數(shù)據(jù)存儲進(jìn)行分析,并參照DFD,把數(shù)據(jù)抽取出來,確定實體的屬性以及實體間的關(guān)系,這樣才能得出系統(tǒng)的關(guān)系模式。 實體聯(lián)系圖(E-R圖)是一種用于靜態(tài)數(shù)據(jù)結(jié)構(gòu)的概念模型。本系統(tǒng)采用E-R圖的方法進(jìn)行數(shù)據(jù)分析,通過E-R圖來描述現(xiàn)實世界信息結(jié)構(gòu)的數(shù)據(jù)庫設(shè)計方法。 §4.2.1 數(shù)據(jù)庫需求設(shè)計分析需求分析的目的在于識別用戶的數(shù)據(jù)需求,非形式地描述有關(guān)數(shù)據(jù)對象及其聯(lián)系的要作為記錄的信息,取得如下信息的非形式描述: 庫存存儲的商品 需要記錄沒種商品的編號、單位、余量、成本、零售價格。 客戶的信息 需要記錄客戶信息 員工信息 需要記錄當(dāng)前員工編號、姓名、職務(wù)等信息 E-R圖 E-R圖可以來描述靜態(tài)數(shù)據(jù)結(jié)構(gòu):實體、聯(lián)系、實體和聯(lián)系的屬性。符號示例如下: 根據(jù)以上分析結(jié)果,繪制出本系統(tǒng)的E-R圖,見圖4.2.2。圖中的實體和聯(lián)系屬性在本文中進(jìn)行了文字說明。 §4.2.2 E-R模型轉(zhuǎn)化為關(guān)系模式1. 轉(zhuǎn)換規(guī)則 實體集的轉(zhuǎn)化 每個實體集用—關(guān)系模式表示,其中實體集的屬性被轉(zhuǎn)換誠關(guān)系的屬性,實體集的主鍵(用下劃線表示,下同),在滿足唯一標(biāo)識和無冗余等性質(zhì)的條件下,將作為對應(yīng)關(guān)系的主鍵。 二元聯(lián)系轉(zhuǎn)換 強制成員類:若實體集E2與實體集E1是N:1聯(lián)系,E2的關(guān)系模式應(yīng)包含E1的主屬性; 可選成員類:若實體集E2是它同實體集E1的N:1聯(lián)系中的一個可選成員。那么,這個聯(lián)系往往由包括E1和E2主屬性以及該聯(lián)系中每個屬性的各個關(guān)系模式表示;為了避免空值問題,我們也可以引入另一個表示聯(lián)系的關(guān)系。 N:N二元聯(lián)系:一般由另一個關(guān)系模式表示。這個關(guān)系模式由每個參加的實體集的主屬性以及這個聯(lián)系的任何屬性一起組成。 2. 關(guān)系模式 根據(jù)所屬的轉(zhuǎn)化規(guī)則,在從E-R圖向關(guān)系模式轉(zhuǎn)換時,我們可以做下述調(diào)整: 將E-R如中“倉庫”由于只有一個倉庫,所以將“倉庫”和“倉庫管理員”省略。 本系統(tǒng)在進(jìn)行操作時客戶關(guān)系有表存在但是不應(yīng)用在本系統(tǒng)。所以,“客戶”,“銷售”省略 經(jīng)過上述分析,確定本系統(tǒng)的關(guān)系模式如下: 進(jìn)貨(進(jìn)貨編號,庫存號,數(shù)量)外鍵:庫存號 銷售(銷售編號,庫存號,單價,數(shù)量)外鍵:庫存號 庫存(庫存號,名稱,單價,數(shù)量) §4.3 LAMP安裝與配置。 本系統(tǒng)采用PHP和MySQL技術(shù)實現(xiàn)。操作系統(tǒng)為UbuntuServer所用Web服務(wù)器為Apache這是在中小型企業(yè)比較流行的LAMP §4.3.1 單獨安裝LAMP 1. 首先安裝SSH sudo apt-get install ssh 2. 安裝MySQL sudo apt-get install mysql-server-5.1 3. 安裝Apache sudo apt-get install apache2 4.安裝PHP sudo apt-get install php5 libapache2-mod-php5 5.重啟Apache sudo /etc/init.d/apache2 restart 6.安裝phpMyAdmin sudo apt-get install phpmyadmin §4.3.2 配置Apache 在/etc/apache2/這個目錄下找到conf.d文件用vim編輯找到 # Read the documentation before enabling AddDefaultCharset. # In general, it is only a good idea if you know that all your files # have this encoding. It will override any encoding given in the files # in meta http-equiv or xml encoding tags. #AddDefaultCharset GB2312 把AddDefaultCharset GB2312改為#AddDefaultCharset UTF-8 在 /etc/apache2/sites-available/default 默認(rèn)情況下將要發(fā)布的網(wǎng)頁文件應(yīng)該置于/var/www目錄下,這一默認(rèn)值可以同過主配置文件中的DocumNETRoot 選項修改. 文件內(nèi)容為: <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /CGI-bin/ /usr/lib/CGI-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> 如果我要將web目錄移動到/web/web1,則新建此文件夾,將權(quán)限改為755, 同時編輯/etc/apache2/sites-available/default,將/var/www替換為/web/web1即可根據(jù)需求替換為/tianli然后把IP地址設(shè)置為服務(wù)器所在IP即可。 §4.3.3 配置MySQL 第一次運行MySQL默認(rèn)root用戶為空,更改root密碼為123456,則 # mysqladmin -u root password 123456 修改管理員密碼 以后想修改密碼為abc則: # mysqladmin -u root -p password abc Enter password: 輸入原來的密碼:123456即可 第5章 系統(tǒng)詳細(xì)設(shè)置 §5.1 頁面設(shè)計 根據(jù)需求分析,網(wǎng)頁主要提供進(jìn)銷存管理系統(tǒng)。網(wǎng)頁根據(jù)具體編寫而變化。 §5.2 數(shù)據(jù)庫設(shè)計 根據(jù)需求,總共有4個表,根據(jù)開發(fā)進(jìn)度按需增加或刪改表。 表5.2.1 addStock 序號 | 數(shù)據(jù)項名 | 類型 | 長度 | 主鍵 | 外鍵 | 1 | ID | nvarchar | 20 | Y |
| 2 | goodsID | nvarchar | 20 |
|
| 3 | number | int |
|
|
|
|
|
|
|
|
|
表5.2.2 market 序號 | 數(shù)據(jù)項名 | 類型 | 長度 | 主鍵 | 外鍵 | 1 | ID | int |
| Y |
| 2 | goodsID | nvarchar | 20 |
|
| 3 | price | smallmoney |
|
|
| 4 | number | int |
|
|
|
|
|
|
|
|
|
表5.2.3 stocks 序號 | 數(shù)據(jù)項名 | 類型 | 長度 | 主鍵 | 外鍵 | 1 | goodsID | nvarchar | 20 | Y |
| 2 | name | nvarchar | 20 |
|
| 3 | price | smallmoney |
|
|
| 4 | number | int |
|
|
|
|
|
|
|
|
|
表5.2.4 userLogin 序號 | 數(shù)據(jù)項名 | 類型 | 長度 | 主鍵 | 外鍵 | 1 | username | nvarchar | 50 | Y |
| 2 | pwd | nvarchar | 30 |
|
|
|
|
|
|
|
|
§5.3 系統(tǒng)類設(shè)計 因為使用PHP進(jìn)行編寫。所以,采用簡單MVC模式編寫。新版本的php支持面向?qū)ο?,就采用類的方式進(jìn)行數(shù)據(jù)的處理,提交頁面控制。 第6章 實施概況 §6.1 編譯環(huán)境 雖然選用的技術(shù)為LAMP組合,但是,php具有良好的移植性,能夠在可視化具有很大優(yōu)勢的Winodws平臺底下開發(fā),最后在Ubuntu系統(tǒng)下運行。所以,采用的開發(fā)工具為EclipsePHP Studio . §6.3 系統(tǒng)測試概況 系統(tǒng)測試的目的,是以最少的測試資源去發(fā)現(xiàn)盡可能多的BUG。軟件測試通常采用黑盒測試和白盒測試,用黑盒測試主要是再在考慮程序內(nèi)部結(jié)構(gòu)和特性的情況下,按照用戶的軟件需求說明來驗證軟件的外部特性是否符合要求。白盒測試是按照程序的內(nèi)部結(jié)構(gòu)處理邏輯來設(shè)計測試用例,檢查程序的內(nèi)部處理是否符合要求。根據(jù)測試,在WIndows下開發(fā)的PHP可以直接用在Ubuntu底下,成功運行且沒有錯誤。 第7章 不足和觀望 由于本系統(tǒng)的研發(fā)工作在本人業(yè)余時間完成,開發(fā)進(jìn)度和計劃相比存在差距,前期系統(tǒng)分析工作進(jìn)度較慢,后期開發(fā)時間比較緊湊。在研發(fā)過程中,與用戶交流不夠充分,這也是前期工作進(jìn)度較慢的原因。并且,因為本人能力局限這里使用簡單的MVC模式,沒有使用任何基于PHP的框架,這一點比較遺憾。希望在以后的本項目改進(jìn)中,引用優(yōu)秀的開發(fā)框架進(jìn)行開發(fā)。
信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
|