手把手教你httpd + mysql+ php 編譯安裝過程

手把手教你httpd  + mysql+ php 編譯安裝過程 php

一:編譯安裝apache html

首先解決依賴關係 mysql

httpd-2.4.4須要較新版本的aprapr-util,所以須要事先對其進行升級。升級方式有兩種,一種是經過源代碼編譯安裝,一種是直接升級rpm包。這裏選擇使用編譯源代碼的方式進行,它們的下載路徑爲ftp://172.16.0.1/pub/Sources/new_lamp linux

ftp://172.16.0.1/pub/Sources/new_lamp sql

先下載:1mget apr-1.4.6.tar.bz2 apr-util-1.4.1.tar.bz2 httpd-2.4.4.tar.bz2這三個軟件包 apache

由於三個軟件包有依賴關係三個軟件包安裝順序apr --> apr-util -->httpvim

(1) 編譯安裝apr 安全

把 apr-1.4.6.tar.bz2軟件包解壓到當前位置: tar xf apr-1.4.6.tar.bz2 bash

進入aprcd 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、輸出mysqlman手冊至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,整合phpxcache

首先將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>

相關文章
相關標籤/搜索