Ubuntu下LAMP詳細配置手冊_第1頁
Ubuntu下LAMP詳細配置手冊_第2頁
Ubuntu下LAMP詳細配置手冊_第3頁
Ubuntu下LAMP詳細配置手冊_第4頁
Ubuntu下LAMP詳細配置手冊_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Ubuntu下LAMP詳細配置手冊來源: ChinaUnix博客 日期: 2008.02.15 16:52(共有條評論) 我要評論 楔子如今Linux+Apache+Mysql+PHP的組合已經(jīng)非常非常流行??梢哉fLinux最初的流行和Apache服務器的巨大市場占有率息息相關。LAMP又都是開源產(chǎn)品,在使用這一套產(chǎn)品的時候,除了具有不可比擬的價格優(yōu)勢,還可以不用過分擔心版權問題。于是幾乎所有開源主題的網(wǎng)站都使用LAMP架構,其中不乏一些著名的網(wǎng)站,比如維基百科全書。從這個角度我們看到,LAMP雖然廉價,但是絕對不是便宜無好貨!用很少的資金投入,同樣可以經(jīng)受起重量級應用的高負荷考驗。作為一個L

2、inuxer,如果想在網(wǎng)站建設上能有所研究,不親自配置一次LAMP是不可能的。可惜網(wǎng)上教程雖多,但相似度也高,大多你抄我,我抄你,而且LAMP的發(fā)展迅速,基本找不到一個完美的最新版的LAMP配置教程。而LAMP配置比較繁瑣,如果沒有一份很好的教程指導,恐怕新手可有苦頭吃咯!正好最近Rainking在自己的工作中需要用LAMP架設一個維基網(wǎng)站,故對LAMP的配置進行了一些研究,不算深入,但是一般網(wǎng)站配置應該是可以參考的。這里總結出來,一方面是為了給有同樣需要的讀者以參考和幫助,另一方面也加入很多的介紹說明,給那些從來沒有接觸過LAMP的的讀者介紹一下,增長點知識。Linux這個我就不用詳細介紹了

3、吧?大家如果連Linux是什么都不知道,那可以看一下我們這期的讀者投稿“Linux宣傳手冊”,雖然短小,但是寫的很精彩呢!這里我不詳細介紹Linux,但是我要從Linux的發(fā)展歷史的角度給大家講講Linux如何在服務器領域打下一片江山的。Linux的發(fā)展,在必然中也可以說有著很大的偶然性。1991年10月5日,LinusTorvalds在新聞組comp.os.minix發(fā)布了大約有一萬行代碼的Linux v0.01版本。那時候的Linux可謂又簡又陋。說它是Linus閑暇時做出的小玩意也毫不過分。連Linus本人當時也決不會想到Linux能夠迅速的發(fā)展壯大到今天的規(guī)模。Linus自己認為,操作

4、系統(tǒng)的內核本身并沒有多大的用途,即使不斷地通過來自Hacker的補丁程序加以完善,也提高不到哪里去。這是因為一個完整的操作系統(tǒng),需要太多太多的軟件及硬件的支持。光靠一個孤單的內核,即便其再精致,也是孤立無援的。恰恰正在此時,由Stallman帶領的GNU大軍已經(jīng)為他們夢想中的自由的操作系統(tǒng)奮戰(zhàn)多年了。當時Stallman真的可謂萬事俱備,只欠東風。他們幾乎完成了所有Unix軟件的重構(這是相當宏大且艱巨的工程,其偉大程度絕不亞于寫一個Linux),單單缺一個可以支持這些軟件的操作系統(tǒng)內核。在之后記者對Stallman的采訪中,Stallman透露,其實當時GNU的內核已經(jīng)開發(fā)了很久很久,但是由

5、于GNU內核的設計非常的復雜,比Linux復雜的多,當然功能也更強大。但這帶來的后果是GNU內核調試起來非常麻煩,所以在開發(fā)進度上落在了Linux后面。倒是Linux因為其粗燥,簡單,雖然設計不是那么前衛(wèi),但是得到了整個黑客屆的支持,所以發(fā)展迅速。很自然的Linux與GNU結合起來,構成了一個完整的操作系統(tǒng)。Linus一直謙遜的稱Linux其實沒什么大不了,也經(jīng)常矯正大家不要把Linux當作一個操作系統(tǒng),而應該稱這個操作系統(tǒng)為GNU/Linux。Stallman近些年來有些默默無聞了,自由軟件的概念也逐漸被開源軟件所取代。其實我個人非常的同情Stallman。要是Linux不出現(xiàn)該多好。最終G

6、NU的操作系統(tǒng)內核一定會實現(xiàn)。那樣GNU就會是一個完美的完整的自由操作系統(tǒng)。而開源軟件的概念雖然現(xiàn)在非常流行,但究其本質,不過是自由軟件的一種表現(xiàn)形式。我個人總是覺得開源軟件竊取了自由軟件的革命果實。就這兩點看,我非常地為Stallman惋惜。不過從科技發(fā)展的角度看,Linux和開源軟件的出現(xiàn)絕對是一件大好事。Linux這個幸運兒從誕生起,就非常幸運的擁有了GNU溫室的培育,這不能不說是一個巧合。而Linux誕生之時所面臨的挑戰(zhàn)并不是來自Windows。當時叱詫風云的Windows95估計連策劃都還沒開始呢。雖然85年,Windows1.0版本就已經(jīng)誕生,但是當時Windows的影響力和實力真

7、的都不算強。桌面領域,Mac,GEM及Desqview/X都是當時主流的GUI系統(tǒng),人們對Windows的評價非常低。甚至到了87年微軟發(fā)布Windows2.0的時候,人們還是不能認可它,都認為Windows其實借鑒了很多蘋果的東西。90年發(fā)布的Windows3.0是微軟的重要轉折。相信國內的很多早期電腦用戶一開始接觸電腦的時候,用的都是Windows3.X版本。也正是從90年開始,Windows才在桌面領域開始打出一片天下。92年發(fā)布的Windows3.1在最初發(fā)布的兩個月內,銷量就超過了100萬。微軟也正是從92年起,其資本積累和研究開發(fā)才走上良性循環(huán)的。而在服務器領域,Windows更是

8、連小角色都算不上。93年Windows NT才發(fā)布,而性能上自然無法媲美Unix霸主。說了那么多Windows的發(fā)展就是想告訴大家,在Linux誕生的開始,Windows并不是Linux的直接對手,甚至可以說當時Linux的開發(fā)者眼里根本就沒有Windows。Linux的出現(xiàn)可以說是沖著昂貴的Unix和Sun的操作系統(tǒng)開戰(zhàn)的。之前提到了,Linux剛出現(xiàn)的時候,Windows的NT版本還沒出現(xiàn),服務器市場基本被Unix壟斷。所以一開始Linux的繁榮沖擊最大的是一些Unix及服務器操作系統(tǒng)廠商,比如SUN和IBM。Solaris就因為Linux的流行,一次又一次的降價,直到現(xiàn)在完全開源免費。到

9、今天,在服務器領域,Linux的占有率已經(jīng)超過了Unix,可惜不幸的是強大的Windows也同樣超過了Unix。至于目前Linux和Windows誰在服務器領域占有率更高,我好像沒能找到明確的答案。說Linux高的也有,說Windows高的也有。這不是我們今天要關注的。我們需要關注的是,為什么Linux能夠在服務器領域反超Unix呢?答案就是Apache。如果大家關注一下Linux的占有率增長曲線將會發(fā)現(xiàn),自從Apache飛速發(fā)展成為了服務器界當之無愧的老大之后,Linux的占有率有了穩(wěn)步的增長。原因很簡單,只有兩個字便宜。Windows很少有人會把它用在高端服務器上,因為不夠穩(wěn)定。而Unix

10、的價格又高的驚人。所以Linux就自然而然的成為了Unix的替代品??梢哉f,Apache的出現(xiàn),成為Linux繁榮的另一個巨大契機。當然Linux繁榮還得益于Unix的發(fā)展混亂,BSD的版權官司等等。這些就不在這里贅述了??傊甃inux能有今天,出了其發(fā)展模式本身有一定的必然性外,運氣也是一個重要因素。在這篇文章里,Rainking所用的Linux版本是Ubuntu6.10。好了,廢話不多說,下面開始給大家介紹最流行的服務器Apache。Apache1995年2月,世界上最流行的互聯(lián)網(wǎng)HTTP服務器軟件是由Illinois大學Urbana-Champaign 的NCSA(National Ce

11、nter for Supercomputing Applications)的Rob McCool開發(fā)的。但是94年中期Rob離開NCSA以后,開發(fā)就一直處于停止狀態(tài)了。當時很多優(yōu)秀的網(wǎng)管開發(fā)了他們自己的擴展和補丁,這意味著需要有一個共同的發(fā)布版本來統(tǒng)一這種狀況。于是一個由這些網(wǎng)管組成的小組成立了,他們通過私人電子郵件聯(lián)絡,為的是完善并整理各種補丁。Brian Behlendorf和Cliff Skolnick共同維護了一個郵件列表,一個信息共享空間和一個供核心開發(fā)人員登陸的由HotWired資助帶寬的位于California灣地區(qū)的機器。到2月底,一共有8個人成為了這個小組的38核心貢獻者。他

12、們成立了現(xiàn)在Apache小組的雛形。他們分別是:Brian BehlendorfRoy T. Fielding Rob HartillDavid Robinson Cliff Skolnick Randy TerbushRobert S. ThauAndrew Wilson以及額外的支持者:Eric HagbergFrank Peters Nicolas Pioch建立在NCSA httpd1.3的基礎智商,他們增加了所有發(fā)布的補丁和能找到的所有改進功能,在自己的服務器上進行了測試,并且在1995年4月發(fā)布了第一個官方的Apache Server 0.6.2版本。碰巧的是,NCSA也同時恢復了

13、他們的軟件開發(fā),而且他們的開發(fā)人員Brandon Long和Beth Frank也在3月份作為榮譽成員加入到Apache的郵件列表中來。于是兩個項目得以共享設計理念及一些技術。雖然一開始的Apache服務器是一個巨大的成功,但是Apache小組達成了一個共識就是所有的代碼都需要重新設計。1995年5月到7月,一方面Rob Hartill帶領著其他組員著重實現(xiàn)0.7.x版本的新特性以支持飛速發(fā)展的Apache用戶社區(qū),另一方面Robert Thau設計了一個新的軟件架構,包括更加模塊化的結構,更容易擴展的API,基于池的內存管理和一個預存的進程模型。于是在7月份,Apache小組將開發(fā)轉換到新的

14、架構上,并將為0.7.x開發(fā)的新特性也統(tǒng)統(tǒng)加入進去。這就催生了8月份發(fā)布的Apache0.8.8。在廣泛的Beta測試,對于各種平臺的移植和一套新的文檔完成以后,1995年11月,Apache 1.0終于發(fā)布了。在Apache小組成立不到一年的時間里,Apache服務器超過了NCSA httpd服務器成為當時互聯(lián)網(wǎng)界占有率最高的服務器軟件。并且這個排名一直保持到今天。這是相當偉大的一件事。1999年,Apache小組的成員成立了Apache軟件基金會來為Apache Http Server提供有組織的,合法的經(jīng)濟支持?;饡锳pache服務器軟件今后的發(fā)展提供了重要的保障,并且擴展并收購了一

15、批開源軟件。作者宣稱因為這個名字好記才在最初選擇它,但是流傳最廣的解釋是(也是最顯而易見的)這個名字來自這么一個事實:當Apache在1995年初開發(fā)的時候,它是由當時最流行的HTTP服務器NCSA HTTPd1.3 的代碼修改而成的,因此是“一個修補的(a patchy)”服務器。然而在服務器官方網(wǎng)站的FAQ中是這么解釋的“Apache這個名字是為了紀念名為Apache(印地語)的美洲印第安人土著的一支,眾所周知他們擁有高超的作戰(zhàn)策略和無窮的耐性”。無論如何,Apache 2.x 分支不包含任何NCSA的代碼。Apache支持許多特性,大部分通過編譯的模塊實現(xiàn)。這些特性包括從服務器端的編程語

16、言支持到身份認證方案。一些通用的語言接口支持Perl,Python,Tcl和PHP。流行的認證模塊包括mod_access,mod_auth和mod_digest。其他的例子有SSL和TLS支持(mod_ssl),proxy模塊,很有用的URL重寫(由mod_rewrite實現(xiàn)),定制日志文件(mod_log_config),以及過濾支持(mod_include和mod_ext_filter)。Apache日志可以通過網(wǎng)頁瀏覽器使用免費的腳本AWStats或Visitors來進行分析。圖1為Apache2 市場占有量的曲線圖:可以看到Apache的霸主地位從來就不曾動搖過。關于Apache的歷

17、史和特性,我們就了解到這里。下面我們來看看究竟如何安裝Apache服務器。截至Rainking寫本文為止,Apache HttpdServer的最高版本為2.2.4,下載地址為:,我選擇下載的是httpd-2.2.4.tar.bz2。對于Apache,我建議大家還是就用最高版本吧。穩(wěn)定性兼容性基本沒有問題。因為是服務器軟件,一般高版本號的更加不容易被攻擊。所以大家如果沒有什么苛刻的兼容性要求,還是選擇2.2.4版本的比較好。Rainking的Ubuntu6.10是剛裝的系統(tǒng)。大家修改下源,具體怎么改請參閱以前雜志的“Mplayer菜鳥手冊”,這里不詳細講了。然后在終端輸入:sudo apt-g

18、et install build-essential安裝編譯所需要的軟件。然后解壓縮軟件包并進入解壓后的目錄:tar xvf httpd-2.2.4.tar.bz2cd httpd-2.2.4以上都不難,關鍵是下面一步編譯選項。這是非常復雜的。大家先輸入以下命令,讓機器配置去吧,這需要好久,然后乘著等待的時間,看我下面的解釋:./configure -prefix=/usr/local/apache/ -enable-rewrite -enable-so以上的編譯參數(shù)是我根據(jù)自己的實際需要設定的。如果有些讀者需要更多的參數(shù)的話請參見的詳細說明。圖1十一年間,Apache服務器的市場占有率曲線圖

19、可以看到Apache一直是當之無愧的冠軍-prefix=PREFIX 軟件的安裝目錄,默認的安裝目錄是/usr/local/apache2,這里我們把它重新設置成/usr/local/apache/,這樣以后使用中可以兼容一些老版本Apache安裝目錄的問題。-enable-rewrite rewrite模塊是用意實現(xiàn)地址重寫的模塊,由于rewrite模塊需要DBM支持,如果在初次安裝時沒有編譯進apache,以后需要用到時需要重新編譯整個apache才可以實現(xiàn)。為此除非你可以確定以后不會用到rewrite模塊,否則還是建議你在第一次編譯的時候把rewrite模塊編譯好。-enable-so

20、通過mod_so模塊提供Apache DSO功能。那么什么是DSO呢?DSO是Dynamic Shared Objects(動態(tài)共享目標)的縮寫,它是現(xiàn)代Unix派生出來的操作系統(tǒng)都存在著的一種動態(tài)連接機制,可以對比參考Windows中的DLL功能。它提供了一種在運行時將特殊格式的代碼,在程序運行需要時,將需要的部分從外存調入內存執(zhí)行的方法。Apache在1.3以后的版本后開始支持它。因為Apache早就使用一個模塊概念來擴展它的功能并且在內部使用一個基于調度的列表來鏈接擴展模塊到Apache核心模塊.所以,Apache早就注定要使用DSO來在運行時加載它的模塊?;贒SO的功能有如下優(yōu)點:1

21、 由于服務器包的裝配工作可以在運行時刻使用httpd.conf的配置命令LoadModule來進行,而不是在編譯中使用configure來進行,因此顯得更靈活。比如:只需要安裝一個Apache,就可以運行多個不同的服務器實例(如標準&SSL版本,濃縮的&功能加強版本mod_perl, PHP3,等等)。2 服務器包可以在安裝后使用第三方模塊被輕易地擴展。這至少對廠商發(fā)行包的維護者有巨大的好處,他可以建立一個Apache核心包,而為諸如PHP3, mod_perl, mod_fastcgi等擴展另建附加的包。3 更簡單的Apache模塊原型。使用DSO配合apxs,可以脫離Apa

22、che源代碼樹,僅需要一個apxs-i和一個apachectlrestart命令,把開發(fā)的模塊新版本納入運行中的Apache服務器。但DSO也有如下缺點:1 由于并不是所有的操作系統(tǒng)都支持動態(tài)加載代碼到一個程序的地址空間,因此DSO機制并不能用于所有的平臺。2 由于Unix加載器有必須進行的符號解析的開銷,服務器的啟動會慢20%左右。3 在某些平臺上,獨立位置代碼(positonindependent codePIC)有時需要復雜的匯編語言技巧來實現(xiàn)相對尋址,而絕對尋址則不需要,因此服務器在運行時會慢5%左右。4 由于DSO模塊不能在所有平臺上為其他基于DSO的庫所連接(ld -lfoo),比

23、如,基于a.out的平臺通常不提供此功能,而基于ELF的平臺則提供,因此DSO機制并不能被用于所有類型的模塊。或者可以這樣說,編譯為DSO文件的模塊只能使用由Apache核心、C庫(libc)和Apache核心所用的所有其他動態(tài)或靜態(tài)的庫、含有獨立位置代碼的靜態(tài)庫(libfoo.a)所提供的符號。而要使用其他代碼,就只能確保Apache核心本身包含對此代碼的引用,或者自己用dlopen()來加載此代碼配置完以后我們就可以編譯安裝了!在終端輸入:makesudo make install編譯時間不是很長。稍等片刻就好了。安裝完畢以后我們來測試一下服務器是否安裝成功了。在終端輸入:sudo /us

24、r/local/apache/bin/apachectl start如果順利的話,會有響應如下:不要擔心,因為我們還沒有設置服務器域名或IP才會發(fā)生這種情況的。出現(xiàn)這個響應意味著如果你人品沒什么大問題,服務器就已經(jīng)安裝成功了。我們打開瀏覽器,在地址欄里面輸入,應該會出現(xiàn)一下畫面:這時候大家可以在/usr/local/apache/htdocs目錄下放上你的網(wǎng)頁文件,這樣你就可以在瀏覽器里瀏覽自己的網(wǎng)站了。如果我不想把網(wǎng)站發(fā)在/usr/local/apache/htdocs目錄下怎么辦呢?一般情況下做服務器的Linux是不會把網(wǎng)頁文件放在和/usr一個分區(qū)的目錄下的,這時候我們

25、就需要修改Apache的配置文件了。在終端輸入:sudo gedit /usr/local/apache/conf/httpd.conf在ServerAdmin那行填上你的Email地址,在ServerName那一行填上你的域名或者機器的IP,當然也可以不填,這樣就會每次啟動出現(xiàn)上述的廢話,在DocumentRoot那行填上你所希望的網(wǎng)站文件的目錄。這里我喜歡把網(wǎng)站放在/var下的一個叫做website的目錄里,所以我填上”/var/website”。特別注意,webstie后面不要加“/”。然后在終端輸入:sudo mkdir /var/website創(chuàng)建網(wǎng)站目錄。并且在這個目錄里面放上一個

26、名為index.html的測試文件,內容隨便你怎么寫啦,我寫的是“HAHAHA!LALALA!”,僅此而已。這時候需要重啟一下Apache服務器。在終端輸入:sudo /usr/local/apache/bin/apachectl stopsudo /usr/local/apache/bin/apachectl start重新刷新瀏覽器,這時候你會看見下面的畫面(有可能畫面沒變,那是因為緩存的原因,請清空瀏覽器緩存后再刷新):這是為什么呢?哈哈,Rainking一開始碰到這個問題也郁悶的半天,研究以后發(fā)現(xiàn)其實很簡單,只要在httpd.conf配置文件里面緊跟著DomentRoot“/var/w

27、ebsite”下面加入如下內容: Option FollowSymLinks AllowOverrideNone Order allow,deny Allow from all然后刷新瀏覽器,結果卻出現(xiàn)如下內容:根據(jù)錯誤提示判斷應該是index.html的權限設置的問題,在終端輸入:sudo chmod 755 /var/website/index.html然后再刷新瀏覽器,哈哈,終于成功顯示了!于是,Apache的介紹與安裝到此結束,讓我們進入Mysql的舞臺!MySQLMySQL的安裝恐怕是LAMP中最復雜的了。主要是Mysql的文檔和網(wǎng)站組織都比較的混亂,Rainking第一次上Mysq

28、l網(wǎng)站下載Mysql的時候,簡直有種想死的沖動。Mysql是Rainking到目前為止見過的下載版本最多的軟件!不僅各個時期的高低版本號的版本共存,而且各個平臺的版本共存,而且各個平臺劃分出的各種版本也共存。而且,還沒有一個很完整的指導說明說也沒用,大家自己去看好了,保證你也頭昏另外,Mysql的Bug非常多,各種版本有各種各樣千奇百怪的Bug。目前5.1是Beta版,5.2是Alpha版。Alpha版是什么概念?Alpha意味著如果你精力旺盛想沒事找事干,就去下載了用。Beta版理應可以用,但是,Rainking可以負責任的告訴你,mysql5.1.16的二進制版本在安裝的時候至少會出現(xiàn)3處

29、明顯的Bug,比如目錄設錯,文件位置不對等。并且我沒能成功的讓它運行起來。也許是我能力有限,但是我還是奉勸自認為能力比我還有限的讀者就不要浪費時間在這種無意義的嘗試上了。這里,Rainking使用的是文件名為mysql-max-5.0.27-linux-i686-glibc23.tar.gz的二進制安裝版本。之所以選用二進制安裝版,是因為Mysql文檔里說不推薦用戶自己編譯。而且我對Mysql的健壯性實在沒有信心,鬼知道它編譯的時候會出現(xiàn)什么奇怪的問題啊。所以,我還是用二進制安裝版了。其實用戶并不能從編譯中得到任何多余的好處,所以何必自找苦吃呢?下面我們還是照例先來了解一下Mysql的簡介和發(fā)

30、跡史吧,嘿嘿。MySQL是目前最流行的開放源碼SQL數(shù)據(jù)庫管理系統(tǒng),它是由MySQLAB公司開發(fā)、發(fā)布并支持的。MySQLAB是由多名MySQL開發(fā)人員創(chuàng)辦的一家商業(yè)公司。它是一家第二代開放源碼公司,結合了開放源碼價值取向、方法和成功的商業(yè)模型。在最一開始,這些開發(fā)人員最初的出發(fā)點是使用mSQL來連接表,這類表采用了快速低層面(ISAM)子程序。然而,經(jīng)過一些測試后,他們得出結論,mSQL的速度或靈活性不足以滿足他們的要求。其結果是,他們又開發(fā)了一套系統(tǒng)MySQL為數(shù)據(jù)庫提供了新的SQL接口,但API接口與mSQL的幾乎一樣。設計該API的目的在于,允許將為mSQL編寫的第三方代碼方便地移植到

31、MySQL。MySQL名稱的起源不明。10多年來,MySQL開發(fā)人員的基本目錄以及大量庫和工具均采用了前綴“my”。不過,共同創(chuàng)辦人Monty Widenius的女兒名字也叫“My”。時至今日,MySQL名稱的起源仍是一個迷,即使對MySQL開發(fā)人員也一樣。MySQLDolphin的名稱為“Sakila”,它是由MySQLAB公司的創(chuàng)辦人從用戶在“Dolphin命名”比賽中提供的眾多建議中選定的。該名稱是由來自非洲斯威士蘭的開放源碼軟件開發(fā)者Ambrose Twebaze提出的。根據(jù)Ambrose的說法,按斯威士蘭的本地語言,女性化名稱Sakila源自SiSwati。Sakila也是坦桑尼亞、

32、Arusha地區(qū)的一個鎮(zhèn)的鎮(zhèn)名,靠近Ambrose的母國烏干達。其實在Mysql的歷史和Linux的歷史是緊密而不可分的。1998年是Linux迅猛發(fā)展的一年。1月,小紅帽高級研發(fā)實驗室成立,同年RedHat5.0獲得InfoWorld的操作系統(tǒng)獎項。4月Mozilla代碼發(fā)布,成為linux圖形界面上的王牌瀏覽器。Redhat宣布商業(yè)支持計劃,網(wǎng)羅了多名優(yōu)秀技術人員開始商業(yè)運作。王牌搜索引擎“Google”現(xiàn)身,采用的也是Linux服務器。最重要的是Oracle和Informix兩家數(shù)據(jù)庫廠商明確表示不支持Linux,這個決定給予了MySQL數(shù)據(jù)庫充分的發(fā)展機會。同年10月,微軟在法國發(fā)布了

33、反Linux公開信,這表明微軟公司開始將Linux視作了一個對手來對待。十二月,IBM發(fā)布了適用于Linux的文件系統(tǒng)AFS 3.5以及JikesJava 編輯器和Secure Mailer及DB2測試版,IBM的此番行為,可以看作是與Linux羞答答地第一次親密接觸。迫于Windows和Linux的壓力,Sun逐漸開放了Java協(xié)議,并且在UltraSparc上支持Linux操作系統(tǒng)。1998年可說是Mysql獲得發(fā)展的最好時機。2001年新年伊始就爆出新聞,Oracle宣布在OTN上的所有會員都可免費索取Oracle 9i的Linux版本,從幾年前的“絕不涉足Linux系統(tǒng)”到主動獻媚,足

34、以體現(xiàn)Linux的發(fā)展迅猛。但是這時候,MySQL已經(jīng)在Linux上普及,其它數(shù)據(jù)庫廠商再想搶占這塊市場已經(jīng)變的難上加難。其實Rainking在一開始知道MySQL的時候,總是有種帶偏見的不屑。要知道在學校學習數(shù)據(jù)庫的時候聽到的都是Oracle,DB2這些大名鼎鼎的玩意兒。連MS SQL Server都被老師貶為“算不上一個真正意義上的數(shù)據(jù)庫”。要知道Oracle啊DB2啊都是幾十萬甚至幾百萬的,面對一個不需要一分錢的免費MySQL,我實在不能相信它有多牛逼。直到看到一個中國很著名的某電子商務網(wǎng)站的技術人員的采訪說道:“其實MySQL的性能已經(jīng)優(yōu)化到可以和Oracle,DB2相媲美了。我們在針

35、對普通用戶的時候數(shù)據(jù)庫也是用的MySQL。但是對于VIP用戶我們還是選擇了Oracle。原因很簡單,萬一數(shù)據(jù)庫發(fā)生了崩潰,出了問題,用Oracle我們可以一個電話打過去讓他們解決,但是用MySQL的話,我找誰去?。俊边@時候我才知道原來開源軟件的也可以做到很出色,并開始對MySQL刮目相看。下面我們來看看怎么安裝MySQL吧,比較復雜,大家做好心理準備!首先當然還是要解壓縮咯,解完壓縮后順便把文件夾移動到/usr/local/下去,并且建立一個名為Mysql的鏈接,方便以后輸入,因為Mysql的文件名實在是太長了。在終端輸入:tar xvf mysql-max-5.0.27-linux-i686

36、-glibc23.tar.gzsudo mv mysql-max-5.0.27-linux-i686-glibc23 /usr/local/sudo lns /usr/local/ mysql-max-5.0.27-linux-i686-glibc23 /usr/local/ mysql這樣,基本上我們就完成了等價于自己編譯軟件時從解壓縮到make install完成時的過程。怎么樣?二進制安裝方便吧?所以很多時候不要總是想著編譯編譯編譯現(xiàn)在我們來為mysqld增加一個登錄用戶和組:sudo groupadd mysqlsudo useradd -g mysqlmysql然后我們來進入mysq

37、l所在的目錄執(zhí)行mysql_install_db腳本,用來初始化mysql數(shù)據(jù)庫的授權表,其中貯存了服務器訪問允許。cd /usr/local/mysqlTMPDIR=/tmp/MYSQL_UNIX_PORT=/tmp/mysql.sockexport TMPDIR MYSQL_UNIX_PORTscripts/mysql_install_db -user=mysql如果順利,會得到圖二的結果。最后我們將程序二進制的所有權改為root,數(shù)據(jù)目錄的所有權改為運mysqld的用戶。在終端輸入:chown-R root .(注意最后有個點)chown-R mysqldatachgrp-R mysql

38、.(注意最后有個點)第一個命令將/usr/local/mysql下文件的所有屬性改為root用戶。第二個命令將數(shù)據(jù)目錄的所有屬性改為mysql用戶。第三個命令將組屬性改為mysql組?,F(xiàn)在安裝基本就完畢了。我們來測試一下,在終端輸入:sudo bin/mysqld_safe-user=mysql &應該會進入光標不停閃動的狀態(tài),這就代表mysql順利啟動了。這時候我們再打開一個終端,在里面輸入:bin/mysqladmin version會得到以下畫面:再在終端里輸入:bin/mysqladmin variables可以得到一個巨大的表格,內容太多,這里就不截圖了。最后我們要進行一些配

39、置初始MySQL賬戶安全。MySQL安裝完以后會以用戶root創(chuàng)建兩個賬戶。這些賬戶為超用戶賬戶,可以執(zhí)行任何操作。初始root賬戶的密碼為空,因此任何人可以用root賬戶不用任何密碼來連接MySQL服務器,并具有所有權限。在Linux中這兩個root賬戶均用于從本機連接,一個賬戶主機名應指定為localhost,另一個賬戶為實際的主機名或IP號。此外Mysql還創(chuàng)建了兩個匿名用戶賬戶,每個賬戶的用戶名均為空。匿名賬戶沒有密碼,因此任何人可以使用匿名賬戶來連接MySQL服務器。這樣無疑太危險了,所以我們要給這4個帳號設上密碼:/usr/local/mysql/bin/mysql-u rootm

40、ysql> SET PASSWORD FORemail='''localhost''''localhost'/email= PASSWORD('newpwd');mysql> SET PASSWORD FORemail='''host_name''''host_name'/email= PASSWORD('newpwd');mysql> SET PASSWORD FORemail='root''

41、localhost''root''localhost'/email= PASSWORD('newpwd');mysql> SET PASSWORD FORemail='root''host_name''root''host_name'/email= PASSWORD('newpwd');用服務器主機名替換SET PASSWORD語句中的host_name。如果你不知道是哪個主機名,在SET PASSWORD之前執(zhí)行下面的語句:mysql> SELE

42、CT Host, User FROM mysql.user;就這樣,最難安裝的Mysql也被我們輕松搞定了。歐耶!我們來加油進入PHP的領域吧!PHPPHP繼承自一個老的工程,名叫PHP/FI。PHP/FI在1995年由RasmusLerdorf創(chuàng)建,最初只是一套簡單的Perl 腳本,用來跟蹤訪問他主頁的人們的信息。它給這一套腳本取名為“Personal Home Page Tools”。隨著更多功能需求的增加,Rasmus寫了一個更大的C語言的實現(xiàn),它可以訪問數(shù)據(jù)庫,可以讓用戶開發(fā)簡單的動態(tài)Web程序。Rasmus發(fā)布了PHP/FI的源代碼,以便每個人都可以使用它,同時大家也可以修正它的Bu

43、g并且改進它的源代碼。PHP/FI,一個專為個人主頁表單提供解釋程序的程序,已經(jīng)包含了今天PHP的一些基本功能。它有著Perl樣式的變量,自動解釋表單變量,并可以嵌入HTML。語法本身與Perl很相似,但是它很有限,很簡單,還稍微有些不協(xié)調。到1997年,PHP/FI 2.0,也就是它的C語言實現(xiàn)的第二版在全世界已經(jīng)有幾千個用戶(估計)和大約50,000 個域名安裝,大約是Internet所有域名的1%。但是那時只有幾個人在為該工程撰寫少量當代碼,它仍然只是一個人的工程。PHP/FI 2.0在經(jīng)歷了數(shù)個beta版本的發(fā)布后于1997年11月發(fā)布了官方正式版本。不久,PHP 3.0的第一個alp

44、ha版本發(fā)布,PHP從此走向了成功。PHP 3.0是類似于當今PHP語法結構的第一個版本。AndiGutmans和ZeevSuraski在為一所大學的項目中開發(fā)電子商務程序時發(fā)現(xiàn)PHP/FI 2.0功能明顯不足,于是他們重寫了代碼。這就是PHP 3.0。經(jīng)過Andi,Rasmus和Zeev一系列的努力,考慮到PHP/FI已存在的用戶群,他們決定聯(lián)合發(fā)布PHP 3.0作為PHP/FI 2.0的官方后繼版本。而PHP/FI 2.0的進一步開發(fā)幾乎終止了。PHP 3.0的一個最強大的功能是它的可擴展性。除了給最終用戶提供數(shù)據(jù)庫、協(xié)議和API 的基礎結構,它的可擴展性還吸引了大量的開發(fā)人員加入并提交新

45、的模塊。后來證實,這是PHP 3.0 取得巨大成功的關鍵。PHP 3.0中的其它關鍵功能包括面向對象的支持和更強大和協(xié)調的語法結構。這個全新的語言伴隨著一個新的名稱發(fā)布。它從PHP/FI 2.0的名稱中移去了暗含“本語言只限于個人使用”的部分。它被命名為簡單的縮寫“PHP”。這是一種遞歸的縮寫,它的全稱是PHP: Hypertext Preprocessor。1998年末,PHP 的安裝人數(shù)幾近10,000,有大約100,000個網(wǎng)站報告他們使用了PHP。在PHP 3.0的頂峰,Internet上10%的web服務器上都安裝了它。約九個月的公開測試后,官方于1998年6月正式發(fā)布PHP 3.0

46、。1998年的冬天,PHP 3.0官方發(fā)布不久,AndiGutmans和ZeevSuraski開始重新編寫PHP代碼。設計目標是增強復雜程序運行時的性能和PHP自身代碼的模塊性。PHP 3.0的新功能和廣泛的第三方數(shù)據(jù)庫、API的支持使得這樣程序的編寫成為可能,但是PHP 3.0沒有高效處理如此復雜程序的能力。新的被稱為“ZendEngine”(這是Zeev和Andi的縮寫)的引擎,成功的實現(xiàn)了設計目標,并在1999 年中期首次引入PHP。基于該引擎并結合了更多新功能的PHP 4.0,在PHP 3.0發(fā)布兩年后,于2000年5月發(fā)布了官方正式版本。除了更高的性能以外,PHP 4.0還包含了其它

47、一些關鍵功能,比如:支持更多的web 服務器;HTTP Sessions 支持;輸出緩沖;更安全的處理用戶輸入的方法;一些新的語言結構。今天,已經(jīng)有10,000 名開發(fā)人員(估計)和幾百萬網(wǎng)站報告已安裝了PHP,占整個Internet 域名的20%。PHP的開發(fā)小組有很多優(yōu)秀的開發(fā)人員,同時還有大量的優(yōu)秀人才在進行PHP相關工程的開發(fā)工作,如PEAR和PHP文檔的工程。PHP 5在長時間的開發(fā)及多個預發(fā)布版本后,于2004年7月發(fā)布正式版本。它的核心是Zend引擎2代,引入了新的對象模型和大量新功能。上完歷史課,我們照例要來安裝PHP。目前最新的PHP版本是5.2.1,可以在頁面下載。下載以后

48、照例先要解壓縮:tar xvfphp-5.2.1.tar.gz然后進入目錄,開始編譯:cdphp-5.2.1./configure -prefix=/usr/local/phpwith-xml -with-apxs2=/usr/local/apache/bin/apxs-with-mysql=/usr/local/mysql這時候會出錯,出錯信息是:configure: error: cannot find output from lex; giving up我們打開Ubuntu的新立得軟件包管理器,在搜索里面輸入flex,然后標記并安裝它,然后再輸入libxml-dev并順帶安裝它,以后會用

49、到。然后我們再重新配置一下,應該就沒有問題啦!配置完以后再在終端輸入:makesudo make install就可以完成安裝了。這時候我們要再次修改一下httpd.conf文件,讓Apache支持PHP。在終端輸入:sudo gedit /usr/local/apache/conf/httpd.conf然后在里面添加:AddTypeapplication/x-httpd-php.phpAddTypeapplication/x-httpd-php-source.phps并且修改位于安裝文件夾php-5.2.1內的文件php.ini-dist,去掉extension=php_mysql.dll之

50、前的分號,然后把它拷貝到/usr/local/php/lib/下,并命名為php.ini:sudo cp php.ini-dist /usr/local/php/lib/php.ini然后我們重啟Apache服務器:sudo /usr/local/apache/bin/apachectl restart好,最后我們來寫一個測試頁面測試一下PHP有沒有正常工作。創(chuàng)建一個文件叫做test.php,將其放入/var/website目錄內,一定要注意權限,不要忘記設為755,其文件內容如下:phpphpinfo();?>如果看到圖三畫面,那么恭喜你,LAMP全部安裝成功了!MediaWikiMe

51、diaWiki是全球最著名的wiki程序,運行于PHP+MySQL環(huán)境。MediaWiki從2002年2月25日被作為維基百科全書的系統(tǒng)軟件,并有大量其他應用實例。目前MediaWiki的開發(fā)得到維基媒體基金會的支持。維基百科(Wikipedia,簡稱WP)是一個國際性的內容開放的百科全書協(xié)作計劃,是維基媒體基金會下的維基計劃,由維基媒體基金會組織運作。2005年之后,維基百科成為世界上最大的wiki工程。維基百科最初于2001年1月15日開設英文版,近年來發(fā)展迅速。其他版本此后陸續(xù)啟動,2005年已有超過100多種語言的版本。中文維基百科開始于2002年10月底。截至2005年6月,其各語言版本總計超過1,000,000個有效內容頁面,占據(jù)了當前互聯(lián)網(wǎng)上文章數(shù)量前50位站點的絕大多數(shù)位置。英文維基百科有超過89萬個條目(2006.1.3數(shù)據(jù)),排在所有維基站點的第一位。德語,日語,法語維基百科依次排在第二、三、四位。中文維基百科按條目數(shù)量排在第11位。維基百科是一個自由、免費、內容開放的百科全書協(xié)作計劃,參與者來自世界各地。這個站點使用Wiki,文內容遵循GNU自由文檔協(xié)議

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論