特別值得一提的是Linux Mysql有很多值得學(xué)習(xí)的地方,這里我們主要介紹Linux Mysql,包括介紹Linux
Mysql安裝等方面。Fedora 10下安裝Linux Mysql+Apache+Php(2009-02-19
13:36:46)標(biāo)簽:it 分類:技術(shù)進(jìn)程首先我用的各軟件版本分別是:MySQL:5.1.30Apache:2.2.3Php:5.2.8
安裝之前,如果安裝過其他版本的Linux Mysql、Apache和Php,要先卸載。使用rpm包安裝的用刪除rpm包語句:[rpm -e
包名],查詢包名用語句:[rpm -qa | grep 包名]。有依賴關(guān)系的包也要一次刪除,這樣才能成功的刪除這些rpm包。
1.本次安裝使用的都是源碼編譯安裝,將Linux Mysql-5.1.30.tar.gz復(fù)制到/usr/local/src下,然后解壓安裝,具體步驟如下:
- #cd /usr/local/src
- #tar -zxvf mysql-5.1.30.tar.gz
- #cd mysql-5.1.30
- #groupadd -r mysql //創(chuàng)建mysql用戶組
- #useradd -m -r -g mysql -d /var/lib/mysql -s /bin/bash \
- >-c "MySQL Server" mysql
- #./configure --prefix=/usr/local/mysql \ //指定mysql安裝目錄
- >--sysconfdir=/etc \ //指定mysql配置文件存放目錄
- >--localstatedir=/var/lib/mysql \//指定mysql數(shù)據(jù)庫(kù)存放目錄
- >--enable-local-infile \ //激活load data local infile語句,使mysql支持使用該語句
- >--with-charset=utf8
- >--with-collation=utf8_general_ci
- >--with-extra-charsets=latin1
- #make //編譯(需較長(zhǎng)時(shí)間)
- #make install //安裝
- #make clean
- #make distclean
2.Linux Mysql初始化數(shù)據(jù)庫(kù)
- #cd /usr/local/mysql
- #/bin/mysql_install_db --user=mysql//初始化系統(tǒng)數(shù)據(jù)庫(kù)
- #ls /var/lib/mysql //查看存放數(shù)據(jù)庫(kù)中的目錄內(nèi)容
3Linux Mysql.修改數(shù)據(jù)庫(kù)目錄所有者
- #chown -R mysql:mysql /var/lib/mysql
4.復(fù)制Linux Mysql配置文件到/etc目錄中,并更名為my.cnf。操作命令為:
- #cp /usr/local/mysql/share/mysql/my-large.cnf /etc/my.cnf //一般正常安裝之后已經(jīng)有該文件,可以不用拷貝
5.復(fù)制生成Linux Mysql服務(wù)器的自動(dòng)與停止腳本
- #cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql
6.修改/etc/rc.d/init.d/mysql文件中的基本路徑: - #vi /etc/rc.d/init.d/mysql
- 將basedir=修改為basedir=/usr/local/mysql
7.將Linux Mysql服務(wù)添加到服務(wù)器管理中,并設(shè)置自啟動(dòng)狀態(tài):
- #chkconfig --list | grep mysql //查詢當(dāng)前是否有mysql服務(wù)
- #chkconfig --add mysql //添加mysql服務(wù)到服務(wù)器管理中
- #chkconfig --list | grep mysql //查詢此時(shí)mysql服務(wù)器的啟動(dòng)狀態(tài)
- #chkconfig --level 35 mysql on //設(shè)置在3、5運(yùn)行級(jí)別也自啟動(dòng)
8.啟動(dòng)Linux Mysql服務(wù)器
- #service mysql start 或 /etc/rc.d/init.d/mysql start
9.測(cè)試Linux Mysql服務(wù)器
- #/usr/local/mysql/bin/mysqladmin version測(cè)試服務(wù)器是否已啟動(dòng)
- #/usr/local/mysql/bin/mysqladmin pin(出現(xiàn):)mysql is alive
10.Linux Mysql設(shè)置root賬戶密碼 #/usr/local/mysql/bin/mysqladmin
-u root -h 主機(jī)名 -p password
'新密碼'由于在編譯PHP源碼時(shí),會(huì)使用到部分MySQL的庫(kù)文件和頭文件,若服務(wù)器還需提供PHP動(dòng)態(tài)網(wǎng)頁(yè)服務(wù),會(huì)導(dǎo)致找不到相應(yīng)的文件,解決辦法是
為目錄創(chuàng)建一個(gè)符號(hào)連接,其實(shí)現(xiàn)的操作命令如下: #ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql #ln -s /usr/local/mysql/include/mysql /usr/include/mysql
注:若正常安裝后mysql命令不能使用,解決辦法:在.bashrc文件中添加(alias
mysql='安裝目錄/bin/mysql')(eg:alias
mysql='/usr/local/mysql/bin/mysql')為bin文件夾下的mysql命令區(qū)一個(gè)別名或者添加環(huán)境變量,在終端輸入
(export mysql="/usr/local/mysql/bin")或在/etc/profile文件中添加條目(export
PATH=$PATH:/usr/local/mysql/bin)我本人安裝完畢,使用service mysql
start啟動(dòng)mysql時(shí),出現(xiàn)Mysql服務(wù)啟動(dòng)失敗信息如下:
Starting MySQL.Manager of pid-file quit without updating
fi[Failed]解決辦法:只要將/etc/my.cnf里面的 skip
federated注釋掉即可。因機(jī)器和版本的種種差異,可能每個(gè)人都會(huì)出現(xiàn)一些問題,這些問題大家只好去Google上查了。這樣,MySQL基本上就
安裝完畢了,接下來我們來安裝和配置Apache-2.2.3。
安裝Apache-2.2.3
- #cd /usr/local/src
- #tar -zxvf httpd-2.2.3.tar.gz
- #cd httpd-2.2.3
- #./configure --prefix=/usr/local/apache \
- >--enable-so \
- >--with-mpm=prefork \
- >--enable-modules="setenvif rewrite deflate vhost_alias"
- #make
- #make install
- #usr/local/apache/bin/apachectl start
- 設(shè)置apache自啟動(dòng):
- #echo "/usr/local/apache/bin/apachectl start">> /etc/rc.d/rc.local在/etc/rc.d/rc.local中添加
- #echo "/usr/local/apache/bin/apachectl start" /usr/local/apache/bin/apachectl start
- 或者
- 將apachectl復(fù)制到/etc/rc.d/init.d下
- #cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apache
- 在/etc/rc.d/init.d/apache的第二行加入如下內(nèi)容
- # httpd Startup script for the Apache HTTP Server
# # chkconfig: - 85 15 # description: Apache is a World Wide Web server. It is used to serve \ # HTML files and CGI.
- #chkconfig --list | grep httpd //查看是否當(dāng)前是否有apache服務(wù)
- #chkconfig --add httpd
- #chkconfig --level 35 httpd on //設(shè)置在3、5運(yùn)行級(jí)別也自動(dòng)啟動(dòng)
最后來安裝PHP-5.2.8
- #tar -zxvf php-5.2.8.tar.gz
- #cd php-5.2.8
- #./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql \
- >--with-apxs2=/usr/local/apache/bin/apxs
- #make
- #make install
- #make clean
- #make distclean
Apache中加載php模塊: #cp php.ini-dist /usr/local/lib/php.ini #vim httpd.conf
添加如下內(nèi)容: LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps
解決Cannot load /usr/local/apache/modules/libphp5.so的方法今天安裝httpd-2.2.3
和php-5.2.8,一切順利,最后一步重新啟動(dòng)apache報(bào)如下錯(cuò)誤:(真是個(gè)好編劇,總是最后發(fā)生異常)httpd: Syntax error
on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load
/usr/local/apache/modules/libphp5.so into server:
/usr/local/apache/modules/libphp5.so: cannot restore segment prot after
reloc: Permission denied
解決辦法:原因是Linux有一個(gè)SELinux保護(hù)模式引起的。 1關(guān)閉SELINUX的方法: vim /etc/selinux/config 將SELINUX=enforcing 改成SELINUX=disabled 需要重啟 2不關(guān)閉SELINUX的方法: # setenforce 0 # chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so # service httpd restart # setenforce 1 附一個(gè)較全的PHP編譯參數(shù):./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-openssl --with-zlib --disable-ctype --enable-exif --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-native-ttf --with-gd --enable-mbstring --with-mysqli --with-mysql=/usr/local/mysql --with-pdo-mysql --enable-soap --enable-sqlite-utf8 --with-pear=/usr/local/php/pear
|