linux下的lamp(CentOS linux+apache+mysql+php+zend + eAccelerator)的應(yīng)用介紹
lamp是(CentOS Linux+Apache+MySQL+PHP)組合的簡(jiǎn)寫(xiě),是Linux下web網(wǎng)站服務(wù)器架構(gòu)的黃金組合
lnmp(CentOS Linux+Nginx+MySQL+PHP)剛是這兩年流行起來(lái)的另一個(gè)web網(wǎng)站服務(wù)器架構(gòu)的組合,性能也很高
集成lamp安裝版ISO下載請(qǐng)看 http://www.fsowen.com/wdlinux_lamp
集成lnmp安裝版ISO下載請(qǐng)看 http://www.fsowen.com/wdlinux_lnmp
lamp/lnmp一鍵安裝包請(qǐng)看 http://www.fsowen.com/lanmp
-------------------------------------------------
Linux操作系統(tǒng)(Linux),是一類(lèi)Unix計(jì)算機(jī)操作系統(tǒng)的統(tǒng)稱(chēng)。Linux操作系統(tǒng)的內(nèi)核的名字也是“Linux”。Linux操作系統(tǒng)也是自由軟體和開(kāi)放源代碼發(fā)展中最著名的例子.更多的介紹請(qǐng)看 http://www.fsowen.com/what_linux
----------------------------------------------------------
Apache起初由伊利諾伊大學(xué)香檳分校的國(guó)家超級(jí)電腦應(yīng)用中心(NCSA)開(kāi)發(fā)。此后,Apache Httpd被開(kāi)放源代碼團(tuán)體的成員不斷的發(fā)展和加強(qiáng)。Apache Http網(wǎng)站服務(wù)器擁有牢靠可信的美譽(yù),已經(jīng)在全球超過(guò)半數(shù)的網(wǎng)站中被使用-特別是幾乎所有最熱門(mén)和瀏覽量最大的網(wǎng)站。比方說(shuō),維基百科網(wǎng)站服務(wù)器就是使用Apache的。
剛開(kāi)始發(fā)展時(shí),Apache只是Netscape網(wǎng)頁(yè)服務(wù)器(現(xiàn)在是Sun ONE)之外的開(kāi)放源代碼選擇之一。慢慢地,它開(kāi)始在功能和速度超越其他基于Unix的HTTP服務(wù)器。到了Apache 2.x的時(shí)代,實(shí)際效率又比Apache 1.x更快,2.x比1.x能同時(shí)服務(wù)更多的網(wǎng)頁(yè)連接數(shù)。
1996年4月以來(lái),Apache一直是Internet上最流行的HTTP服務(wù)器:1999年5月它在57%的網(wǎng)頁(yè)服務(wù)器上運(yùn)行,到了2005年7月這個(gè)比例上升到了69%。在2005年11月最風(fēng)光的時(shí)候達(dá)到接近70%的市占率,不過(guò)在部份擁有大量域名的主機(jī)域名商轉(zhuǎn)換為微軟IIS平臺(tái)后,Apache市占率近年來(lái)體現(xiàn)些微下滑。同時(shí)搜索引擎巨擘Google自己的網(wǎng)頁(yè)服務(wù)器平臺(tái)GWS推出后(也可說(shuō)是一種修改版的Apache[2]),再加上nginx、Lighttpd等輕量化網(wǎng)頁(yè)服務(wù)器軟件在市場(chǎng)上有一些能見(jiàn)度,這些因素都反應(yīng)在整體網(wǎng)頁(yè)服務(wù)器市占率的消長(zhǎng),Apache的市占率就隨之滑落。根據(jù)Netcraft在2009年12月的最新統(tǒng)計(jì)數(shù)據(jù),Apache的市占率已經(jīng)降為53.67%,IIS降為18.26%,谷歌網(wǎng)頁(yè)服務(wù)器13.53%,nginx 8.75%。盡管如此,Apache仍舊是當(dāng)前互聯(lián)網(wǎng)市場(chǎng)上,市占率最高的網(wǎng)頁(yè)服務(wù)器軟件。
----------------------------------------------
PHP 是什么?
PHP(“PHP: Hypertext Preprocessor”,超文本預(yù)處理器的字母縮寫(xiě))是一種被廣泛應(yīng)用的開(kāi)放源代碼的多用途腳本語(yǔ)言,它可嵌入到 HTML中,尤其適合 web 開(kāi)發(fā)。
以上是一個(gè)簡(jiǎn)單的回答,不過(guò)這是什么意思呢?請(qǐng)看如下例子:
Example #1 一個(gè)介紹性的范例
<html>
<head>
<title>Example</title>
</head>
<body>
<?php
echo "Hi, I'm a PHP script!";
?>
</body>
</html>
請(qǐng)注意這個(gè)范例和其它用 C 或 Perl 語(yǔ)言寫(xiě)的腳本之間的區(qū)別――與用大量的命令來(lái)編寫(xiě)程序以輸出 HTML 不同的是,我們用 PHP 編寫(xiě)了一個(gè) HTML 腳本,其中嵌入了一些代碼來(lái)做一些事情(例如,在本例中輸出了一些文本)。PHP 代碼被包含在特殊的起始符和結(jié)束符中,使得可以進(jìn)出“PHP 模式”。
和客戶(hù)端的 JavaScript 不同的是,PHP 代碼是運(yùn)行在服務(wù)端的。如果在服務(wù)器上建立了如上例類(lèi)似的代碼,則在運(yùn)行該腳本后,客戶(hù)端就能接收到其結(jié)果,但他們無(wú)法得知其背后的代碼是如何運(yùn)作的。甚至可以將 web 服務(wù)器設(shè)置成讓 PHP 來(lái)處理所有的 HTML 文件,這么一來(lái),用戶(hù)就無(wú)法得知服務(wù)端到底做了什么。
使用 PHP 的一大好處是它對(duì)于初學(xué)者來(lái)說(shuō)極其簡(jiǎn)單,同時(shí)也給專(zhuān)業(yè)的程序員提供了各種高級(jí)的特性。當(dāng)看到 PHP 長(zhǎng)長(zhǎng)的特性列表時(shí),請(qǐng)不要害怕??梢院芸斓娜腴T(mén),只需幾個(gè)小時(shí)就可以自己寫(xiě)一些簡(jiǎn)單的腳本。
-------------------------------------------------------------
MySQL是一個(gè)開(kāi)放源碼的小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。
MySQL的特性:
使用C和C++編寫(xiě),并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性
支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)
為多種編程語(yǔ)言提供了API。這些編程語(yǔ)言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
支持多線程,充分利用CPU資源
優(yōu)化的SQL查詢(xún)算法,有效地提高查詢(xún)速度
既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶(hù)端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫(kù)而嵌入到其他的軟件中
提供多語(yǔ)言支持,常見(jiàn)的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名
提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫(kù)連接途徑
提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作的管理工具
可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)
MySQL的應(yīng)用:
與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQL不支持視圖(已經(jīng)被列入5.1版的開(kāi)發(fā)計(jì)劃)、事件等)等,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。
目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是遵循GPL的開(kāi)放源碼軟件,因此使用這種方式不用花一分錢(qián)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。
MySQL管理:
可以使用命令行工具管理MySQL數(shù)據(jù)庫(kù)(命令mysql 和 mysqladmin),也可以從MySQL的網(wǎng)站下載圖形管理工具M(jìn)ySQL Administrator和MySQL Query Browser。
phpMyAdmin是由php寫(xiě)成的MySQL資料庫(kù)系統(tǒng)管理程式,讓管理者可用Web介面管理MySQL資料庫(kù)。
phpMyBackupPro也是由PHP寫(xiě)成的,可以透過(guò)Web介面創(chuàng)建和管理數(shù)據(jù)庫(kù)。它可以創(chuàng)建偽cronjobs,可以用來(lái)自動(dòng)在某個(gè)時(shí)間或周期備份MySQL 數(shù)據(jù)庫(kù)。
Mysql存儲(chǔ)引擎:
MyISAM Mysql的默認(rèn)數(shù)據(jù)庫(kù),最為常用。擁有較高的插入,查詢(xún)速度,但不支持事務(wù)
InnoDB 事務(wù)型數(shù)據(jù)庫(kù)的首選引擎,支持ACID事務(wù),支持行級(jí)鎖定
BDB 源自Berkeley DB,事務(wù)型數(shù)據(jù)庫(kù)的另一種選擇,支持COMMIT和ROLLBACK等其他事務(wù)特性
Memory 所有數(shù)據(jù)置于內(nèi)存的存儲(chǔ)引擎,擁有極高的插入,更新和查詢(xún)效率。但是會(huì)占用和數(shù)據(jù)量成正比的內(nèi)存空間。并且其內(nèi)容會(huì)在Mysql重新啟動(dòng)時(shí)丟失
Merge 將一定數(shù)量的MyISAM表聯(lián)合而成一個(gè)整體,在超大規(guī)模數(shù)據(jù)存儲(chǔ)時(shí)很有用
Archive 非常適合存儲(chǔ)大量的獨(dú)立的,作為歷史記錄的數(shù)據(jù)。因?yàn)樗鼈儾唤?jīng)常被讀取。Archive 擁有高效的插入速度,但其對(duì)查詢(xún)的支持相對(duì)較差
Federated 將不同的Mysql服務(wù)器聯(lián)合起來(lái),邏輯上組成一個(gè)完整的數(shù)據(jù)庫(kù)。非常適合分布式應(yīng)用Cluster/NDB 高冗余的存儲(chǔ)引擎,用多臺(tái)數(shù)據(jù)機(jī)器聯(lián)合提供服務(wù)以提高整體性能和安全性。適合數(shù)據(jù)量大,安全和性能要求高的應(yīng)用
CSV 邏輯上由逗號(hào)分割數(shù)據(jù)的存儲(chǔ)引擎
BlackHole 黑洞引擎,寫(xiě)入的任何數(shù)據(jù)都會(huì)消失
另外,Mysql的存儲(chǔ)引擎接口定義良好。有興趣的開(kāi)發(fā)者通過(guò)閱讀文檔編寫(xiě)自己的存儲(chǔ)引擎。
Mysql最常見(jiàn)的應(yīng)用架構(gòu):
單點(diǎn)(Single),適合小規(guī)模應(yīng)用
復(fù)制(Replication),適合中小規(guī)模應(yīng)用
集群(Cluster),適合大規(guī)模應(yīng)用
Mysql6.0的alpha版于2007年初發(fā)布,新版增加了對(duì)falcon存儲(chǔ)引擎的支持。Falcon是Mysql社區(qū)自主開(kāi)發(fā)的引擎,支持ACID特性事務(wù),支持行鎖,擁有高性能的并發(fā)性。Mysql AB公司想用Falcon替代已經(jīng)非常流行的InnoDB引擎,因?yàn)閾碛泻笳呒夹g(shù)的InnoBase已經(jīng)被競(jìng)爭(zhēng)對(duì)手Oracle所收購(gòu)。
----------------------------------------------------
Zend,eAccelerator這兩個(gè)是用來(lái)加速或優(yōu)化php的速度的
其實(shí),Zend是一個(gè)公司,且有好幾個(gè)產(chǎn)品.本文里說(shuō)的zend是指 ZendOptimizer.ZendOptimizer 就是來(lái)用加速或優(yōu)化經(jīng)過(guò)加密的PHP代碼
ZendOptimizer是用來(lái)提高PHP應(yīng)用程序的執(zhí)行速度。實(shí)現(xiàn)的原理是對(duì)那些程序在被最終執(zhí)行之前由運(yùn)行編譯器(Run-Time Compiler)產(chǎn)生的代碼進(jìn)行優(yōu)化。一般情況下,執(zhí)行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。這意味著網(wǎng)站的訪問(wèn)者可以更快的瀏覽網(wǎng)頁(yè),從而完成更多的事務(wù),創(chuàng)造更好的客戶(hù)滿(mǎn)意度。
-----------------------------------------------------------
eaccelerator是一個(gè)自由開(kāi)放源碼php加速器,優(yōu)化和動(dòng)態(tài)內(nèi)容緩存,提高了性能php腳本的緩存性能,使得PHP腳本在編譯的狀態(tài)下,對(duì)服務(wù)器的開(kāi)銷(xiāo)幾乎完全消除。 它還有對(duì)腳本起優(yōu)化作用,以加快其執(zhí)行效率。使您的PHP程序代碼執(zhí)效率能提高1-10倍