PHP開發(fā)環(huán)境搭建及網(wǎng)站制作
時(shí)間:2022-04-09 03:54:00
導(dǎo)語:PHP開發(fā)環(huán)境搭建及網(wǎng)站制作一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
隨著Web技術(shù)的發(fā)展,采用傳統(tǒng)營銷和網(wǎng)絡(luò)營銷相結(jié)合的方式已成為各類公司發(fā)展的必然選擇。在網(wǎng)絡(luò)營銷中比較有效的手段是建立一個(gè)適合自己公司規(guī)模的網(wǎng)站[1-2]。目前網(wǎng)站開發(fā)的主流平臺有LAMP(Linux操作系統(tǒng)、Apache網(wǎng)絡(luò)服務(wù)器、MySQL數(shù)據(jù)庫、php編程語言),J2EE和“.Net”商業(yè)軟件。由于PHP、MYSQL具有免費(fèi)、開源等多方面優(yōu)點(diǎn),因此受到整個(gè)IT界的關(guān)注。從網(wǎng)站的流量來說,70%以上的訪問流量是LAMP來提供的,LAMP是最強(qiáng)大的網(wǎng)站解決方案[3]。
本文將結(jié)合一個(gè)職場咨詢網(wǎng)站———卓企網(wǎng)的開發(fā)過程,對基于PHP與MYSQL數(shù)據(jù)庫相結(jié)合的網(wǎng)站開發(fā)所涉及的開發(fā)環(huán)境,需求分析,功能模塊,數(shù)據(jù)庫操作與安全等進(jìn)行分析與討論。
1開發(fā)環(huán)境分析
1.1開發(fā)語言的選擇
作為當(dāng)今網(wǎng)站開發(fā)的3種主流語言:ASP.NET、PHP、JSP,它們存在的各自優(yōu)點(diǎn)與不足如表1所示[4-5]。本項(xiàng)目確定以PHP為開發(fā)的語言環(huán)境的原因:
1)免費(fèi)。因?yàn)轫?xiàng)目較小不適合采用付費(fèi)的ASP.NET和JSP的開發(fā)平臺。
2)支持性強(qiáng)。中國現(xiàn)在很多中小型網(wǎng)站甚至一些大型網(wǎng)站,如百度、新浪等都加入了PHP的大家庭,從而能更簡單地解決開發(fā)過程中遇到的各種難題。
3)移植性好。盡管最初是被設(shè)計(jì)用于基于Linux的ApacheWeb服務(wù)器系統(tǒng),但現(xiàn)在的PHP已經(jīng)被移植到了任何操作系統(tǒng)并兼容任何標(biāo)準(zhǔn)Web服務(wù)器軟件,即絕大部分的Web主機(jī)提供商都會支持PHP,因此根據(jù)需要更改主機(jī)將會非常方便。
4)語言簡單。由于PHP同C編程語言有很多相似之處,對于熟悉相關(guān)語法的開發(fā)人員來說,PHP則非常容易上手。
5)發(fā)展迅速。由于是開放源代碼產(chǎn)品,PHP將繼續(xù)快速發(fā)展,更為重要的是相關(guān)漏洞補(bǔ)丁將免費(fèi)地定期植入到核心庫中。此外還有PHP實(shí)現(xiàn)對加密的支持以及對各種數(shù)據(jù)庫服務(wù)器的支持等。
1.2開發(fā)環(huán)境搭建
目前,基于PHP的開發(fā)平臺較多。一般開發(fā)人員喜歡LAMP的開發(fā)環(huán)境,有一定開發(fā)經(jīng)驗(yàn)的人可以選擇相關(guān)的服務(wù)器、數(shù)據(jù)庫、數(shù)據(jù)庫管理軟件和操作系統(tǒng)來構(gòu)建自己的PHP開發(fā)平臺。為了便于開發(fā)人員更好地利用PHP來開發(fā)網(wǎng)站,市場上也出現(xiàn)了多種集成的PHP開發(fā)環(huán)境,如AMPS-erv,WAMP,XMAPP,AppServ,PHPStudy。目前主流的是ZendStudioPHP集成開發(fā)環(huán)境。ZendStudio包括了PHP開發(fā)所有必須的部件,通過一整套編輯、調(diào)試、分析、優(yōu)化和數(shù)據(jù)庫工具。ZendStudio縮短了開發(fā)周期,簡化了復(fù)雜的應(yīng)用方案,已經(jīng)成為目前最強(qiáng)大的PHP集成開發(fā)環(huán)境。ZendStudio的強(qiáng)大之處,除了一般編輯器所具有的代碼高亮、語法自動(dòng)縮進(jìn)、書簽功能外,其內(nèi)置的調(diào)試器可以支持本地和遠(yuǎn)程(debugserv-er)2種調(diào)試模式,支持諸如跟蹤變量、單步運(yùn)行、斷點(diǎn)、堆棧信息、函數(shù)調(diào)用、查看實(shí)時(shí)輸出等多種高級調(diào)試功能。另外,最新版(ZendStudio5.5.1)對中文的支持也是非常穩(wěn)定的[6]。
1.3環(huán)境搭建注意事項(xiàng)
對于對PHP開發(fā)環(huán)境不甚了解的開發(fā)人員建議不要自己搭配開發(fā)環(huán)境,各軟件的版本之間支持性不一樣有可能會造成版本沖突,而且復(fù)雜的配置問題也很難解決。此外在正式開發(fā)之前還應(yīng)注意如下問題。
1)PHP語言版本問題。開發(fā)前,必須確定要使用的版本和服務(wù)器所支持的版本是否一致?,F(xiàn)在主要存在2種版本:PHP4和PHP5。不同版本對SESSION、異常處理、函數(shù)、變量有效范圍和支持的數(shù)據(jù)類型等都有不同。前期若不注意這些問題會給后期的開發(fā)帶來很多不必要的麻煩與不安全。
2)服務(wù)器問題。Windows平臺上,用PHP寫的程序要求是部署在apache服務(wù)器上。如果部署在IIS上,可能由于IIS對PHP支持不是很好,經(jīng)常出現(xiàn)一些莫名其妙的問題。并且IIS使用中,有些設(shè)置必須要手工修改。比如上傳文件時(shí),需要設(shè)置可寫權(quán)限,還要重新設(shè)置上傳文件大小,比較煩瑣。而使用apache服務(wù)器則不存在這些問題。
3)數(shù)據(jù)庫問題。PHP可以使用的數(shù)據(jù)庫管理系統(tǒng)有MySQL、ORACLE等。MySQL由于開源、免費(fèi)、小巧、高效而受到開發(fā)人員一致的青睞。對于中、小型應(yīng)用系統(tǒng),MySQL是一款非常理想的數(shù)據(jù)庫服務(wù)器軟件。除了支持標(biāo)準(zhǔn)的ANSISQL語句外,它還支持多種平臺。在Unix/Linux系統(tǒng)上,MySQL也支持多線程運(yùn)行方式。和PHP、Apache一樣,MySQL也屬于開放源代碼軟件。MySQL對其提供權(quán)限訪問、建立、刪除等一系列支持,使之成為中小型PHP網(wǎng)站的首選。
2基于PHP語言的開發(fā)模型
PHP語言以其免費(fèi)、開源等多方面優(yōu)點(diǎn),逐步成為中小型企業(yè)網(wǎng)站開發(fā)語言的首選。具體開發(fā)步驟如下:
2.1需求分析
一個(gè)網(wǎng)站項(xiàng)目的確立是建立在各種各樣的需求上面的,這種需求往往來自于客戶的實(shí)際需求或者出于公司自身發(fā)展的需要,其中客戶的實(shí)際需求占了絕大部分。面對網(wǎng)站開發(fā)擁有不同知識層面的客戶,項(xiàng)目負(fù)責(zé)人對用戶需求的理解程度,在很大程度上決定了此類網(wǎng)站開發(fā)項(xiàng)目的成敗,因此,如何更好地的了解、分析、明確用戶需求,并且能夠準(zhǔn)確、清晰以文檔的形式表達(dá)給參與項(xiàng)目開發(fā)的每個(gè)成員,保證開發(fā)過程按照滿足用戶需求為目的正確項(xiàng)目開發(fā)方向進(jìn)行,是每個(gè)網(wǎng)站開發(fā)項(xiàng)目管理者需要面對的問題。除了基本的用戶需求分析要點(diǎn)(模塊、流程、帶寬、最大同時(shí)訪問量等)外,需求分析還需要注意以下問題:①需求分析來自項(xiàng)目接收方的負(fù)責(zé)人或由其確定或認(rèn)可;②需求最好以文件方式確定下來;③與需求方進(jìn)行深入有效的分析與討論,告知其需求的可行性和代價(jià)。
2.2功能模塊設(shè)計(jì)
根據(jù)需求得出的需求報(bào)告在與客戶進(jìn)行討論之后得到的雙方都認(rèn)可的確定稿之后,網(wǎng)站的開發(fā)人員根據(jù)高內(nèi)聚低耦合的思想結(jié)合相關(guān)的知識與經(jīng)驗(yàn)結(jié)合成若干大模塊。
2.3數(shù)據(jù)庫設(shè)計(jì)與實(shí)施
包含需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)、系統(tǒng)實(shí)施、運(yùn)行與維護(hù)等多個(gè)階段。在數(shù)據(jù)庫設(shè)計(jì)與實(shí)施的各個(gè)環(huán)節(jié)應(yīng)注意以下問題:網(wǎng)站數(shù)據(jù)庫是網(wǎng)站的核心,數(shù)據(jù)安全性至關(guān)重要。數(shù)據(jù)損壞、丟失、被非法復(fù)制都會引起很多不必要的麻煩,而且有時(shí)會帶來非常大的不良影響與損失,甚至觸犯他人的合法利益,且造成的錯(cuò)誤很難恢復(fù)。MYSQL數(shù)據(jù)庫采取以下安全措施[7]:
1)賬戶安全。MySQL每一賬戶都由用戶名、密碼以及位置(一般由服務(wù)器名、IP或通配符)組成,其包括合理權(quán)限和安全檢查。合理權(quán)限的目的就是通過給不同類型的賬戶賦予不同的權(quán)限,給同一用戶不同數(shù)據(jù)庫或數(shù)據(jù)表以不同權(quán)限來實(shí)現(xiàn)在保證數(shù)據(jù)庫安全的前提下進(jìn)行合理的授權(quán)。MySQL數(shù)據(jù)庫主要使用3種不同類型的安全檢查:登錄驗(yàn)證、授權(quán)、訪問控制。
2)存儲數(shù)據(jù)加密[8]。在應(yīng)用程序的大量信息中,也許你只想對很小的一部分進(jìn)行加密,如用戶的密碼等。這些密碼不應(yīng)該以明文的形式保存,它們應(yīng)該以加密的形式保存在數(shù)據(jù)庫中。一般情況下,大多數(shù)系統(tǒng)(這其中包括MySQL本身)都是使用哈希算法對敏感數(shù)據(jù)進(jìn)行加密的。
3)數(shù)據(jù)庫字符集與編碼[9]。安裝的Web服務(wù)器軟件,例如Apache,默認(rèn)的編碼都不是UTF-8。當(dāng)從以UTF-8編碼的頁面中的表單輸入數(shù)據(jù)時(shí),前臺瀏覽正常,在phpMyAdmin里查看時(shí),中文則變成亂碼。解決辦法可以將MySQL的默認(rèn)編碼改成UTF-8或連接數(shù)據(jù)庫時(shí)指定數(shù)據(jù)的編碼(mysqli_query($dbc,“SETNAMES‘UTF8’”),就可以告知MySQL采用UTF-8編碼傳輸數(shù)據(jù)了[10]。
4)功能模塊實(shí)現(xiàn)。功能模塊實(shí)現(xiàn)的要求:盡量少的代碼,盡量詳盡的注釋,盡量工整的書寫形式。功能模塊實(shí)現(xiàn)的目標(biāo)為:高復(fù)用性、高可靠性、高效率、高安全性、高可讀性等。
3實(shí)例
以PHP語言為基礎(chǔ),開發(fā)了職場咨詢網(wǎng)站———卓企網(wǎng)。卓企網(wǎng)主要包括檢索模塊、專家咨詢模塊、維護(hù)模塊、會員互動(dòng)模塊、問題討論模塊、文檔瀏覽模塊、登陸注冊模塊、幫助模塊和其他輔助模塊等九大模塊,如圖1所示。
圖1卓企網(wǎng)包括的模塊
每一個(gè)大模塊包括一些功能模塊,如在卓企網(wǎng)的會員互動(dòng)模塊中,包括留言、顯示留言、刪除留言等。實(shí)現(xiàn)“留言”模塊的前臺代碼如圖2所示,與之對應(yīng)的后臺處理代碼如圖3所示。
圖2“留言”模塊的前臺處理代碼
圖3“留言”模塊的后臺處理代碼
具體的流程是用戶在留言窗口(如圖4)留言并點(diǎn)擊提交后頁面將相關(guān)數(shù)據(jù)傳送至后臺處理頁面,后臺處理代碼調(diào)用用戶的session值查找對應(yīng)的身份信息后將留言插入數(shù)據(jù)庫,待正確無誤后跳轉(zhuǎn)回留言頁面并刷新留言板,從而用戶可以馬上就看到自己的留言(圖5)。
由于PHP語言的免費(fèi)、開源、高可靠性、可移植性,并且可與MYSQL數(shù)據(jù)庫、Apache服務(wù)器完美結(jié)合,逐步已經(jīng)成為當(dāng)今網(wǎng)站的主流。