lamp安裝教程之編譯、安裝Mysql
lamp安裝教程:可以根據(jù)以下三個(gè)步驟來安裝編譯lamp
三、編譯、安裝PHP
首先,我們要獲得Apache、Mysql和PHP的源碼包,軟件的官方網(wǎng)站去下載,在網(wǎng)上很容易查到的。
下載獲得的源碼軟件包分別為:
httpd-2.2.9.tar.gz
mysql-5.0.67.tar.gz
php-5.2.6.tar.gz
各源碼包解壓后,將會(huì)生成一個(gè)與其主文件名同名的目錄(使用tar指令解壓,使用參數(shù)zxvf,即“tar zxvf 壓縮包名”),由于在編譯、安裝PHP時(shí)需要對(duì)Apache和Mysql的支持情況進(jìn)行配置,所以,PHP只能最后安裝,而Apache和MySQL的安 裝順序則相對(duì)隨意些,本文將首先安裝MySQL(本文建議創(chuàng)建單獨(dú)的目錄用于軟件的編譯、安裝,避免與 源碼包中的數(shù)據(jù)混淆,也方便對(duì)軟件的重新編譯)。
編譯、安裝Mysql
在與mysql-5.0.67目錄同級(jí)的目錄下,創(chuàng)建一個(gè)“makemysql”目錄,在此目錄下對(duì)MySQL進(jìn)行配置,操作如下:
- mkdir makemysql
- cd makemysql
- sudo ../mysql-5.0.67/configure --prefix=/opt/mysql --localstatedir=/home/user/mysql_data --with-extra-charsets=all
(這里--prefix選項(xiàng)指定了軟件的安裝目錄;--localstatedir選項(xiàng)指定了數(shù)據(jù)庫文件的所在目錄,這里的user表示當(dāng)前的用戶名 稱;--with-extra-charsets選項(xiàng)則是指定了MySQL可以支持的語言編碼,這里設(shè)置為全部支持,具體使用哪種編碼,可以在程序中指 定。
而命令前面的“sudo”,可以說是Ubuntu系統(tǒng)的一個(gè)特色,表明了要在具有管理員權(quán)限的模式下進(jìn)行操作,對(duì)于其他的Linux發(fā)行版本而言,或許并不需要使用該指令。關(guān)于Ubuntu的權(quán)限問題,這里就不贅述了,有興趣的朋友可以參考一下Ubunt u的有關(guān)資料)
回車確認(rèn)后,第一個(gè)問題出現(xiàn)了,將會(huì)看到如下的報(bào)錯(cuò)信息:
- configure: error: no acceptable C compiler found in $PATH
- See `config.log' for more details.
上述信息表明,當(dāng)前系統(tǒng)中沒有安裝C++編譯器,系統(tǒng)無法對(duì)源碼包進(jìn)行編譯,知道了問題所在,我們就可以有的放矢的開始解決問題了。
Ubuntu系統(tǒng)自帶了很多編譯、開發(fā)所必須的軟件包,只是我們安裝的是Ubuntu-Server系統(tǒng),默認(rèn)的狀態(tài)下,除了系統(tǒng)自身外,不會(huì)安裝任何其他軟件。上述的這個(gè)問題只要安裝Ubuntu系統(tǒng)自帶的“build-essential”軟件包就可以,操作如下:
- sudo apt-get install build-essential
由于該軟件包屬于Ubuntu-Server系統(tǒng)自帶的,系統(tǒng)會(huì)提示要求使用Ubuntu-Server的光盤進(jìn)行安裝,只有當(dāng)Ubuntu-Server的光盤中沒有需要安裝的軟件包時(shí),才會(huì)通過前面手動(dòng)添加的Ubuntu-DVD的光盤源進(jìn)行安裝)
安裝好了所需的編譯器之后,需要重新配置MySQL,操作如下:
- cd /home/user/makemysql (這里假定前面獲取的源碼包和前面創(chuàng)建的專門用于編譯的目錄是位于/home/user下的,根據(jù)自己的實(shí)際情況輸入即可)
- sudo ../mysql-5.0.67/configure --prefix=/opt/mysql --localstatedir=/home/user/mysql_data --with-extra-charsets=all
經(jīng)過了一連串兒的編譯過程后,第二個(gè)問題又出現(xiàn)了,在編譯過程的最后,將會(huì)看到如下的錯(cuò)誤信息:
- checking for termcap functions library... configure: error: No curses/termcap library found
從提示的錯(cuò)誤信息中可以看出,這是由于系統(tǒng)中缺少了MySQL所需的庫文件所導(dǎo)致的,apt-get再次派上了用場(chǎng),操作如下:
- sudo apt-get install libcurses (這里不按回車,而是按Tab鍵)
這里將會(huì)看到軟件源中包括的所有文件名以libcurses開頭的軟件包列表,如下:
- libncurses5 libncurses5-dev libncurses-dev libncursesw5
這里我們需要安裝的是libncurses5-dev軟件包(安裝了build-essential軟件包后,一些基本的庫文件都會(huì)隨之安裝的,如果再遇 到缺少庫文件的提示,大部分是因?yàn)闆]有安裝對(duì)應(yīng)的dev庫,也就是對(duì)應(yīng)的“開發(fā)包”所導(dǎo)致的,應(yīng)根據(jù)具體情況進(jìn)行判斷。)
找到了所需的軟件包,安裝之,操作如下:
- sudo apt-get install libncurses5-dev
(這里將會(huì)提示插入U(xiǎn)buntu-DVD光盤,因?yàn)閁buntu-Server光盤中并沒有這個(gè)軟件包,插入U(xiǎn)buntu-DVD光盤后確認(rèn)。如果沒有在 前面添加Ubuntu-DVD的光盤源,使用這種方法將無法查找到這個(gè)軟件包,只能先查找資料,確定所需的軟件包名稱,再使用互聯(lián)網(wǎng)軟件源安裝,或者將軟 件包下載到本地進(jìn)行安裝。)
安裝好庫文件后,再次重新配置MySQL,操作如下:
- cd /home/user/makemysql
- sudo ../mysql-5.0.67/configure --prefix=/opt/mysql --localstatedir=/home/user/mysql_data --with-extra-charsets=all
長(zhǎng)長(zhǎng)的編譯過程結(jié)束后,將會(huì)看到“Thank you for choosing MySQL!”的字樣,編譯成功!
配置完成后,開始編譯、安裝MySQL,操作如下:
- sudo make
- sudo make install
安裝結(jié)束后,MySQL服務(wù)并不會(huì)自動(dòng)啟動(dòng),還需要先初始化MySQL數(shù)據(jù)庫,操作如下:
- cd /opt/mysql/bin
- sudo ./mysql_install_db
MySQL數(shù)據(jù)庫初始化完成后,MySQL服務(wù)會(huì)隨之啟動(dòng),可以使用“netstat -lt”查看MySQL服務(wù)是否已經(jīng)正常啟動(dòng)。
這里要說明的是,由于在編譯MySQL的時(shí)候,為數(shù)據(jù)庫指定了存放路徑,即/home/user/mysql_data,對(duì)當(dāng)前用戶user而言,擁有該 目錄的全部權(quán)限,所以,這里直接在當(dāng)前用戶下執(zhí)行mysql_install_db指令,可以成功初始化數(shù)據(jù)庫,如果用戶在安裝時(shí)沒有指定數(shù)據(jù)庫的路徑, 或者指定到了一個(gè)當(dāng)前用戶沒有權(quán)限的路徑,直接 執(zhí)行mysql_install_db指令時(shí)將會(huì)報(bào)錯(cuò),需要首先設(shè)置相應(yīng)的權(quán)限,或者指定MySQL的啟動(dòng)用戶。關(guān)于這個(gè)問題,這里就不具體說明了,感興 趣的朋友可以查閱相關(guān)資料。
MySQL服務(wù)成功啟動(dòng)后,為了能夠正常使用MySQL,首先需要設(shè)置root用戶的密碼(注:這里的root用戶與Linux系統(tǒng)的root用戶不同),操作如下:
- cd /opt/mysql/bin
- ./mysqladmin -u root password 123456
這里將MySQL的root用戶密碼設(shè)置為123456,設(shè)置好后,可以先測(cè)試一下是否能夠正常連接,操作如下:
- ./mysql -uroot -p123456
如果一切正常,將會(huì)看到“mysql>”的提示符,表明已經(jīng)使用root用戶與本機(jī)的mysql服務(wù)成功建立了連接。至此,MySQL的編譯、安裝成功完成。
還有一點(diǎn)需要說明,MySQL服務(wù)默認(rèn)只允許從服務(wù)器本機(jī)連接,如果需要從遠(yuǎn)程連接,還需要在MySQL中設(shè)置相應(yīng)的權(quán)限,并更新權(quán)限表,具體操作如下:
- mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
- mysql> flush privileges;
(注意前面的“mysql>”,這個(gè)操作是連接到MySQL服務(wù)后,在MySQL中進(jìn)行的,而不是在操作系統(tǒng)中進(jìn)行的)
(注:上面這個(gè)更改權(quán)限的例子,是使得可以從任意一臺(tái)遠(yuǎn)程終端使用root用戶連接MySQL服務(wù)器,用戶應(yīng)根據(jù)自己的實(shí)際需要進(jìn)行設(shè)置)