国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 系統(tǒng) > CentOS > 正文

Centos5.2配置LAMP與Centos5.3配置LAMP

2020-07-08 13:00:28
字體:
供稿:網(wǎng)友
CentOS5.2配置LAMP全過程2009-03-30 22:00文章內(nèi)容分為7部分

一:系統(tǒng)約定
二:系統(tǒng)基本設(shè)置
三:下載軟件
四:安裝必須的軟件
五:編譯安裝軟件
六:配置apache PHP
七:測試 (通過phpinfo,phpmyadmin,sugarcrm的安裝來測試)

一:系統(tǒng)約定
采用Centos5.2光盤,
軟件源代碼包存放位置 /usr/local/src
源碼包編譯安裝位置(prefix) /usr/local/software_name
MySQL 數(shù)據(jù)庫位置 /data/mysql/data
Apache 網(wǎng)站根目錄 /data/www/wwwroot(虛擬主機(jī)在這個目錄下)
Apache 虛擬主機(jī)日志根目錄 /data/www/logs
Apache 運行賬戶 www:www
創(chuàng)建兩個虛擬主機(jī) test.com linux.com

所有的配置的文件修改,都做備份,備份的名字為 文件名.save

下面的實驗是用vmware station 6 創(chuàng)建一個 redhat AS5的vm,安裝centos5.2,安裝的時候,選擇安裝語言是英文,采用文本方式來安裝,選擇最小化的安裝。

yum的更新,采用本地光盤的方式,這樣比較快捷。

我的機(jī)器基本設(shè)置

IP:192.168.1.200/255.255.255.0

網(wǎng)關(guān):192.16.1.1

DNS:192.168.1.1

hostname:ns1

二:系統(tǒng)基本設(shè)置

我已經(jīng)把所有需要配置的內(nèi)容,做一個一個腳本,只需要運行一次就可以。

cd /usr/local/src
vi /usr/local/src/init.sh

#####################

#Diabe IPV6
cp /etc/modprobe.conf /etc/modprobe.conf.save
echo “alias net-pf-10 off” >> /etc/modprobe.conf
echo “alias ipv6 off” >> /etc/modprobe.conf

#SSH
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.save
sed -i ‘/#PermitRootLogin/s/#PermitRootLogin/PermitRootLogin/’ /etc/ssh/sshd_config
sed -i -e ‘74 s/^/#/’ -i -e ‘76 s/^/#/’ /etc/ssh/sshd_config
sed -i “s/#UseDNS yes/UseDNS no/” /etc/ssh/sshd_config
sed -i -e ‘44 s/^/#/’ -i -e ‘48 s/^/#/’ /etc/ssh/sshd_config
/etc/init.d/sshd restart

#停止 the “beep”


cp /etc/inputrc /etc/inputrc.save
sed -i ‘/#set bell-style none/s/#set bell-style none/set bell-style none/’ /etc/inputrc


#關(guān)閉SElinux

cp /etc/sysconfig/selinux /etc/sysconfig/selinux.save
sed -i ‘/SELINUX=enforcing/s/SELINUX=enforcing/SELINUX=disabled/’ /etc/sysconfig/selinux



#加載光驅(qū)

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
echo “mount /dev/cdrom /mnt/cdrom” >> /etc/rc.local


#設(shè)置yum使用本地光盤

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.save
mv /etc/yum.repos.d/CentOS-Media.repo /etc/yum.repos.d/CentOS-Media.repo.save
echo “[DVDISO]” >> /etc/yum.repos.d/dvdiso.repo
echo “name=DVD ISO” >> /etc/yum.repos.d/dvdiso.repo
echo “baseurl=file:///mnt/cdrom/” >> /etc/yum.repos.d/dvdiso.repo
echo “enabled=1″ >> /etc/yum.repos.d/dvdiso.repo
echo “gpgcheck=0″ >> /etc/yum.repos.d/dvdiso.repo


#vim設(shè)置

yum -y install vim-enhanced
mv /bin/vi /bin/vi.save
ln -s /usr/bin/vim /bin/vi
cp /etc/vimrc /etc/vimrc.save
sed -i “39 s/^/ set number /n filetype on/n set history=1000/n syntax on/n set tabstop=4/n set showmatch/n set vb t_vb=/n set mouse=a/n set ignorecase/n set autowrite/n /” /etc/vimrc

#時間的設(shè)置
yum -y install ntp
ntpdate 210.72.145.44 && clock -w

#安裝常用軟件

yum -y install wget unzip

#停止沒有必要的服務(wù)
chkconfig –list |grep 3:on |awk ‘{print $1}’ |egrep -v ’sshd|network|syslog’ |xargs -i{} chkconfig –level 3 {} off
chkconfig –list | grep 3:on | cut -f1

#重新啟動
init 6
####################

sh init.sh


三:下載軟件

cd /usr/local/src
vi list

http://download.filehat.com/apache/httpd/httpd-2.2.8.tar.gz
http://opensource.nchc.org.tw/COSA/CNS4/cronolog-1.6.2.tar.gz
http://www.libgd.org/releases/gd-2.0.35.tar.bz2
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz
http://mirror.optus.net/sourcefo ... mcrypt-2.5.8.tar.gz
http://jaist.dl.sourceforge.net/ ... mcrypt-2.6.7.tar.gz
http://www.openssl.org/source/openssl-0.9.8h.tar.gz
http://openbsd.md5.com.ar/pub/Op ... penssh-5.0p1.tar.gz
http://mysql.byungsoo.net/Downlo ... ysql-5.0.51b.tar.gz
http://cn2.php.net/get/php-5.2.6.tar.bz2/from/this/mirror
http://downloads.phpchina.com/ze ... glibc23-i386.tar.gz
ftp://ftp.cac.washington.edu/mail/imap.tar.Z
http://puzzle.dl.sourceforge.net ... s-utf-8-only.tar.gz
http://dl.sugarforge.org/sugarcr ... 0/SugarCE-5.1.0.zip
http://mirror.optus.net/sourceforge/m/mh/mhash/mhash-0.9.9.tar.gz

wget -i list

四:安裝必須的軟件

采用yum的方式安裝

yum -y install gcc make patch gcc-c++ gcc-g77 flex bison autoconf automake /
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel libtiff-devel fontconfig-devel libXpm-devel gettext-devel pam-devel pcre-devel libtool libtool-ltdl

五:編譯安裝軟件

下面的內(nèi)容,其實你可以復(fù)制到一個文本,比如 install.sh 運行這個腳本,我已經(jīng)測試過了,整整運行了快1個小時,估計是我在vm上跑道原因。前提是你下載的軟件和我是一樣的,也就是軟件都是通過上面的下載的。

cd /usr/local/src
vi install.sh
###############################################

#安裝openssl
cd /usr/local/src
tar zxvf openssl-0.9.8h.tar.gz
cd openssl-0.9.8h
./config shared zlib
make
make test
make install
mv /usr/bin/openssl /usr/bin/openssl.save
mv /usr/include/openssl /usr/include/openssl.save
mv /usr/lib/libssl.so /usr/lib/libssl.so.save
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
ln -sv /usr/local/ssl/lib/libssl.so.0.9.8 /usr/lib/libssl.so
cd ..


#配置庫文件搜索路徑
echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
ldconfig -v

#檢測安裝結(jié)果
openssl version

#安裝openssh

tar xvf openssh-5.0p1.tar.gz

cd openssh-5.0p1

./configure /
”–prefix=/usr” /
”–with-pam” /
”–with-zlib” /
”–sysconfdir=/etc/ssh” /
”–with-ssl-dir=/usr/local/ssl” /
”–with-md5-passwords”

make
make install

cd ..

service sshd restart

ssh -v

#安裝GD

tar jxvf gd-2.0.35.tar.bz2
cd gd-2.0.35
aclocal
./configure –prefix=/usr/local/gd2
make && make install
cd ..

#安裝 libmcrypt


tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure –enable-ltdl-install
make
make install
cd ../../

cp /usr/local/lib/libmcrypt.* /usr/lib



#安裝libiconv


tar zxvf libiconv-1.12.tar.gz

cd libiconv-1.12/
./configure –prefix=/usr/local
make
make install
cd ../

ln -s /usr/local/lib/libiconv.so.2 /usr/lib/


#安裝mhash

tar zxvf mhash-0.9.9.tar.gz
cd mhash-0.9.9/
./configure
make
make install
cd ../
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2

#安裝mcrypt


tar zxvf mcrypt-2.6.7.tar.gz
cd mcrypt-2.6.7/
./configure
make
make install
cd ../


#安裝cronolog

tar xvf cronolog-1.6.2.tar.gz

cd cronolog-1.6.2

./configure –prefix=/usr/local/cronolog

make && make install

cd ..


#安裝imap

tar zxf imap.tar.Z
cd imap-2007b
make lr5 PASSWDTYPE=std SSLTYPE=unix.nopwd IP6=4
echo “set disable-plaintext nil” > /etc/c-client.cf
mkdir /usr/local/imap-2007b
mkdir /usr/local/imap-2007b/include/
mkdir /usr/local/imap-2007b/lib/
chmod -R 077 /usr/local/imap-2007b
rm -rf /usr/local/imap-2007b/include/*
rm -rf /usr/local/imap-2007b/lib/*
rm -rf /usr/sbin/imapd
cp imapd/imapd /usr/sbin/
cp c-client/*.h /usr/local/imap-2007b/include/
cp c-client/*.c /usr/local/imap-2007b/lib/
cp c-client/c-client.a /usr/local/imap-2007b/lib/libc-client.a

cd ..

#安裝MYSQL


tar zxvf mysql-5.0.51b.tar.gz

cd mysql-5.0.51b

./configure /
“–prefix=/usr/local/mysql” /
“–localstatedir=/data/mysql/data” /
“–with-comment=Source” /
“–with-server-suffix=-test.com” /
“–with-mysqld-user=mysql” /
“–without-debug” /
“–with-big-tables” /
“–with-charset=gbk” /
“–with-collation=gbk_chinese_ci” /
“–with-extra-charsets=all” /
“–with-pthread” /
“–enable-static” /
“–enable-thread-safe-client” /
“–with-client-ldflags=-all-static” /
“–with-mysqld-ldflags=-all-static” /
“–enable-assembler” /
“–without-isam” /
“–without-innodb” /
“–without-ndb-debug”
make && make install
useradd mysql -d /data/mysql -s /sbin/nologin
/usr/local/mysql/bin/mysql_install_db –user=mysql
cd /usr/local/mysql
chown -R root:mysql .
chown -R mysql /data/mysql/data
cp share/mysql/my-huge.cnf /etc/my.cnf
cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig –add mysqld
/etc/rc.d/init.d/mysqld start

cd /usr/local/mysql/bin
for i in *; do ln -s /usr/local/mysql/bin/$i /usr/bin/$i; done

cd /usr/local/src

mysqladmin -u root password chenshake


#安裝Apache

tar zxvf httpd-2.2.8.tar.gz
cd httpd-2.2.8
./configure /
“–prefix=/usr/local/apache2″ /
“–with-included-apr” /
“–enable-so” /
“–enable-deflate=shared” /
“–enable-expires=shared” /
“–enable-rewrite=shared” /
“–enable-static-support” /
“–disable-userdir”
make
make install
cd ..

#安裝PHP

tar jxvf php-5.2.6.tar.bz2
cd php-5.2.6
./configure /
“–prefix=/usr/local/php” /
“–with-apxs2=/usr/local/apache2/bin/apxs” /
“–with-config-file-path=/usr/local/php/etc” /
“–with-mysql=/usr/local/mysql” /
“–with-gd=/usr/local/gd2″ /
“–with-libxml-dir=/usr” /
“–with-jpeg-dir” /
“–with-png-dir” /
“–with-freetype-dir” /
“–with-zlib ” /
–with-iconv-dir=/usr/local /
“–with-openssl=/usr/local/ssl” /
“–with-curl ” /
“–with-curlwrappers ” /
“–with-mcrypt” /
“–with-imap=/usr/local/imap-2007b” /
“–with-kerberos” /
“–with-bz2″ /
“–enable-soap” /
“–enable-gd-native-ttf” /
“–enable-ftp” /
“–enable-mbstring” /
“–enable-exif” /
“–disable-ipv6″ /
“–disable-cgi” /
“–disable-cli”

make
make install
mkdir /usr/local/php/etc
cp php.ini-dist /usr/local/php/etc/php.ini
cd ..

#安裝Zend Optimizer (安裝Zend Optimizer過程的最后不要選擇重啟Apache。)

tar xzvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc23-i386
./install.sh


##########################################################################

sh install.sh


腳本到這里為止,因為zend的設(shè)置,我沒法自動完成,只能你手動設(shè)置,如果誰知道怎么做,麻煩指導(dǎo)指導(dǎo),注意php.ini 的位置 /usr/local/php/etc/

#設(shè)置session的存放位置和修改php上次文件的大小,最大文件25m

cp /usr/local/Zend/etc/php.ini /usr/local/Zend/etc/php.ini.save
sed -i -e ‘991 s/;//’ /usr/local/Zend/etc/php.ini
sed -i ’s/post_max_size = 8M/ post_max_size = 30M/g’ /usr/local/Zend/etc/php.ini
sed -i ’s/upload_max_filesize = 2M/ upload_max_filesize = 25M/g’ /usr/local/Zend/etc/php.ini
cd /usr/local/src

六:配置apache PHP

創(chuàng)建apache的啟動腳本,apache編譯包里帶的那個啟動腳本,有一個缺點,啟動和停止沒有任何提示,所以就用下面這個,比較方便。

vi /etc/init.d/httpd

###################################

#!/bin/bash
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve /
# HTML files and CGI.
# processname: httpd
# pidfile: /usr/local/apache2/logs/httpd.pid
# config: /usr/local/apache2/conf/httpd.conf

# Source function library.
. /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi

# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=”"

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache2/bin/apachectl
httpd=/usr/local/apache2/bin/httpd
pid=/usr/local/apache2/logs/httpd.pid
prog=httpd
RETVAL=0




# The semantics of these two functions differ from the way apachectl does
# things — attempting to start while running is a failure, and shutdown
# when not running is also a failure. So we just do it the way init scripts
# are expected to behave here.
start() {
echo -n $”Starting $prog: “
daemon $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $”Stopping $prog: “
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd $pid
}
reload() {
echo -n $”Reloading $prog: “
killproc $httpd -HUP
RETVAL=$?
echo
}

# See how we were called.
case “$1″ in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f $pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $”Usage: $prog {start|stop|restart|condrestart|reload|status”
echo $”|fullstatus|graceful|help|configtest}”
exit 1
esac

exit $RETVAL

###########################


設(shè)置可運行和開機(jī)啟動

chmod +x /etc/rc.d/init.d/httpd
chkconfig –add httpd
chkconfig –level 3 httpd on


配置apache

groupadd www -g 48
useradd -u 48 -g www www
mkdir -p /data/www/wwwroot/linux.com
mkdir -p /data/www/wwwroot/test.com
mkdir -p /data/logs
chmod +w /data/www/wwwroot
chown -R www:www /data/www/wwwroot
cp /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.save


編輯httpd.conf

sed -i -e ‘121 s/^/#/’ -i -e ‘122 s/^/#/’ /usr/local/apache2/conf/httpd.conf
sed -i -e “s/User daemon/User www/” -i -e “s/Group daemon/Group www/” /usr/local/apache2/conf/httpd.conf
sed -i ’s/DirectoryIndex index.html/ DirectoryIndex index.php index.html index.htm/g’ /usr/local/apache2/conf/httpd.conf
sed -i -e ‘101 s/^#//g’ -i -e ‘374 s/^#//g’ -i -e ‘389 s/^#//g’ -i -e ‘392 s/^#//g’ -i -e ‘401 s/^#//g’ /usr/local/apache2/conf/httpd.conf
sed -i “58 s/^/AddType application//x-httpd-php .php/” /usr/local/apache2/conf/httpd.conf


編輯php.ini

cp /usr/local/php/etc/php.ini /usr/local/php/etc/php.ini.save
sed -i ‘205 s#;open_basedir =#open_basedir = /data/www/wwwroot:/tmp#g’ /usr/local/php/etc/php.ini
sed -i ‘/expose_php/s/On/Off/’ /usr/local/php/etc/php.ini
sed -i ‘/display_errors/s/On/Off/’ /usr/local/php/etc/php.ini

配置虛擬主機(jī)

備份相關(guān)配置文件

mv /usr/local/apache2/conf/extra/httpd-vhosts.conf /usr/local/apache2/conf/extra/httpd-vhosts.conf.save
mv /usr/local/apache2/conf/extra/httpd-default.conf /usr/local/apache2/conf/extra/httpd-default.conf.save
mv /usr/local/apache2/conf/extra/httpd-mpm.conf /usr/local/apache2/conf/extra/httpd-mpm.conf.save


創(chuàng)建3個apache相關(guān)的文件

vi /usr/local/apache2/conf/extra/httpd-vhosts.conf

NameVirtualHost *:80


ServerAdmin shake.chen@gmail.com
DocumentRoot “/data/www/wwwroot/test.com”
ServerName test.com
ServerAlias bbs.test.com
ErrorLog “logs/test.com-error_log”
CustomLog “|/usr/local/cronolog/sbin/cronolog /data/logs/access_www.test.com.%Y%m%d” combined



ServerAdmin shake.chen@gmail.com
DocumentRoot “/data/www/wwwroot/linux.com”
ServerName linux.com
ServerAlias bbs.linux.com
ErrorLog “logs/linux.com-error_log”
CustomLog “|/usr/local/cronolog/sbin/cronolog /data/logs/access_www.linux.com.%Y%m%d” combined


vi /usr/local/apache2/conf/extra/httpd-default.conf

Timeout 15
KeepAlive Off
MaxKeepAliveRequests 50
KeepAliveTimeout 5
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
ServerSignature Off
HostnameLookups Off

vi /usr/local/apache2/conf/extra/httpd-mpm.conf


ServerLimit 2000
StartServers 10
MinSpareServers 10
MaxSpareServers 15
MaxClients 2000
MaxRequestsPerChild 10000


七:測試

修改本地hosts文件
192.168.1.200 www.test.com

啟動Apache

service httpd start

復(fù)制代碼

測試php

cd /data/www/wwwroot/test.com
vi info.php


phpinfo()

?>


這個時候 http://192.168.1.200/info.php 或者 http://www.test.com/info.php 就可以看到php的信息。

安裝phpadmin

cd /usr/local/src
tar zxvf phpMyAdmin-2.11.8.1-all-languages-utf-8-only.tar.gz
cp -rf phpMyAdmin-2.11.8.1-all-languages-utf-8-only /data/www/wwwroot/test.com/phpmyadmin
cd /data/www/wwwroot/test.com/phpmyadmin

cp config.sample.inc.php config.inc.php

sed -i -e “/^/$cfg/['blowfish_secret'/]/{ s@”;@’88888888888888888′;@; }” config.inc.php


這個時候,你就可以通過 http://192.168.1.200/phpmyadmin 或者 http://www.test.com/phpmyadmin來進(jìn)行數(shù)據(jù)庫管理, 我上面已經(jīng)給mysql設(shè)置的密碼。

user:root
password:chenshake

安裝sugarcrm

sugarcrm的郵件模塊需要用到imap,ssl,所以我編譯的時候,需要吧imap,curl模塊編譯進(jìn)去.

cd /usr/local/src
unzip SugarCE-5.1.0.zip
mv SugarCE-Full-5.1.0/ /data/www/wwwroot/test.com/sugarcrm
chmod -R 777 /data/www/wwwroot/test.com/sugarcrm/

與30萬Linux愛好者討論問題!

【已有6位網(wǎng)友發(fā)表了看法】 【打印】 【關(guān)閉】


相關(guān)評論
作者: isosdw 發(fā)布日期: 2009-7-29
大同小異
作者: baizx 發(fā)布日期: 2009-7-29
請 教我實質(zhì)的 內(nèi)容 比如 如何如何改 哪里哪里應(yīng)該變動~~~謝謝
作者: baizx 發(fā)布日期: 2009-8-05
呃 轉(zhuǎn)個 5.3的最近找到的

CentOS 5 全功能WWW服務(wù)器搭建全教程 V3.0
一、基本系統(tǒng)安裝
1、下載CentOS 5
我是下載的DVD版本,大家也可以下載服務(wù)器CD安裝版本,其實都差不多。大家可以到這兒下載,速度很快的。
http://ftp.iasi.roedu.net/mirrors/ce...86-bin-DVD.iso
建議在windows下用BT或迅雷下載,速度會快很多。
下載后刻錄成光盤。我建議你刻錄DVD啦,如果是菜鳥,把圖形界面也裝上,可以在圖形界面進(jìn)行學(xué)習(xí),當(dāng)然強烈不建議在服務(wù)器上裝桌面。
Centos 5系列任何一個版本就行了,安裝后可以通過yum upgrade直接更新為最新版本。

2、安裝CentOS 5
作為服務(wù)器,不安裝不需要的組件,所以在選擇組件的時候,除了選擇FTP SERVER外取消所有組件的選擇。也不要選web服務(wù)器。因為我們后面要手動編譯安裝。
系統(tǒng)約定RPM包和源碼包存放位置
RPM包和源碼包存放位置 /usr/local/src
源碼包編譯安裝位置(prefix) /usr/local/xxx
腳本以及維護(hù)程序存放位置 /usr/local/sbin
MySQL 數(shù)據(jù)庫位置 /var/lib/mysql
Apache 網(wǎng)站根目錄 /usr/local/apache2/htdocs
Apache 虛擬主機(jī)日志根目錄 /data/logs/www
yum RPM包信息文件 /etc/yum.list

3、系統(tǒng)環(huán)境部署及調(diào)整
(1)檢查系統(tǒng)是否正常
# more /var/log/messages //檢查有無系統(tǒng)內(nèi)核級錯誤信息
# dmesg //檢查硬件設(shè)備是否有錯誤信息
# ifconfig //檢查網(wǎng)卡設(shè)置是否正確
# ping www.163.com // 檢查網(wǎng)絡(luò)是否正常
(2)關(guān)閉不需要的服務(wù)
# export LANG='en_US' //設(shè)置語言
# setup //選擇啟動的服務(wù)
進(jìn)入system service 選項。
以space 鍵選定所需服務(wù)。
以下僅列出需要啟動的服務(wù),未列出的服務(wù)一律關(guān)閉:
crond
irqbalance 僅當(dāng)服務(wù)器CPU為S.M.P架構(gòu)或支持雙核心、HT技術(shù)時,才需開啟,否則關(guān)閉。
microcode_ctl
network
iptables
vsftpd
sshd
syslog
yum-updatesd
(3)修改/etc/yum.repos.d/CentOS-Base.repo,將鏡象站點地址改為在中國的鏡象站點地址。不然我們通過yum安裝軟件速度會極慢。修改如下:
# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.shlug.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=1
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.shlug.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=1
#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
baseurl=http://mirrors.shlug.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=0
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.shlug.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=0
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.shlug.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=1
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
baseurl=http://mirrors.shlug.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
protect=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
保存文件。
(4)更新系統(tǒng),我們使用yum,
運行:
# yum upgrade
建議更新所有列出的程序,包括內(nèi)核,rhel 5.X的穩(wěn)定性還要繼續(xù)努力呢。
(5)定時校正服務(wù)器時間
# yum install –y ntp
# crontab -e
0 23 * * * /usr/sbin/ntpdate 210.72.145.44
以上命令設(shè)置好后存盤。
# /sbin/service crond reload
重載計劃任務(wù)配置
您的機(jī)器將在每天的23:00根據(jù)中國國家授時中心的NTP服務(wù)器時間自動校準(zhǔn)時間。
(6)FTP服務(wù)器的配置
vi /etc/vsftpd/vsftpd.conf
把anonymous_enable=YES
修改為anonymous_enable=No不允許匿名登錄。
添加兩句
chroot_local_user=yes
listen_port=2121
將用戶鎖定在主目錄,并將FTP監(jiān)聽端口修改為2121
把ftpd_banner=*前的注釋去掉。后面改成你的歡迎信息(這樣設(shè)置可以避免顯示ftp服務(wù)器的版本信息)
然后保存,service vsftpd start就可以了。
這時應(yīng)當(dāng)添加用戶,因為root默認(rèn)不能通過FTP方式登錄,也不安全。
groupadd upload
useradd upload -g upload -d /usr/local/apache2/htdocs/ -M
如果FTP登錄時出現(xiàn)
ftp服務(wù)器連接失敗,錯誤提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died
解決方法:
# setsebool ftpd_disable_trans 1
# service vsftpd restart
這樣對于我們上傳一些文件到系統(tǒng)中很方便。
大家有興趣的可以看下這篇文章對vsftpd進(jìn)行一個比較詳細(xì)的了解
http://blog.chinaunix.net/u/10047/showart_198837.html
4、重新啟動系統(tǒng)
# init 6
此時系統(tǒng)啟動成功,可以刪除老的內(nèi)核

二、安裝mysql, apache, php, Zend Optimizer等基本環(huán)境
5. 使用 yum 程序安裝所需開發(fā)包(以下為標(biāo)準(zhǔn)的rpm包名稱)
# yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel gettext-devel pcre-devel
#這里我們將編譯GD所必須的一些小軟件比如libpng,libtiff,freetype,libjpeg,gettext-devel等先用RPM 的方式一并安裝好,避免手動編譯浪費時間,同時也能避免很多錯誤,這幾個小軟件的編譯很麻煩。這幾個小軟件編譯錯誤了,GD當(dāng)然安裝不了,php5的編譯當(dāng)然也沒戲了。所以我們抓大放小,對這些小牛鬼蛇神采取快速簡潔的方式進(jìn)行安裝。并且對服務(wù)器的性能也不能產(chǎn)生什么影響。
另外libxml2系統(tǒng)已經(jīng)默認(rèn)安裝了,所以我們不需要手工編譯了,直接安裝它的開發(fā)包就行了。
6. 源碼編譯安裝所需包 (Source)
(1) GD2
# cd /usr/local/src
# wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
# tar xzvf gd-2.0.35.tar.gz
# cd gd-2.0.35
# yum install libtool libtool-ltdl
# aclocal
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/gd2 --mandir=/usr/share/man
// 注意,CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" 這個環(huán)境參數(shù)只針對intel P4 芯片,如果你的CPU是AMD的,注意不能使用。請查看相應(yīng)的編譯優(yōu)化參數(shù)。否則程序會無法編譯,即使編譯成功也無法運行,嘿嘿。
關(guān)于其他CPU的優(yōu)化參見我的BLOG的一篇轉(zhuǎn)貼:
http://www.cnprint.org/bbs/blogs/1/blog43.html
//./configure 配置。
# make //make 是用來編譯的,它從 Makefile 中讀取指令,然后編譯。
# make install //make install 是用來安裝的,它也從 Makefile 中讀取指令,安裝到指定的位置。
(2) Apache 日志截斷程序
# cd /usr/local/src
# wget http://cronolog.org/patches/cronolog-1.7.0-beta.tar.gz
# tar cronolog-1.7.0-beta.tar.gz
# cd cronolog-1.7.0-beta
#CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/cronolog && make && make install

7、編譯mysql 5.0.50
mysql 5.0.50是企業(yè)版本,貌似雙數(shù)版本都是企業(yè)版本了。個人覺得代碼質(zhì)量要比社區(qū)版本要好一些。大家可以下載,免費使用。并不需要向mysql公司交錢。
#cd /usr/local/src
# wget http://mirror.provenscaling.com/mysq...-5.0.50.tar.gz
# tar xzvf mysql-5.0.50.tar.gz
# cd mysql-5.0.50
修改mysql 客戶端最大連接數(shù), 默認(rèn)的只有100,遠(yuǎn)遠(yuǎn)達(dá)不到我們的要求。
# vi sql/mysqld.cc
搜索找到下面一行:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
0},
將其中的100改為1500, 當(dāng)然小點也可以,根據(jù)你的需要來,不建議改的太大。
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,
0},
保存。
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/mysql --localstatedir=/var/lib/mysql --with-comment=Source --with-server-suffix=-enterprise-gpl --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,latin1 --with-pthread --enable-static --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-innodb --without-ndb-debug --without-isam --enable-local-infile --with-readline --with-raid
配置成功會提示:
MySQL has a Web site at http://www.mysql.com/ which carries details on the
latest release, upcoming features, and other information to make your
work or play with MySQL more productive. There you can also find
information about mailing lists for MySQL discussion.
Remember to check the platform specific part of the reference manual for
hints about installing MySQL on your platform. Also have a look at the
files in the Docs directory.
Thank you for choosing MySQL!
# make
編譯的時間可能會比較長,畢竟優(yōu)化的比較厲害。
# make install
編譯安裝完成后執(zhí)行后續(xù)操作:
# useradd mysql //添加 mysql 用戶
# cd /usr/local/mysql
# bin/mysql_install_db --user=mysql
# chown -R root:mysql . //設(shè)置權(quán)限,注意后面有一個 "."
# chown -R mysql /var/lib/mysql //設(shè)置 mysql 目錄權(quán)限
# chgrp -R mysql . //注意后面有一個 "."
# cp share/mysql/my-medium.cnf /etc/my.cnf
# cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld //開機(jī)自動啟動 mysql。
# chmod 755 /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
#添加LIB PATH
echo "/usr/local/mysql/lib" >> /etc/ld.so.conf && ldconfig
vi /etc/my.cnf
修改 MySQL 配置,增加部分優(yōu)化參數(shù),如下:
[mysqld]
ft_min_word_len=2
運行以下命令即可啟動 MySQL 服務(wù)器:
# /etc/rc.d/init.d/mysqld start //啟動 MySQL
# bin/mysqladmin -u root password "password_for_root"
# service mysqld stop //關(guān)閉 MySQL

8. 編譯安裝 Apache
# cd /usr/local/src
# wget http://www.ip97.com/apache.org/httpd/httpd-2.2.6.tar.gz
# tar zxvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
先依次安裝apr和apr-util
# cd srclib/apr
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/apr --enable-threads --enable-other-child --enable-static
# make && make install
# cd ../apr-util
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-mysql=/usr/local/mysql
# make && make install
cd /usr/local/src/httpd-2.2.6
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --with-mysql=/usr/local/mysql --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-htpasswd --enable-static-htdigest --enable-static-rotatelogs --enable-static-logresolve --enable-static-htdbm --enable-static-ab --enable-static-checkgid --disable-cgid --disable-cgi --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --enable-ssl --with-ssl=/usr/include/openssl --with-pcre
# make
# make install
注解:
./configure //配置源代碼樹
--prefix=/usr/local/apache2 //體系無關(guān)文件的頂級安裝目錄PREFIX ,也就Apache的安裝目錄。
--enable-module=so //打開 so 模塊,so 模塊是用來提 DSO 支持的 apache 核心模塊
--enable-mods-shared=all //編譯全部的模板,對于不需要我們可以在httpd.conf去掉。
--enable-cache //支持緩存
--enable-file-cache //支持文件緩存
--enable-mem-cache //支持記憶緩存
--enable-disk-cache //支持磁盤緩存
--enable-static-support //支持靜態(tài)連接(默認(rèn)為動態(tài)連接)
--enable-static-htpasswd //使用靜態(tài)連接編譯 htpasswd - 管理用于基本認(rèn)證的用戶文件
--enable-static-htdigest //使用靜態(tài)連接編譯 htdigest - 管理用于摘要認(rèn)證的用戶文件
--enable-static-rotatelogs //使用靜態(tài)連接編譯 rotatelogs - 滾動 Apache 日志的管道日志程序
--enable-static-logresolve //使用靜態(tài)連接編譯 logresolve - 解析 Apache 日志中的IP地址為主機(jī)名
--enable-static-htdbm //使用靜態(tài)連接編譯 htdbm - 操作 DBM 密碼數(shù)據(jù)庫
--enable-static-ab //使用靜態(tài)連接編譯 ab - Apache HTTP 服務(wù)器性能測試工具
--enable-static-checkgid //使用靜態(tài)連接編譯 checkgid
--disable-cgid //禁止用一個外部 CGI 守護(hù)進(jìn)程執(zhí)行CGI腳本
--disable-cgi //禁止編譯 CGI 版本的 PHP
--enable-ssl // 編譯 ssl模塊。
我們不再使用worker模式編譯apache,worker模式和php貌似有一些不協(xié)調(diào)不穩(wěn)定之處。所以使用了默認(rèn)的perfork模式。
將apache設(shè)置成開機(jī)自啟動:
在/etc/rc.d/rc.local文件中加入一行
/usr/local/apache2/bin/apachectl start
這樣每次重新啟動系統(tǒng)以后,apache也會隨系統(tǒng)一起啟動.
或者將apache安裝為系統(tǒng)服務(wù)
# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
然后 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)
# chkconfig: 2345 50 90
# description: Activates/Deactivates Apache Web Server
最后,運行chkconfig把Apache添加到系統(tǒng)的啟動服務(wù)組里面:
# chkconfig --add httpd
# chkconfig httpd on

9、編譯php 5.2.5
Suhosin是php增強型安全補丁,可以編譯到靜態(tài)內(nèi)核中,也可以編譯成php動態(tài)擴(kuò)展。我個人強烈你建議安裝成靜態(tài)內(nèi)核。Suhosin已經(jīng)進(jìn)入 Gentoo Linux、FreeBSD、OpenSuSE Linux、Mandriva Linux、Debian Linux官方包。下面的以下先說靜態(tài)安裝步驟。當(dāng)然你也可以在安裝php后將它編譯成php的動態(tài)擴(kuò)展。
# cd /usr/local/src
# wget http://cn.php.net/get/php-5.2.5.tar.gz/from/this/mirror
wget http://www.hardened-php.net/suhosin/...9.6.2.patch.gz
# tar zxvf php-5.2.5.tar.gz
# gunzip suhosin-patch-5.2.5-0.9.6.2.patch.gz
# cd php-5.2.5
# patch -p 1 -i ../suhosin-patch-5.2.5-0.9.6.2.patch
# ./buildconf --force
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-pear=/usr/share/php --with-zlib-dir --with-bz2 --with-libxml-dir=/usr --with-gd=/usr/local/gd2 --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf=shared,/usr --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc --with-iconv --disable-ipv6 --enable-static --enable-zend-multibyte --enable-inline-optimization --enable-zend-multibyte --enable-sockets --enable-soap --with-openssl --with-gettext --enable-suhosin
配置成功會提示:
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
# make
# make test
# make install
# cp php.ini-recommended /etc/php.ini
# echo "/usr/local/php/lib" >> /etc/ld.so.conf && ldconfig
在這里也順便說一下將suhosin安裝成為php的動態(tài)擴(kuò)展的方法。畢竟網(wǎng)上根本不見它的中文安裝教程。
雖然我個人不推薦這種方式。
wget http://www.hardened-php.net/suhosin/...sin-0.9.20.tgz
tar zxvf suhosin-0.9.20.tgz
cd suhosin-0.9.20
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
會提示編譯的模塊存在的目錄,記住它。
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20060613/
然后在php.ini中增加一行下列語句。
extension="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/suhosin.so"

10、整合apache 與php
# vi /usr/local/apache2/conf/httpd.conf
在最后一行加上:
AddType application/x-httpd-php .php
查找:(設(shè)置 WEB 默認(rèn)文件)
DirectoryIndex index.html
修改為:
DirectoryIndex index.php index.html index.htm
找到這一段:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride none
更改為AllowOverride all
允許apache rewrite
保存httpd.conf,退出。
# /usr/local/apache2/bin/apachectl restart //重啟 Apache
這時會出現(xiàn)錯誤:
/usr/local/apache2/bin/apachectl start
httpd: Syntax error on line 107 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
不急,我們慢慢解決。
這個Permission denied問題,在centos 5下面一般是Selinux引起的,作為生產(chǎn)用服務(wù)器,我建議你千萬別草率地關(guān)掉Selinux一了百了。就像家里的防盜網(wǎng),阻礙了你的貓自由進(jìn)出窗戶,你不能為了貓方便,就把防盜網(wǎng)簡單拆除是同樣的道理。我看見網(wǎng)上許多人建議把Selinux簡單關(guān)閉來解決這個問題,這是削足適履的做法,不值得提倡。
我們可以這樣操作:
# audit2allow -a //查看究竟問題出在什么地方

allow unconfined_t usr_t:file execmod;
allow useradd_t var_log_t:file { read write };
然后
# cd /etc/selinux/targeted/modules/
# audit2allow -M local -d
屏幕產(chǎn)生如下提示:
Generating type enforcment file: local.te
Compiling policy
checkmodule -M -m -o local.mod local.te
semodule_package -o local.pp -m local.mod
******************** IMPORTANT ***********************
In order to load this newly created policy package into the kernel,
you are required to execute
semodule -i local.pp
我們運行
# semodule -i local.pp
這樣就讓Selinux加載了新的規(guī)則。
更詳細(xì)的內(nèi)容請看我在BLOG上的轉(zhuǎn)貼:
http://www.cnprint.org/bbs/blogs/1/blog48.html
重啟apache
哈哈,apache不會再報錯了吧?
這樣我保留了selinux的功能,同時apache也能正常運行。
PHP5.1.x開始需要設(shè)置時區(qū),默認(rèn)時區(qū)與中國時區(qū)差8個小時,這種情況需要在php.ini中這么設(shè)置,找到date.timezone,去掉前面的分號,修改為以下值,大陸地區(qū)可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為重慶,上海,烏魯木齊)
不然一些php程序的時間老是和中國標(biāo)準(zhǔn)時間相差8個小時。我的我的VBB論壇在windows上就是這樣。這兒有亞洲地區(qū)的對應(yīng)時區(qū)。
http://www.php.net/manual/en/timezones.asia.php
11、安裝 Zend Optimizer
# cd /usr/local/src
# wget http://downloads.zend.com/optimizer/...21-i386.tar.gz
# tar xzvf ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz
# ./ZendOptimizer-3.3.0-linux-glibc21-i386/install.sh
按照它的提示一步步進(jìn)行就行了。
總之一句話。如果你的服務(wù)器環(huán)境不需要ZendOptimizer,那么能不安就不安裝這個。避免和eaccelerator沖突。
12. 查看確認(rèn) L.A.M.P 環(huán)境信息
vi /usr/local/apache2/htdocs/phpinfo.php
新增加下面一行,并保存。

# chmod 755 /usr/local/apache2/htdocs/phpinfo.php
用瀏覽器打開 http://192.168.9.150/phpinfo.php
檢查 phpinfo中的各項信息是否正確。
測試php與mysql的連接
# vi /usr/local/apache2/htdocs/testdb.php
增加下面幾行,并保存。
$link=mysql_connect('localhost','root','yourpassword');
if(!$link) echo "fail";
else echo "success";
mysql_close();
?>
# chmod 755 /usr/local/apache2/htdocs/testdb.php
# service mysqld start
用瀏覽器打開 http://192.168.9.150/testdb.php
如果輸出success就OK了
到這一步,一個基本的lamp就建立完成了。如果你是初學(xué)者,下面的步驟根據(jù)需要參考,不必全部照做,記住一句話,功能越多,越容易出錯,在任何領(lǐng)域都是這樣。

三、LAMP環(huán)境加速,包括squid, memcache, eaccelerator
13、安裝eaccelerator
eaccelerator是php的加速軟件,使用后php的執(zhí)行效率會有較大幅度的提升。目前eaccelerator 0.9.5.2已經(jīng)和ZendOptimizer-3.3.0能夠基本上兼容啦。不過我個人覺得,ZendOptimizer-3.3.0沒有加速的功能,反而使php運行變慢,只是起到了運行zend加密文件的作用而已。閑話不多說了,大家有興趣的,可以去google下。
# cd /usr/local/src
# wget http://bart.eaccelerator.net/source/....9.5.2.tar.bz2
# tar -jxvf eaccelerator-0.9.5.2.tar.bz2
# cd eaccelerator-0.9.5.2
export PHP_PREFIX="/usr/local/php"
$PHP_PREFIX/bin/phpize //指定一下php的目錄
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config --with-eaccelerator-shared-memory // 設(shè)置
# make & make install
編譯安裝后我們會看到屏幕提示的eaccelerator.so所在的目錄,php5.2.X系列是在 /usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so,記住這個路徑,待會要用到。
修改php.ini(安裝完zend之后,php.ini存放于/usr/local/Zend/etc)
在文件最后,zend之前,注意,這部分內(nèi)容務(wù)必放在zend之前,不然可能會出現(xiàn)不可預(yù)期的服務(wù)器問題。添加下列信息:
[eaccelerator]
extension="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
然后
# mkdir /tmp/eaccelerator // 建立目錄
# chmod 0777 /tmp/eaccelerator // 修改目錄屬性
解釋:
zend_extension 是安裝完程序自動指示給我們的文件路徑和文件名
如果您使用 thread safe 編譯安裝 PHP,則您必須使用 “zend_extension_ts” 代替 默認(rèn)添加的“zend_extension”。我就必須修改這里,否則不起作用。
zend_extension_ts="/home/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"
實際上,安裝好eAccelerator以后, /home/php/lib/php/extensions/下會生成2個目錄,一個是no-debug-zts-xxxxxxxx,一個是no- debug-non-zts-xxxxxxxx,2個目錄下都有eaccelerator.so文件。
eaccelerator.shm_size="32"
eAccelerator 可以使用的共享內(nèi)存的數(shù)量 (以兆為單位) . "0" 是指操作系統(tǒng)的默認(rèn)值. 默認(rèn)值是 "0".可根據(jù)服務(wù)器的實際情況來調(diào)整,16,32,64,128都是可以的。
eaccelerator.cache_dir="/home/php/tmp"
這個目錄是給磁盤緩存使用. eAccelerator 在這里儲存預(yù)先編譯好的代碼, 進(jìn)程數(shù)據(jù), 內(nèi)容以及用戶的自定義內(nèi)容. 同樣的數(shù)據(jù)也能被儲存在共享內(nèi)存中 (這樣可以提高訪問速度). 默認(rèn)的設(shè)置是 "/tmp/eaccelerator".
eaccelerator.enable="1"
開啟或關(guān)閉 eAccelerator。”1″ 為開啟,”0″ 為關(guān)閉。默認(rèn)值為 “1″。
eaccelerator.optimizer="1"
啟或關(guān)閉內(nèi)部優(yōu)化器,可以提升代碼執(zhí)行速度。”1″ 為開啟,”0″ 為關(guān)閉。默認(rèn)值為 “1″。
eaccelerator.check_mtime="1"
打開或者關(guān)閉 PHP 的文件修改檢查. "1" 是指打開, "0" 是指關(guān)閉. 如果您在修改以后重新編譯 PHP 的文件,那么您應(yīng)當(dāng)設(shè)置為 "1". 默認(rèn)值是 "1".
eaccelerator.debug="0"
開啟或關(guān)閉調(diào)試日志記錄。”1″ 為開啟,”0″ 為關(guān)閉。默認(rèn)值為 “0″。
eaccelerator.filter=""
判斷哪些 PHP 文件必須緩存。您可以指定緩存和不緩存的文件類型(如 “*.php *.phtml”等)
如果參數(shù)以 “!” 開頭,則匹配這些參數(shù)的文件被忽略緩存。默認(rèn)值為 “”,即,所有 PHP 文件
都將被緩存。
eaccelerator.shm_max="0"
當(dāng)使用 ” eaccelerator_put() ” 函數(shù)時禁止其向共享內(nèi)存中存儲過大的文件。該參數(shù)指定允許
存儲的最大值,單位:字節(jié) (10240, 10K, 1M)。”0″ 為不限制。默認(rèn)值為 “0″。
eaccelerator.shm_ttl="0"
當(dāng) eAccelerator 獲取新腳本的共享內(nèi)存大小失敗時,它將從共享內(nèi)存中刪除所有在
最后 “shm_ttl” 秒內(nèi)無法存取的腳本緩存。默認(rèn)值為 “0″,即:不從共享內(nèi)春中刪除
任何緩存文件。
eaccelerator.shm_prune_period="0"
當(dāng) eAccelerator 獲取新腳本的共享內(nèi)存大小失敗時,他將試圖從共享內(nèi)存中刪除早于
“shm_prune_period” 秒的緩存腳本。默認(rèn)值為 “0″,即:不從共享內(nèi)春中刪除
任何緩存文件。
eaccelerator.shm_only="0"
允許或禁止將已編譯腳本緩存在磁盤上。該選項對 session 數(shù)據(jù)和內(nèi)容緩存無效。默認(rèn)
值為 “0″,即:使用磁盤和共享內(nèi)存進(jìn)行緩存。
eaccelerator.compress="1"
允許或禁止壓縮內(nèi)容緩存。默認(rèn)值為 “1″,即:允許壓縮。
eaccelerator.compress_level="9"
指定內(nèi)容緩存的壓縮等級。默認(rèn)值為 “9″,為最高等級。
最后重新啟動apachectl
重啟apache,phpinfo顯示:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with Zend Extension Manager v1.0.11, Copyright (c) 2003-2006, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2006, by Zend Technologies
也會有eAccelerator的具體信息。

14、安裝Squid,提供web反向代理緩存
Squid是一個更專業(yè)的代理服務(wù)器,性能和效率會比Apache的mod_proxy高很多。
Squid Internet Object Cache (Harvest Project的后續(xù)版本) 是美國政府大力助的一項研究計劃,其目的為解決網(wǎng)絡(luò)帶寬不足的問題,是現(xiàn)在Unix系統(tǒng)上使用者最多功能也最完整的一套軟體。Apache和 Netscape雖附有相關(guān)的Proxy模塊,但因其功能簡單而不夠普及。有關(guān)squid的詳細(xì)說明可到squid網(wǎng)站(http: //www.squid-cache.org)查詢。
反向代理是和前兩種代理完全不同的一種代理服務(wù)。使用它可以降低原始WEB服務(wù)器的負(fù)載。反向代理服務(wù)器承擔(dān)了對原始WEB服務(wù)器的靜態(tài)頁面的請求,防止原始服務(wù)器過載。它位于本地WEB服務(wù)器和Internet之間,處理所有對WEB服務(wù)器的請求,組織了WEB服務(wù)器和Internet的直接通信。如果互聯(lián)網(wǎng)用戶請求的頁面在代理服務(wù)器上有緩沖的話,代理服務(wù)器直接將緩沖內(nèi)容發(fā)送給用戶。如果沒有緩沖則先向WEB服務(wù)器發(fā)出請求,取回數(shù)據(jù),本地緩存后再發(fā)送給用戶。這種方式通過降低了向WEB服務(wù)器的請求數(shù)從而降低了WEB服務(wù)器的負(fù)載。
下載squid
# wget http://www.squid-cache.org/Versions/...ABLE16.tar.bz2
# tar jxvf squid-2.6.STABLE16.tar.bz2
# cd squid-2.6.STABLE16
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/squid --enable-async-io=500 --with-maxfd=65536 --disable-delay-pools --disable-mem-gen-trace --disable-useragent-log --enable-kill-parent-hack --disable-arp-acl --enable-epoll --disable-ident-lookups --enable-snmp --enable-large-cache-files --with-large-files --with-pthreads --enable-underscore --enable-storeio="aufs,coss,diskd,ufs" --enable-err-language="Simplify_Chinese" --enable-default-err-languages="Simplify_Chinese"
# make && make install
如果是2.6的內(nèi)核,才能支持epoll的IO模式,舊版本的內(nèi)核則只能選擇poll或其他模式了;另外,記得帶上支持大文件的選項,否則在access log等文件達(dá)到2G的時候就會報錯。
設(shè)定 squid 的配置大概如下內(nèi)容:
# mv /usr/local/squid/etc/squid.conf /usr/local/squid/etc/squid.conf.bak
# vi /usr/local/squid/etc/squid.conf
#服務(wù)器IP 192.168.9.150
#監(jiān)聽服務(wù)器的80端口,反向代理,支持域名和IP的虛擬主機(jī)
http_port 192.168.9.150:80 vhost vport
#防止天涯盜鏈,轉(zhuǎn)嫁給百度
acl tianya referer_regex -i tianya
http_access deny tianya
deny_info

tianya
#防止百度機(jī)器人爬死服務(wù)器,這將導(dǎo)致百度不能收錄你的網(wǎng)站內(nèi)容,請注意
acl AntiBaidu req_header User-Agent Baiduspider
http_access deny AntiBaidu
#Squid信息設(shè)置
visible_hostname www.cnprint.org
cache_mgr admin@cnprint.org
#squid使用的用戶組和用戶名
cache_effective_user nobody
cache_effective_group nobody
tcp_recv_bufsize 65535 bytes
client_persistent_connections off
server_persistent_connections on
half_closed_clients off
#單臺使用,不使用該功能
icp_port 0
#設(shè)置Squid所能使用的內(nèi)存共40MB,這個值因人而異,每次處理緩存大小為40MB,當(dāng)緩存空間使用達(dá)到95%時新的內(nèi)容將取代舊的而不直接添加到目錄中,直到空間又下降到90%才停止這一活動
cache_mem 40 MB
cache_swap_low 90
cache_swap_high 95
#最大緩存文件大小,超過這個值則不緩存,這個值因人而異,maximum_object_size_in_memory #裝入內(nèi)存緩存的文件大小,這個值對Squid的性能影響比較大,因為默認(rèn)值是8K,超過8K的文件都不裝入內(nèi)存,而實際應(yīng)用中很多網(wǎng)頁和圖片等都超過 8KB, 個人認(rèn)為如果緩存不裝入內(nèi)存而存在磁盤上,性能和apache直接讀取磁盤文件沒什么區(qū)別,甚至不如直接訪問apache,現(xiàn)在設(shè)置成小于4兆的文件通通裝入內(nèi)存緩存.
maximum_object_size 4096 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 4096 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95
cache_replacement_policy lru
memory_replacement_policy lru
#磁盤緩存的類型和目錄,大小,一二級目錄的設(shè)置,這里磁盤緩存大小是100MB,都是 16*256 級子目錄
cache_dir ufs /usr/local/squid/var/cache 100 16 256
#這個設(shè)置是不記錄store.log
cache_store_log none
#設(shè)置默認(rèn)刷新規(guī)則
refresh_pattern -i ^ftp: 1440 20% 10080
refresh_pattern -i ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
#不要相信ETag 因為有g(shù)zip
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
#設(shè)置超時策略
forward_timeout 20 seconds
connect_timeout 15 seconds
read_timeout 3 minutes
request_timeout 1 minutes
persistent_request_timeout 15 seconds
client_lifetime 15 minutes
shutdown_lifetime 5 seconds
negative_ttl 10 seconds
#打開emulate_httpd_log選項,將使Squid仿照Aapche的日志格式
emulate_httpd_log on
#日志格式combined的設(shè)置
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs % #這里是設(shè)置pid和日志文件的位置,因人而異,同時日志格式是combined,awstats可以直接調(diào)用分析了
pid_filename /usr/local/squid/var/squid.pid
cache_log /usr/local/squid/var/logs/cache.log
access_log /usr/local/squid/var/logs/access.log combined
#設(shè)置不想緩存的目錄或者文件類型
acl all src 0.0.0.0/0.0.0.0
acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
#2.6的反向代理加速配置
#代理到本機(jī)的80端口的服務(wù),僅僅做為原始內(nèi)容服務(wù)器
cache_peer 127.0.0.1 parent 80 0 no-query originserver login=PASS
#錯誤文檔
error_directory /usr/local/squid/share/errors/Simplify_Chinese
保存。
mkdir /usr/local/squid/var/cache
chown -R nobody:nobody /usr/local/squid/var/cache
chown -R nobody:nobody /usr/local/squid/var/logs/
chmod 777 /usr/local/squid/var/cache
修改httpd.conf
初始化和啟動squid
# /usr/local/squid/sbin/squid -z
# /usr/local/squid/sbin/squid -NCd1
第一條命令是先初始化squid緩存哈希子目錄,只需執(zhí)行一次即可。
最好還編輯/etc/hosts 文件
添加以下內(nèi)容
192.168.9.150 cnprint.org www cnprint.org
這樣免去查詢DNS,速度也快一些。
現(xiàn)在大家肯定急著要打開瀏覽器訪問你的網(wǎng)站看看效果吧,其實沒啥變化,要等到有流量訪問,squid把文件都裝到內(nèi)存后,效果才明顯??梢杂胻op命令觀察squid的內(nèi)存使用情況或者用
cat /usr/local/squid/var/logs/access.log |grep TCP_MEM_HIT
如果看到很多的TCP_MEM_HIT ,這表明該文件是從內(nèi)存緩存讀取的,squid已經(jīng)起作用了!你再用瀏覽器打開該文件,應(yīng)該是快如閃電了。。呵呵,大功告成了!還有其他類型的HIT,如 TCP_HIT等等,這些是從磁盤讀取的,我覺得加速的意義不大,只不過緩解了apache的壓力而已。
3. 啟動squid:./bin/RunCache &
這邊我使用squid附帶的啟動腳本來啟動squid,有個好處就是,如果squid的進(jìn)程死了的話,這個腳本會自動啟動squid,對于運行在線上的服務(wù)器來說,這點太重要了。
開機(jī)自動運行squid
修改開機(jī)自動運行文件,將 /usr/local/squid/bin/RunCache & 加進(jìn)開機(jī)自動執(zhí)行的程序中。
因為第一次是以 root 身份啟動,所以,/usr/local/squid/var/squid.out 及 /usr/local/squid/var/squid.pid 的擁有者是 root ,這會造成下列以 nobody 身份啟動 squid 時,會有錯誤出現(xiàn),所以,必須在第二次由 rc.local 啟動前,先行將 squid.out 及 squid.pid 兩個文件的所有者(owner)改為 nobody,即是
chown nobody:nobody /usr/local/squid/var/squid.out
chown nobody:nobody /usr/local/squid/var/logs/squid.pid
在 /etc/rc.d/rc.local 中加入
/usr/local/squid/bin/RunCache &

15、memcache + libevent 安裝
memcached是一個高性能的分布式的內(nèi)存對象緩存系統(tǒng),通過在內(nèi)存里維護(hù)一個統(tǒng)一的巨大的hash表,它能夠用來存儲各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫檢索的結(jié)果等。最初為了加速 LiveJournal 訪問速度而開發(fā)的,后來被很多大型的網(wǎng)站采用。起初作者編寫它可能是為了提高動態(tài)網(wǎng)頁應(yīng)用,為了減輕數(shù)據(jù)庫檢索的壓力,來做的這個緩存系統(tǒng)。它的緩存是一種分布式的,也就是可以允許不同主機(jī)上的多個用戶同時訪問這個緩存系統(tǒng),這種方法不僅解決了共享內(nèi)存只能是單機(jī)的弊端,同時也解決了數(shù)據(jù)庫檢索的壓力,最大的優(yōu)點是提高了訪問獲取數(shù)據(jù)的速度!基于memcached作者對分布式cache的理解和解決方案。 memcached完全可以用到其他地方比如分布式數(shù)據(jù)庫,分布式計算等領(lǐng)域。
Memcache是danga.com的一個項目,最早是為 LiveJournal 服務(wù)的,目前全世界不少人使用這個緩存項目來構(gòu)建自己大負(fù)載的網(wǎng)站,來分擔(dān)數(shù)據(jù)庫的壓力。(關(guān)于Memcache的更多信息請Google)
Memcache官方網(wǎng)站:http://www.danga.com/memcached
服務(wù)器端主要是安裝memcache服務(wù)器端,目前的最新版本是 memcached-1.2.3。
另外,Memcache用到了libevent這個庫用于Socket的處理,所以還需要安裝libevent,libevent的最新版本是libevent-1.3e。(如果你的系統(tǒng)已經(jīng)安裝了libevent,可以不用安裝)
官網(wǎng):http://www.monkey.org/~provos/libevent/
(1)、安裝memcached服務(wù)器端
編譯安裝:
# cd /usr/local/src
# wget http://monkey.org/~provos/libevent-1.3e.tar.gz
# tar zxvf libevent-1.3e.tar.gz
# cd libevent-1.3e
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local && make && make install
# echo "/usr/local/lib" >> /etc/ld.so.conf && ldconfig
# cd ../
# wget http://www.danga.com/memcached/dist/...d-1.2.3.tar.gz
# tar zxvf memcached-1.2.3.tar.gz
# cd memcached-1.2.3
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local
# make && make install
備注:如果 libevent 不是安裝在 /usr 目錄下,那么需要把 libevent-1.3e.so.1 拷貝/鏈接到 /usr/lib 中,否則 memcached 有可能無法正常加載。
(2)、安裝php對memcache支持模塊
安裝php-memcache模塊,這是memcache的php客戶端,php-memcache需要pecl庫的支持。
# cd /usr/local/src
# wget http://pecl.php.net/get/memcache-2.2.0.tgz
# tar zxvf memcache-2.2.0.tgz
#cd memcache-2.2.0
#export PHP_PREFIX=/usr/local/php
#$PHP_PREFIX/bin/phpize
#CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -Wall -W -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer" ./configure --enable-memcache --with-zlib-dir --with-php-config=$PHP_PREFIX/bin/php-config
#make && make install
修改php.ini
在最末尾增加一行:
extension="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/memcache.so"
運行以下命令來啟動 memcached:
#/usr/local/memcached/bin/memcached /
-l 192.168.9.139 -d -p 11211 -u nobody -m 128
表示用 daemon 的方式啟動 memcached,監(jiān)聽在 192.168.9.19 的 11211 端口上,運行用戶為 nobody,為其分配 128MB 的內(nèi)存。
這時查看一下進(jìn)程,看memcached啟動成功沒有。
top -U nobody
可以看到
5867 nobody 15 0 2352 684 276 S 0.0 0.1 0:00.00 memcached
說明 memcached安裝成功,并正在運行。
設(shè)置成開機(jī)自動運行
在 /etc/rc.d/rc.local 中加入
/usr/local/memcached/bin/memcached -l 192.168.9.150 -d -p 11211 -u nobody -m 128

四、附加功能配置, 包括ssl, mysqlhotcopy, phpmyadmin

15、安裝DBI和DBD for mysql

//用于提供perl訪問mysql數(shù)據(jù)庫的接口規(guī)范,請確認(rèn)你已經(jīng)安裝了perl,一般默認(rèn)系統(tǒng)都裝上了。
因為我們要用到mysqlhotcopy功能,需要這兩個小程序的支持。
# wget http://mirrors.xueron.com/CPAN/autho...I-1.601.tar.gz
首先,安裝DBI包:
# tar zxvf DBI-1.061.tar.gz
# cd DBI-1.061
# perl Makefile.PL
# make
# make test
# make install

wget http://search.cpan.org/CPAN/authors/...l-4.005.tar.gz
# tar zxvf DBD-mysql-4.005.tar.gz
# cp /usr/local/mysql/lib/mysql/libmysqlclient.so.15 /usr/lib/
# perl Makefile.PL --libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -L/usr/lib -lz " --cflags=-I/usr/local/mysql/include/mysql --mysql_config=/usr/local/mysql/bin/mysql_config --testhost=127.0.0.1--testsocket=/tmp/mysql.sock --testdb=test --testuser=root --testpassword="youpassword"
# make
# make test
# make instll
測試執(zhí)行 mysqlhotcopy 国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产三区在线观看| 国产中文字幕网| 高清av中文在线字幕观看1| 在线中文字幕第一页| 国产精品久久一区二区三区不卡| 国产在线三区| 尤物视频网站在线观看| 国产偷倩在线播放| 国产成人夜间影院在线观看| 97影院理论午夜| 国产精品伦一区二区三区级视频频 | 国产高清在线观看| 国产高清免费视频| jizz亚洲大全| 国产网站av| 白浆爆出在线观看| 国产男女无套在线播放| 国产精品久久麻豆| 国产特级淫片免费看| 日本中文字幕在线看| 国产极品美女到高潮| 国产视频1区| 18av在线视频| 懂色av一区| 亚洲欧美精选| 国产一二区在线| 欧美视频免费一区二区三区| 中文字幕在线视频免费观看| 亚洲夜夜综合| 国产经典av| 国产视频精选在线| 欧美午夜电影一区二区三区| 国产精品美女一区二区视频| 免费观看久久久久| 精品国产丝袜高跟鞋| 国产丝袜护土调教在线视频| 在线看黄色av| 97影院理论午夜| 中文字幕不卡| 国产一区二区三区四区尤物| www.色五月| 亚洲精品aaaa精品| av手机免费观看| 在线午夜影院| 中文av在线播放| 国产精品国产三级国产试看| 国产美女一区视频| 全网国产福利在线播放| 夜夜爽视频导航| 一本免费视频| av中文在线资源| av网站大全在线| 亚洲精品午夜级久久久久| 国产高清在线| 91最新在线| 亚洲大香人伊一本线| 色欧美在线观看| 免费日本黄色| 国产麻豆精品视频一区二区| 久热精品视频在线播放| 国产69精品久久app免费版| 狠狠色丁香婷婷| 在线观看精品一区二区三区| 午夜影院在线免费观看| 91免费日韩| 日本欧洲一区| 青青青手机在线视频观看| 亚洲大香人伊一本线| av中文天堂在线| 人成在线免费视频| 五月婷婷开心综合| 在线三级av| 男人天堂亚洲| 国产素人视频在线观看| 国产porn在线| 精品三级久久久久久久电影聊斋| 欧美性受xxxx免费视频| 秋霞av在线| 国产视频福利| 日p在线观看| 国产一区精品| 中文天堂av| 91sp网站在线观看入口| 69免费视频| 国产九色视频| 轻轻色免费在线视频| 国产va在线| 成视频年人免费看黄网站| 在线观看中文| 国产一起色一起爱| 黄色在线视频观看网站| 夜夜操天天干| 91麻豆精品国产91久久| 国内自拍视频在线观看| av在线资源网| 精品视频在线一区二区| 毛片视频免费观看| 亚洲综合在线不卡| 国产黄色免费在线观看| 好男人社区在线视频| av网址在线播放| 精精国产xxxx视频在线| 中中文字幕av在线| 天堂在线中文| 尤物视频在线免费观看| 丁香花在线电影小说观看| 欧美日韩久久中文字幕| eeuss在线观看| wwww在线观看| 女人色在线免费视频| 日本视频在线| 亚洲欧美小说国产图片| 亚洲综合在线网| 亚洲永久免费网站| 人人澡人人爽| 激情视频国产| 国产小视频免费在线网址| 日本中文字幕在线看| 国产精品一区在线看| 88av在线| 国产夫妻视频| 日本在线视频www鲁啊鲁| 日本不卡影院| 国产女人在线视频| 18av在线视频| www.操.com| 国产美女福利在线观看| 国产亚洲精品午夜高清影院| 国产精品白浆流出视频| 精精国产xxxx视频在线中文版 | 国产馆av播放| 亚洲大香人伊一本线| 久热免费在线视频| 国产卡一卡二卡三| av大片在线播放| 国产免费一级| 中文字幕av在线| 天堂资源中文在线| eeuss影院www在线播放| 中文字幕在线看精品乱码| 国产欧美日韩精品综合| 在线观看中文字幕的网站| 国产中文伊人| 亚洲欧洲成人| 国产成人亚洲综合小说区| 免费午夜一级| 99色在线观看| 国产精品冒白浆免费视频| 免费观看一二区视频网站| 国产福利在线免费观看| 交视频在线观看国产| 97国产在线| 国产一级性片| 激情综合网五月激情| 在线欧美一级视频| 国产一区二区三区四区尤物| 日本成人a视频| 亚洲欧美日韩成人网| 国产特级淫片免费看| 成 人免费视频播放| 在线一二三区| 69国产精品| 国产对白国语对白| 国产精品合集一区二区| 国产免费高清| 天天操天天操天天色天天要| 黄色免费av| 国产美女视频网站| 国产精品亚洲第五区在线| 欧美高清xxxx性| 性网站在线播放| av在线播放网| 久热中文字幕| 九九久久久2| 中文字幕视频在线| 国产福利资源| 亚洲欧美精品日韩欧美| 日本在线天堂| 成年人在线观看| 国产黄色免费| eeuss影院在线| 高清视频一区二区三区四区| 国产乱人视频免费播放| 国产理论电影在线观看| 天天操天天射天天色| 天天av天天爱| 国产精品18久久久久久久久久| 国产对白在线| 秋霞av在线| 国产一级片网站| 亚洲欧美日韩成人网| 成年女人在线视频| 国产日韩网站| 日本h视频在线观看| 中文字幕在线免费看| av丝袜在线| 国产区视频在线| 免费看ww视频网站入口| 国产区在线视频| 玖玖在线视频|