PHP開發(fā)環(huán)境搭建及網(wǎng)站制作

時間:2022-04-09 03:54:00

導(dǎo)語:PHP開發(fā)環(huán)境搭建及網(wǎng)站制作一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

PHP開發(fā)環(huán)境搭建及網(wǎng)站制作

隨著Web技術(shù)的發(fā)展,采用傳統(tǒng)營銷和網(wǎng)絡(luò)營銷相結(jié)合的方式已成為各類公司發(fā)展的必然選擇。在網(wǎng)絡(luò)營銷中比較有效的手段是建立一個適合自己公司規(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具有免費、開源等多方面優(yōu)點,因此受到整個IT界的關(guān)注。從網(wǎng)站的流量來說,70%以上的訪問流量是LAMP來提供的,LAMP是最強大的網(wǎng)站解決方案[3]。

本文將結(jié)合一個職場咨詢網(wǎng)站———卓企網(wǎng)的開發(fā)過程,對基于PHP與MYSQL數(shù)據(jù)庫相結(jié)合的網(wǎng)站開發(fā)所涉及的開發(fā)環(huán)境,需求分析,功能模塊,數(shù)據(jù)庫操作與安全等進行分析與討論。

1開發(fā)環(huán)境分析

1.1開發(fā)語言的選擇

作為當今網(wǎng)站開發(fā)的3種主流語言:ASP.NET、PHP、JSP,它們存在的各自優(yōu)點與不足如表1所示[4-5]。本項目確定以PHP為開發(fā)的語言環(huán)境的原因:

1)免費。因為項目較小不適合采用付費的ASP.NET和JSP的開發(fā)平臺。

2)支持性強。中國現(xiàn)在很多中小型網(wǎng)站甚至一些大型網(wǎng)站,如百度、新浪等都加入了PHP的大家庭,從而能更簡單地解決開發(fā)過程中遇到的各種難題。

3)移植性好。盡管最初是被設(shè)計用于基于Linux的ApacheWeb服務(wù)器系統(tǒng),但現(xiàn)在的PHP已經(jīng)被移植到了任何操作系統(tǒng)并兼容任何標準Web服務(wù)器軟件,即絕大部分的Web主機提供商都會支持PHP,因此根據(jù)需要更改主機將會非常方便。

4)語言簡單。由于PHP同C編程語言有很多相似之處,對于熟悉相關(guān)語法的開發(fā)人員來說,PHP則非常容易上手。

5)發(fā)展迅速。由于是開放源代碼產(chǎn)品,PHP將繼續(xù)快速發(fā)展,更為重要的是相關(guān)漏洞補丁將免費地定期植入到核心庫中。此外還有PHP實現(xiàn)對加密的支持以及對各種數(shù)據(jù)庫服務(wù)器的支持等。

1.2開發(fā)環(huán)境搭建

目前,基于PHP的開發(fā)平臺較多。一般開發(fā)人員喜歡LAMP的開發(fā)環(huán)境,有一定開發(fā)經(jīng)驗的人可以選擇相關(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)成為目前最強大的PHP集成開發(fā)環(huán)境。ZendStudio的強大之處,除了一般編輯器所具有的代碼高亮、語法自動縮進、書簽功能外,其內(nèi)置的調(diào)試器可以支持本地和遠程(debugserv-er)2種調(diào)試模式,支持諸如跟蹤變量、單步運行、斷點、堆棧信息、函數(shù)調(diào)用、查看實時輸出等多種高級調(diào)試功能。另外,最新版(ZendStudio5.5.1)對中文的支持也是非常穩(wěn)定的[6]。

1.3環(huán)境搭建注意事項

對于對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è)置可寫權(quán)限,還要重新設(shè)置上傳文件大小,比較煩瑣。而使用apache服務(wù)器則不存在這些問題。

3)數(shù)據(jù)庫問題。PHP可以使用的數(shù)據(jù)庫管理系統(tǒng)有MySQL、ORACLE等。MySQL由于開源、免費、小巧、高效而受到開發(fā)人員一致的青睞。對于中、小型應(yīng)用系統(tǒng),MySQL是一款非常理想的數(shù)據(jù)庫服務(wù)器軟件。除了支持標準的ANSISQL語句外,它還支持多種平臺。在Unix/Linux系統(tǒng)上,MySQL也支持多線程運行方式。和PHP、Apache一樣,MySQL也屬于開放源代碼軟件。MySQL對其提供權(quán)限訪問、建立、刪除等一系列支持,使之成為中小型PHP網(wǎng)站的首選。

2基于PHP語言的開發(fā)模型

PHP語言以其免費、開源等多方面優(yōu)點,逐步成為中小型企業(yè)網(wǎng)站開發(fā)語言的首選。具體開發(fā)步驟如下:

2.1需求分析

一個網(wǎng)站項目的確立是建立在各種各樣的需求上面的,這種需求往往來自于客戶的實際需求或者出于公司自身發(fā)展的需要,其中客戶的實際需求占了絕大部分。面對網(wǎng)站開發(fā)擁有不同知識層面的客戶,項目負責人對用戶需求的理解程度,在很大程度上決定了此類網(wǎng)站開發(fā)項目的成敗,因此,如何更好地的了解、分析、明確用戶需求,并且能夠準確、清晰以文檔的形式表達給參與項目開發(fā)的每個成員,保證開發(fā)過程按照滿足用戶需求為目的正確項目開發(fā)方向進行,是每個網(wǎng)站開發(fā)項目管理者需要面對的問題。除了基本的用戶需求分析要點(模塊、流程、帶寬、最大同時訪問量等)外,需求分析還需要注意以下問題:①需求分析來自項目接收方的負責人或由其確定或認可;②需求最好以文件方式確定下來;③與需求方進行深入有效的分析與討論,告知其需求的可行性和代價。

2.2功能模塊設(shè)計

根據(jù)需求得出的需求報告在與客戶進行討論之后得到的雙方都認可的確定稿之后,網(wǎng)站的開發(fā)人員根據(jù)高內(nèi)聚低耦合的思想結(jié)合相關(guān)的知識與經(jīng)驗結(jié)合成若干大模塊。

2.3數(shù)據(jù)庫設(shè)計與實施

包含需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計、系統(tǒng)實施、運行與維護等多個階段。在數(shù)據(jù)庫設(shè)計與實施的各個環(huán)節(jié)應(yīng)注意以下問題:網(wǎng)站數(shù)據(jù)庫是網(wǎng)站的核心,數(shù)據(jù)安全性至關(guān)重要。數(shù)據(jù)損壞、丟失、被非法復(fù)制都會引起很多不必要的麻煩,而且有時會帶來非常大的不良影響與損失,甚至觸犯他人的合法利益,且造成的錯誤很難恢復(fù)。MYSQL數(shù)據(jù)庫采取以下安全措施[7]:

1)賬戶安全。MySQL每一賬戶都由用戶名、密碼以及位置(一般由服務(wù)器名、IP或通配符)組成,其包括合理權(quán)限和安全檢查。合理權(quán)限的目的就是通過給不同類型的賬戶賦予不同的權(quán)限,給同一用戶不同數(shù)據(jù)庫或數(shù)據(jù)表以不同權(quán)限來實現(xiàn)在保證數(shù)據(jù)庫安全的前提下進行合理的授權(quán)。MySQL數(shù)據(jù)庫主要使用3種不同類型的安全檢查:登錄驗證、授權(quán)、訪問控制。

2)存儲數(shù)據(jù)加密[8]。在應(yīng)用程序的大量信息中,也許你只想對很小的一部分進行加密,如用戶的密碼等。這些密碼不應(yīng)該以明文的形式保存,它們應(yīng)該以加密的形式保存在數(shù)據(jù)庫中。一般情況下,大多數(shù)系統(tǒng)(這其中包括MySQL本身)都是使用哈希算法對敏感數(shù)據(jù)進行加密的。

3)數(shù)據(jù)庫字符集與編碼[9]。安裝的Web服務(wù)器軟件,例如Apache,默認的編碼都不是UTF-8。當從以UTF-8編碼的頁面中的表單輸入數(shù)據(jù)時,前臺瀏覽正常,在phpMyAdmin里查看時,中文則變成亂碼。解決辦法可以將MySQL的默認編碼改成UTF-8或連接數(shù)據(jù)庫時指定數(shù)據(jù)的編碼(mysqli_query($dbc,“SETNAMES‘UTF8’”),就可以告知MySQL采用UTF-8編碼傳輸數(shù)據(jù)了[10]。

4)功能模塊實現(xiàn)。功能模塊實現(xiàn)的要求:盡量少的代碼,盡量詳盡的注釋,盡量工整的書寫形式。功能模塊實現(xiàn)的目標為:高復(fù)用性、高可靠性、高效率、高安全性、高可讀性等。

3實例

以PHP語言為基礎(chǔ),開發(fā)了職場咨詢網(wǎng)站———卓企網(wǎng)。卓企網(wǎng)主要包括檢索模塊、專家咨詢模塊、維護模塊、會員互動模塊、問題討論模塊、文檔瀏覽模塊、登陸注冊模塊、幫助模塊和其他輔助模塊等九大模塊,如圖1所示。

圖1卓企網(wǎng)包括的模塊

每一個大模塊包括一些功能模塊,如在卓企網(wǎng)的會員互動模塊中,包括留言、顯示留言、刪除留言等。實現(xiàn)“留言”模塊的前臺代碼如圖2所示,與之對應(yīng)的后臺處理代碼如圖3所示。

圖2“留言”模塊的前臺處理代碼

圖3“留言”模塊的后臺處理代碼

具體的流程是用戶在留言窗口(如圖4)留言并點擊提交后頁面將相關(guān)數(shù)據(jù)傳送至后臺處理頁面,后臺處理代碼調(diào)用用戶的session值查找對應(yīng)的身份信息后將留言插入數(shù)據(jù)庫,待正確無誤后跳轉(zhuǎn)回留言頁面并刷新留言板,從而用戶可以馬上就看到自己的留言(圖5)。

由于PHP語言的免費、開源、高可靠性、可移植性,并且可與MYSQL數(shù)據(jù)庫、Apache服務(wù)器完美結(jié)合,逐步已經(jīng)成為當今網(wǎng)站的主流。