手把手教你httpd + mysql+ php 編譯安裝過程
一:編譯安裝apache
首先解決依賴關係
httpd-2.4.4須要較新版本的apr和apr-util,所以須要事先對其進行升級。升級方式有兩種,一種是經過源代碼編譯安裝,一種是直接升級rpm包。這裏選擇使用編譯源代碼的方式進行,它們的下載路徑爲ftp://172.16.0.1/pub/Sources/new_lamp。
ftp://172.16.0.1/pub/Sources/new_lamp。
先下載:1、mget apr-1.4.6.tar.bz2 apr-util-1.4.1.tar.bz2 httpd-2.4.4.tar.bz2這三個軟件包
由於三個軟件包有依賴關係三個軟件包安裝順序爲:apr --> apr-util -->httpvim
(1) 編譯安裝apr
把 apr-1.4.6.tar.bz2軟件包解壓到當前位置: tar xf apr-1.4.6.tar.bz2
進入apr:cd apr-1.4.6
安裝三步驟:一:配置:/configure --prefix=/usr/local/apr
二:編譯:make
三:安裝 make install
(2) 編譯安裝apr-util,跟安裝apr的步驟同樣
把apr-util-1.4.1.tar.bz2軟件包解壓到當前目錄中:tar xf apr-util-1.4.1.tar.bz2
進入: cd apr-util-1.5.2
安裝三步驟:一:配置:./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
二:編譯make
三:安裝make install
2、編譯安裝httpd-2.4.4
httpd-2.4.4編譯過程也要依賴於pcre-devel軟件包,須要事先安裝。此軟件包系統光盤自帶,所以,找到並安裝便可。
把httpd-2.4.4.tar.bz2解壓到當前目錄中:tar xf httpd-2.4.4.tar.bz2
進入: cd httpd-2.4.4
安裝三步驟:一:配置:
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-rewrite --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all 二:編譯:make
三:安裝:make install
三、關閉selinux,編譯這個腳本
3、修改httpd的主配置文件,設置其Pid文件的路徑
編輯/etc/httpd/httpd.conf,添加以下行便可:
PidFile "/var/run/httpd.pid"
4、提供SysV服務腳本/etc/rc.d/init.d/httpd,內容以下:
#!/bin/bash
#
# 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.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
start() {
echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} -d 10 $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
echo -n $"Reloading $prog: "
if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
RETVAL=$?
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
fi
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f ${pidfile} ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
然後爲此腳本賦予執行權限:
# chmod +x /etc/rc.d/init.d/httpd
加入服務列表:
# chkconfig --add httpd
下面的安裝跟上面有不少類似之處,就再也不
2、安裝mysql-5.5.28
1、先下載mysql-5.5.28-linux2.6.-i686.tar.gz
2、準備數據存放的文件系統
新建一個邏輯卷,並將其掛載至特定目錄便可。這裏再也不給出過程。
這裏假設其邏輯卷的掛載目錄爲/mydata,然後須要建立/mydata/data目錄作爲mysql數據的存放目錄。
3、分區建完以後,要與內核同步一下,要把邏輯卷、物理卷、卷組都弄完以後,要進行格式化
3、新建用戶以安全方式運行進程:
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
# chown -R mysql:mysql /mydata/data
3、安裝並初始化mysql-5.5.28
首先下載平臺對應的mysql版本至本地,這裏是32位平臺,所以,選擇的爲mysql-5.5.28-linux2.6-i686.tar.gz,其下載位置爲ftp://172.16.0.1/pub/Sources/mysql-5.5。
# tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local
# cd /usr/local/
# ln -sv mysql-5.5.28-linux2.6-i686 mysql
# cd mysql
# chown -R mysql:mysql .
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# chown -R root .
4、爲mysql提供主配置文件:
# cd /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf
並修改此文件中thread_concurrency的值爲你的CPU個數乘以2,好比這裏使用以下行:
thread_concurrency = 2
另外還須要添加以下行指定mysql數據文件的存放位置:
datadir = /mydata/data
5、爲mysql提供sysv服務腳本:
# cd /usr/local/mysql
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
添加至服務列表:
# chkconfig --add mysqld
# chkconfig mysqld on
然後就能夠啓動服務測試使用了。
爲了使用mysql的安裝符合系統使用規範,並將其開發組件導出給系統使用,這裏還須要進行以下步驟:
6、輸出mysql的man手冊至man命令的查找路徑:
編輯/etc/man.config,添加以下行便可:
MANPATH /usr/local/mysql/man
7、輸出mysql的頭文件至系統頭文件路徑/usr/include:
這能夠經過簡單的建立連接實現:
# ln -sv /usr/local/mysql/include /usr/include/mysql
8、輸出mysql的庫文件給系統庫查找路徑:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
然後讓系統從新載入系統庫:
# ldconfig
9、修改PATH環境變量,讓系統能夠直接使用mysql的相關命令。具體實現過程這裏再也不給出。
3、編譯安裝php-5.4.13
1、解決依賴關係:
請配置好yum源(能夠是本地系統光盤)後執行以下命令:
# yum -y groupinstall "X Software Development"
若是想讓編譯的php支持mcrypt擴展,此處還須要下載ftp://172.16.0.1/pub/Sources/ngnix目錄中的以下兩個rpm包並安裝之:
libmcrypt-2.5.7-5.el5.i386.rpm
libmcrypt-devel-2.5.7-5.el5.i386.rpm
2、編譯安裝php-5.4.13
首先下載源碼包至本地目錄,下載位置ftp://172.16.0.1/pub/Sources/new_lamp。
# tar xf php-5.4.13.tar.bz2
# cd php-5.4.13
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
# ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqln
# make
# make test
# make intall
爲php提供配置文件:
# cp php.ini-production /etc/php.ini
3、 編輯apache配置文件httpd.conf,以apache支持php
# vim /etc/httpd/httpd.conf
1、添加以下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
2、定位至DirectoryIndex index.html
修改成:
DirectoryIndex index.php index.html
然後從新啓動httpd,或讓其從新載入配置文件便可測試php是否已經能夠正常使用。
4、安裝xcache,爲php加速:
下載xcache-2.0.0.0.tar.bz2軟件包
1、安裝
解壓在當前目錄: tar xf xcache-3.0.1.tar.gz
進入:cd xcache-3.0.1
查看文件:/usr/local/php/bin/phpize
安裝三步驟一:配置:/configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
二:編譯:make
三:安裝:make install
安裝結束時,會出現相似以下行:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
2、編輯php.ini,整合php和xcache:
首先將xcache提供的樣例配置導入php.ini
創建一個文件夾: mkdir /etc/php.d
複製過去: cp xcache.ini /etc/php.d
說明:xcache.ini文件在xcache的源碼目錄中。
接下來編輯/etc/php.d/xcache.ini,找到zend_extension開頭的行,修改成以下行:
zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
注意:若是php.ini文件中有多條zend_extension指令行,要確保此新增的行排在第一位。
5、啓用服務器狀態
mod_status模塊可讓管理員查看服務器的執行狀態,它經過一個HTML頁面展現了當前服務器的統計數據。這些數據一般包括但不限於:
(1) 處於工做狀態的worker進程數;
(2) 空閒狀態的worker進程數;
(3) 每一個worker的狀態,包括此worker已經響應的請求數,及由此worker發送的內容的字節數;
(4) 當前服務器總共發送的字節數;
(5) 服務器自上次啓動或重啓以來至當前的時長;
(6) 平均每秒鐘響應的請求數、平均每秒鐘發送的字節數、平均每一個請求所請求內容的字節數;
啓用狀態頁面的方法很簡單,只須要在主配置文件中添加以下內容便可:
<Location /server-status>
SetHandler server-status
Require all granted
</Location>