編譯安裝LAMP

1、編譯環境及各軟件版本
php

不介紹LAMP了,你懂的。html

如下爲本次編譯環境及各軟件版本:
mysql

linux web服務器 php mysql
CentOS 6.4 httpd-2.4.9 php-5.4.26 mysql-5.5.33-linux2.6-x86_64

wKiom1MyzAOigDHWAAF5zKjyA_Q167.jpg


2、編譯安裝LAMPlinux

   編譯安裝LAMP和安裝其它軟件是同樣的,可是安裝順序是,PHP必須放到最後安裝,安裝apache時要先安裝兩個組件,apr和apr-util。
web

一、編譯安裝apachesql

(1)、安裝httpd必要的組件apr。從httpd的官網下載apr-1.5.0.tar.bz2軟件包,解壓進入目錄,便可開始安裝。數據庫

# tar xf apr-1.5.0.tar.bz2
# cd apr-1.5.0
# ./configure --prefix=/usr/local/apr
# make && make install

wKioL1Mym5vCm-lCAAByfnbH6ko686.jpg

apr安裝成功!apache


(2)、安裝httpd必要的組件apr-util。從httpd的官網下載apr-util-1.5.3.tar.bz2軟件包,解壓進入目錄,便可開始安裝。vim

# tar xf apr-util-1.5.3.tar.bz2
# cd apr-util-1.5.3
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install

wKioL1MynCKD1QHkAABweWM7teI601.jpg

apr-util安裝成功!bash


(3)、編譯安裝httpd-2.4.9。解壓軟件包,進入目錄,設置軟件參數。

httpd-2.4新特性:

1)、MPM支持在運行時裝載:

--enable-mpms-shared=all --with-mpm=event   把全部能啓用的mpm都編譯進來,默認使用event

2)、徹底支持event

3)、異步讀寫

4)、可以實如今每模塊及每目錄上指定日誌級別

5)、每請求配置:<If>, <Elseif>

6)、加強版的表達式分析器

7)、毫秒級的keepalive timeout

8)、基於FQDN的虛擬主機再也不須要NameVirtualHost指令

9)、對內存的佔用下降了

10)、支持使用片定義變量

   11)、新增了一些模塊:mod_proxy_fcgi, mod_ratelimit, mod_request, mod_remoteip。

   12)、對於基於IP的訪問控制作了修改,再也不支持使用order, allow, deny這些機制;而是統一使用require進行。


./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
#各參數說明
--prefix=/usr/local/apache  #指定安裝目錄
--sysconfdir=/etc/httpd     #配置文件目錄
--enable-so                 #支持基於DSO動態加載模塊
--enable-ssl                #支持ssl模塊,便可以使用https協議
--enable-cgi                #支持cgi
--enable-rewrite            #支持url重寫模塊
--with-zlib                 #數據報文壓縮模塊,必需要這個模塊
--with-pcre                 #支持pcre
--with-apr=/usr/local/apr   #指定apr位置
--with-apr-util=/usr/local/apr-util #指定apr-util位置
--enable-modules=most      #最大化安裝DSO模塊,即安裝經常使用模塊
--enable-mpms-shared=all    #基於共享的方式安裝全部MPM模塊
--with-mpm=event            #默認MPM模塊爲event


參數設置完成,並檢查成功後,就可使用make命令編譯並安裝軟件了。

make && make install

wKiom1MypwOhT73NAACphzOyOcE581.jpg

httpd-2.4.9安裝成功!


(4)、導出httpd的頭文件。

ln -sv /usr/local/apache/include /usr/include/httpd

wKiom1Myp6GxsEFbAAPmqTxX8h4987.jpg


(5)、導出httpd的幫助文件。

vim /etc/man.config
#在文件內加上幫助文件路徑
MANPATH /usr/local/apache/man

wKiom1MyqXPSqSzCAAIyeU0RLYk430.jpg


(6)、給環境變量添加路徑。

編輯文件/etc/profile.d/httpd.sh,在文件內加上如下內容:

export PATH=/usr/local/apache/bin:$PATH

執行命令 source 使新的配置文件生效:

source /etc/profile.d/httpd.sh

wKioL1MysKvwGTcOAABIwKXhV-I810.jpg

環境變量配置成功!


(7)、添加服務腳本。

在目錄/etc/rc.d/init.d/目錄下,新建文件httpd,並添加如下控制腳本,該腳本取自httpd2.2的服務腳本。

#!/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/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 httpd


(8)、將腳本添加至服務。

wKiom1Mys6GyyMKPAADfMbEcb9Y139.jpg


(9)、修改配置文件/etc/httpd/httpd.conf。

在文件內添加PID文件路徑:

PidFile  "/var/run/httpd.pid"

wKioL1Mys9vQfrAFAABIUltt384557.jpg


修改根目錄爲/var/www/html:

wKioL1MytCXy2qPlAAB1UPEEnJQ001.jpg


(10)、啓動服務,測試服務是否添加成功。

wKiom1Myt7rQunLAAABczsmSaKM951.jpg


查看 80 端口是否被監聽

wKioL1MyuCGDVh29AAHocotTltk139.jpg


wKiom1MyuBiQEQZTAACF7SeX3BY603.jpg


二、編譯安裝mysql-5.5.33-linux2.6-x86_64

mysql有好幾個可安裝的版本:

   a、操做系統自帶的rpm包

b、MySQL官方rpm包

c、通用二進制格式

d、源碼編譯

此處咱們使用的是二進制已編譯好的版本,因此咱們直接把軟件包解壓至軟件安裝目錄便可。

注意:基於這種已編譯好的方式安裝mysql,mysql軟件包必須解壓安裝至/usr/local目錄,而且安裝目錄必須爲mysql。


(1)、添加系統用戶mysql,用於做mysql軟件的運行用戶。

groupadd -r mysql
useradd -g mysql -r -s /sbin/nologin -d /mysqldata/data mysql
mkdir -p /mysqldata/data
chown -R mysql:mysql /mysqldata/data/


(2)、解壓軟件。

tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local


使用原目錄建立一個軟連接mysql,這樣之後升級也方便:

wKiom1Myz9qRBPzSAAEjRuIQHME657.jpg


(3)、查看安裝幫助文檔,INSTALL-BINARY 能夠知道接下來的操做

wKiom1My5L_zhLiEAAIUJThi8Ro667.jpg


修改mysql目錄下全部文件的權限爲mysql。

wKiom1My48TD-2KNAAMDWouHrNg335.jpg


(4)、運行目錄scripts下的腳本mysql_install_db,建立mysql數據庫。

scripts/mysql_install_db --user=mysql --datadir=/mysqldata/data

--user: 指定mysqld服務運行的用戶

--datadir:指定mysql數據庫存放位置


(5)、將mysql軟件目錄全部文件的權限改成root。

wKioL1My5gKxvkFIAAL5-UeQR8M056.jpg


(6)、爲mysql提供主配置文件,若是系統內存大於512M,則使用my-large.cnf文件做爲系統配置文件。

wKiom1My5pjgmoeoAABrQYe_l_8315.jpg


並修改此文件中thread_concurrency的值爲你的CPU個數乘以2,好比這裏使用以下行:

thread_concurrency = 2


另外還須要添加以下行指定mysql數據文件的存放位置:

datadir = /mysqldata/data


(7)、爲mysql提供sysv服務腳本:

wKioL1My53jQrC8qAACp-DfqDnc848.jpg


(8)、將mysql添加至服務列表:

wKiom1My5-yTh2-TAADgVWgyKY0842.jpg


(9)、爲了使mysql的安裝符合系統使用規範,輸出mysql的man手冊至man命令的查找路徑:

編輯/etc/man.config,添加以下行便可:

MANPATH  /usr/local/mysql/man


(10)、輸出mysql的頭文件至系統頭文件路徑/usr/include,經過簡單的建立連接實現:

ln -sv /usr/local/mysql/include  /usr/include/mysql


(11)、輸出mysql的庫文件給系統庫查找路徑:

echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig

wKiom1My6ZaSKDfwAAIe1EafAp4626.jpg


(12)、修改PATH環境變量,讓系統能夠直接使用mysql的相關命令。編輯文件/etc/profile.d/mysql.sh,添加如下幾行:

export $PATH=/usr/local/mysql/bin:$PATH

wKioL1My61rSPj0tAACCCOsVvng812.jpg


(13)、啓動服務,並使用mysql客戶端給root用戶添加密碼。

wKioL1My7BvTRvknAACilikjH_A944.jpg


使用mysql客戶端工具,mysql鏈接mysql數據庫,並給root添加密碼:

wKioL1My7bOATW65AALHWhbqcAc829.jpg


(14)、刪除無用賬號,給root賬號授與mysql數據庫最大權限。

刪除密碼爲空的mysql用戶:

wKioL1My7zyBJKQNAAGJUwb114g537.jpg


給root用戶受權:

wKiom1My74SBPXbdAAD4ZZrK3p0126.jpg


(15)、查看root登陸密碼是否可使用:

wKioL1My78ayIURcAAIWuYS0Itg032.jpg


三、編譯安裝php-5.4.26

此處咱們把PHP編譯成apache的一個模塊,讓apache管理php工做。

(1)、解壓PHP軟件包,並配置相關安裝參數。

./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
#
#參數說明:
--prefix=/usr/local/php        #php安裝路徑
--with-mysql=/usr/local/mysql  #mysql軟件路徑
--with-openssl                 #支持ssl
--with-mysqli=/usr/local/mysql/bin/mysql_config #支持mysqli接口
--enable-mbstring             #支持多字節字符串,用於支持中文
--with-freetype-dir           #支持freetype字體解析工具,需先安裝freetype-devel軟件包
--with-jpeg-dir               #支持處理jpeg圖片
--with-png-dir                #支持處理png圖片
--with-zlib                   #支持數據報文zlib壓縮
--with-libxml-dir=/usr        #指定解析xml庫的文件的路徑
--enable-xml                  #支持解析xml
--enable-sockets              #支持基於sockets通訊
--with-apxs2=/usr/local/apache/bin/apxs  #指定apxs工具路徑
--with-config-file-path=/etc  #配置文件路徑
--with-config-file-scan-dir=/etc/php.d #指定擴展配置文件目錄
--with-bz2                    #支持bz2壓縮格式
--enable-maintainer-zts       #對應apache的MPM模塊worker或event


(2)、編譯安裝php。

make
make test
make install


(3)、爲php提供配置文件:

wKiom1My9rnwL0ZRAAB0SgL-nL8465.jpg


(4)、編輯apache配置文件/etc/httpd/httpd.conf,讓apache支持PHP。

在配置文件中添加如下兩行:

AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps


定位至DirectoryIndex index.html,修改成:

DirectoryIndex  index.php  index.html


(5)、從新啓動apache,測試PHP是否安裝配置成功。在網站根目錄/var/www/html下編輯首頁index.php文件:

<?php
phpinfo();
?>

wKiom1M0Jf-Q-eZdAAK49jkyaBI730.jpg


3、測試環境

   lamp的安裝基本完成了,咱們隨便弄個PHP網站程序測試一下吧。

一、新建一個虛擬主機,www.wubinary.com。

編輯httpd配置文件,導入vhost模塊及虛擬主機配置文件:

LoadModule vhost_alias_module modules/mod_vhost_alias.so
Include /etc/httpd/extra/httpd-vhosts.conf

註釋掉網站根目錄:

#DocumentRoot "/var/www/html"

編輯配置文件/etc/httpd/extra/httpd-vhosts.conf,配置以下虛擬主機:

<VirtualHost *:80>
    ServerAdmin admin@wubinary.com
    DocumentRoot "/var/www/html/joomla"
    ServerName www.wubinary.com
    ErrorLog "logs/wubinary.com.error_log"
    CustomLog "logs/wubinary.com-access_log" common
</VirtualHost>

從新啓動服務。


二、下載一套網站程序joomla,解壓至/var/www/html/joomla目錄。

三、新建一個數據庫joomla及數據庫用戶joomlauser:

wKiom1M0NrWAyehRAAIE3Wu05Zc598.jpg


四、本地客戶端hosts文件綁定域名,打開www.wubinary.com就能夠開始安裝網站程序了。

wKioL1M0Nx6SV4-GAAH-X46wbzM774.jpg


wKiom1M0OViRcmNbAAOwZjxgbcQ522.jpg


安裝成功了!


五、使用httpd自帶的性能測試工具ab,測試一下服務器的性能:

命令:

ab -c 模擬的併發數 -n 總請求數 http://www.domain.com

測試:

ab -c 5 -n 50 http://www.wubinary.com/index.php

使用ab命令5個併發,50條請求測試httpd性能以下:

wKiom1M0P8KRcXmgAANX8MMokzQ015.jpg


每秒執行2.95條請求,能夠看出性能好差。。。。。

相關文章
相關標籤/搜索