PHP(一)——概述及服务器配置
PHP概述
PHP定義
PHP是Hypertext Preprocessor(超文本預處理器)的縮寫,是服務器端的、跨平臺的、HTML嵌入式的腳本語言,尤其適合Web開發(fā)。
優(yōu)勢
PHP是一種很有前景的Web語言,其具有以下優(yōu)勢:
- 開放源代碼。
- 易于學習。
- 數(shù)據(jù)庫連接。
- 面向對象編程。
- 可擴展性。
發(fā)展歷史
- 1994年,PHP最初由Rasmus Lerdorf發(fā)起,之后以Personal Home Page Tools (PHP Tools)對外發(fā)布第一個版本,在早期版本,提供了訪客留言、訪客計數(shù)器等簡答功能。
- 1995年,PHP第二個版本問世,定名為PHP/FI(From Interpret),是一個專為個人主頁/表單提供解釋程序的程序,它有著Perl樣式變量,能自動解釋表單變量,加入了對MySQL的支持,并可以嵌入到HTML中,已經包含了今天PHP的一些基本功能。
- 1998年6月,正式發(fā)布PHP第三版本,命名為PHP3,它類似于當今的PHP語法結構的第一個版本,它最強大的功能是其擴展性,能夠給最終用戶提供數(shù)據(jù)庫、協(xié)議和API等基礎結構。Zeev Suraski 和 Andi Gutmans 在 PHP 3 發(fā)布后開始改寫PHP 的核心,這個在1999年發(fā)布的剖析器稱為 Zend Engine,他們也在以色列的 Ramat Gan 成立了 Zend Technologies 來管理 PHP 的開發(fā)。
- 2000年5月,PHP4.0正式版本發(fā)布。PHP4.0除了更高的性能之后,還包含了其他一些功能,比如:支持更多的Web服務器,輸出緩存,更安全的處理用戶輸出的方法等。
- 2004年7月,PHP5問世。PHP5是里程碑式的版本,采用ZendII引擎,完備對象模型,改進了語法設計,最終使得PHP成為設計完備、具有面向對象能力的腳本語言。
- 2015年6月,PHP7第一版的alpha版本正式公開發(fā)布。PHP7是PHP編程語言的一個主要版本,并號稱是開發(fā)Web應用程序的一次革命,可開發(fā)和交付移動企業(yè)和云應用。此版本被認為是PHP在2004年發(fā)布PHP5后最重要的變化。到2017年已經到了PHP7.1的版本。其中PHP7使用新的 Zend Engine 3.0 提高應用程序性能兩倍,比PHP5.6 低了 50% 的內存消耗。 它可以服務于更多的并發(fā)用戶,無需任何額外的硬件。考慮到當今的工作量 PHP7設計并重構。
PHP、ASP和JSP對比
PHP、ASP和JSP是三種常用的網(wǎng)絡開發(fā)語言,他們之間有著各自的特點。
ASP、PHP和JSP的共同點:
- 都能嵌入到HTML代碼中;
- 都是面向Web服務器的技術,客戶端瀏覽器不需要任何附加的軟件支持;
- HTML代碼主要負責信息的顯示樣式,而程序代碼則是描述處理邏輯。
ASP、PHP和JSP的對比:
| 提出方 | Rasmus Lerdorf | 微軟 | Sun公司 |
| 相似的語言 | perl | Visual Basic | Java |
| 代碼解析方式 | 語言引擎解釋執(zhí)行 | 語言引擎解釋執(zhí)行 | 被編譯成Servlet并由Java虛擬機執(zhí)行 |
| 操作系統(tǒng) | 均可 | Win32 | 均可 |
| Web服務器 | 多種 | IIS | 多種 |
| 執(zhí)行效率 | 快 | 快 | 極快 |
| 穩(wěn)定性 | 佳 | 中等 | 佳 |
| 學習門檻 | 低 | 低 | 高 |
| 函數(shù)支持 | 多 | 較多 | 多 |
| 系統(tǒng)安全 | 好 | 差 | 好 |
| 升級速度 | 快 | 慢 | 中等 |
| 網(wǎng)頁結合 | 好 | 好 | 差 |
| 開發(fā)時間 | 短 | 短 | 較長 |
注意:JSP代碼解析時,編譯操作僅在JSP頁面的第一次請求時發(fā)生。
常用開發(fā)工具
- PHP代碼開發(fā)工具(具有調試功能)
- Zend studio
- PHP Edit
- 網(wǎng)頁設計工具
- Frontpage
- Dreamweaver
- 文本編輯器
- UItraEdit
- EditPlus
- sublime text
- Windows自帶記事本
服務器配置
準備
想要配置一臺支持PHP語言的Web服務器,需要從硬件和軟件兩方面進行需求分析。
選擇硬件
配置一臺Web服務器,從硬件角度可分為兩條路線:
- 專業(yè)級。從構建一臺真正的Web服務器出發(fā),按服務器標準卑職專業(yè)級硬件。也就是說需要支持24小時/365天的服器級CPU、主板和散熱機箱,以及RAID的冗余備份系統(tǒng),軟件和硬件防火墻,標準空調托管環(huán)境等標配。
- 業(yè)余調試級。以目前主流的個人電腦配置就可以滿足其硬件要求,即至少256MB內存,奔騰級CPU、10Mb/s網(wǎng)卡。
選擇操作系統(tǒng)
要配置Web服務器,確定硬件需求后,還需要選取操作系統(tǒng):
- Windows,需要硬件平臺上裝有Windows操作系統(tǒng),這就意味著花費一筆錢想Microsoft購買該軟件、
- Linux,開源免費的。
綜合上述比較,一般選用Linux作為服務器的操作系統(tǒng)。
選擇服務器軟件
IIS是Windows XP 系統(tǒng)自帶的服務器,但是該服務器只支持ASP語言,對于PHP是不能解析的,需要另外配置才可以。由于IIS不是支持PHP語言的主流,其對于PHP支持的高級功能是大打折扣的。
目前有很多HHTP Server軟件可供使用,目前最流行的是Nginx與Apache。
Apache具有足夠靈活、廣泛支持、能力強化、以模塊方式集成大多數(shù)語言(如PHP)的優(yōu)點。因為Apache是在進程內部解析大多數(shù)腳本語言的,所以沒有軟件間通信的開銷。
由于每個請求都會由一個進程或者線程處理,所有Apache在處理請求時開銷很大。當它應用于高并發(fā)場景時,其性能低下的問題就凸顯出來了。
Nginx提供的異步、事件驅動、非阻塞請求處理。Nginx不必等待每個請求完成,避免了鎖住資源。Nginx創(chuàng)建許多工作進程,每個工作進程可以處理數(shù)千個鏈接,因此可以使用很少的進程來承載高并發(fā)流量。
Nginx沒有內置任何解釋性語言,這樣Nginx就可以專注處理請求的接收和響應,而具體的解析腳本語言的進程則在Nginx之外。
通常認為Nginx快于Apache,但是在如靜態(tài)資源(圖片、css、js等文件)場景下,Apache有自己的優(yōu)勢。在構建高性能服務器時,Apache并不是問題所在PHP才是真正的瓶頸。
在實際的項目開發(fā)中,Apache是使用最廣泛的服務器軟件。
Apache安裝
官方下載地址:http://httpd.apache.org/download.cgi
。關于在不同平臺上的安裝可以百度獲知。
Apache配置:網(wǎng)站能夠解析靜態(tài)網(wǎng)頁之后,所有的程序必須放在Apache的htdocs文件夾下才能被解析,如果用戶想自己建立網(wǎng)站根目錄,則需要對Apache的http.conf文件進行如下配置,具體步驟為:
- 查找DocumentRoot,下面有這樣一行DocumentRoot"C:/Program Files/Apache Group/Apache2/htdocs",這就是網(wǎng)站默認的根目錄,可以修改為希望設置的目錄。
- 查找“This should changed whatever you set DocumentRoot to”,在其下面有這樣一行:<Directory "C/Program Files/Apache Group/Apache2/htdocs">,將C/Program Files/Apache Group/Apache2/htdocs改成要設置的目錄,如C:\Web。
PHP安裝
官方下載地址:http://php.net/downloads.php
。關于在不同平臺上的安裝可以百度獲知。
PHP配置:對于不同的環(huán)境,需根據(jù)具體需要進行配置。
MySQL安裝
官方下載地址:https://dev.mysql.com/downloads/mysql/
根據(jù)不同的需求下載MySQL對應的版本,之后按網(wǎng)上相關教程安裝即可。
對于MySQL數(shù)據(jù)操作,除了命令行之后,還可以通過圖形化操作軟件進行操作,如phpMyAdmin、SQLyog和Navicat等。可參考:五種常用的MySQL圖形化管理工具介紹使用
PHP開源框架
Laravel(較重要)是一個現(xiàn)代化的PHP開發(fā)框架,代碼優(yōu)雅,使用 composer 方式擴展功能,社區(qū)活躍,缺點是比較重,比較適合做后臺管理或者應用型WEB系統(tǒng)。
Zend Framework(較重要):是完全基于PHP5的開源PHP開發(fā)框架,可用于開發(fā)Web程序和服務。
ThinkPHP(較重要)國內使用比較多,優(yōu)點是文檔非常多,各種問題解決方案比較多,缺點是代碼不夠規(guī)范,理念落后。
Pop PHP:一種強壯的框架,而且易于使用的WEB應用開發(fā)語言,在PHP框架中排名前十。它提供了一系列可管理的學習曲線,同時又提供了健壯和強大的功能。
Kohana是一款基于MVC模式開發(fā)的純PHP5的框架。 它的特點就是高安全性,輕量級代碼,容易使用。
PHPixie是一個性能卓越并且功能豐富的輕量級PHP框架。 PHPixie能使web開發(fā)更簡單、更快速。
Medoo是一款超輕量級的PHP、SQL數(shù)據(jù)庫開發(fā)框架,可提升開發(fā)Web應用的效率與性能。
Flight是一個快速、簡單、可擴展的微型PHP框架。
Phalcon是高性能PHP應用程序框架。它執(zhí)行速度快,消耗資源少。根據(jù)官方測試,Phalcon是目前世界上速度最快的PHP框架。
Yii是一個基于組件、用于開發(fā)大型 Web 應用的高性能PHP框架,是目前最有效率的PHP框架之一。通過一個簡單的命令行工具它可以快速創(chuàng)建一個web應用程序的代碼框架,開發(fā)者可以在生成的代碼框架基礎上添加業(yè)務邏輯,以快速完成應用程序的開發(fā)。
Webasyst是一個PHP框架,用來創(chuàng)建時尚多用戶的 web 應用和網(wǎng)站。
Symfony是一個完整的框架結構,可用來幫助并加速網(wǎng)絡應用的開發(fā)。
CodeIgniter是一套給PHP網(wǎng)站開發(fā)者使用的應用程序開發(fā)框架和工具包。 它為組織提供了足夠的自由支持,允許開發(fā)人員更迅速地工作。
CI非常輕量級,是一個簡單的MVC框架,性能也很快。
總結
以上是生活随笔為你收集整理的PHP(一)——概述及服务器配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重仓农业股的基金
- 下一篇: 征信不好可以去小银行贷款吗,不可以