Web-Service之LAMP安裝部署,MySql+Apache+PHP

LAMP簡介php

       Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一組經常使用來搭建動態網站或者服務器的開源軟件,自己都是各自獨立的程序,可是由於常被放在一塊兒使用,擁有了愈來愈高的兼容度,共同組成了一個強大的Web應用程序平臺。隨着開源潮流的蓬勃發展,開放源代碼的LAMP已經與J2EE.Net商業軟件造成三足鼎立之勢,而且該軟件開發的項目在軟件方面的投資成本較低,所以受到整個IT界的關注。從網站的流量上來講,70%以上的訪問流量是LAMP來提供的,LAMP是最強大的網站解決方案.html

------------------------------------------MySql軟件包安裝---------------------------------------------mysql

1、Mysql軟件包安裝方式linux

       MySql官方網站爲:www.mysql.comnginx

       mysql的安裝方式分四種:系統自帶的rpm包,mysql官方rpm包,通用二進制格式包,源碼編譯安裝。2、使用yum源安裝web

     [root@localhost ~]# yuminstall –y mysql
       添加mysql 組和mysql用戶
     [root@localhost ~]# groupadd -r mysql       
       [root@localhost ~]# useradd -g mysql -r -s /sbin/nologin mysql
       數據庫初始化
       #scripts/mysql_install_db  -- datadir=/file  --user=mysql

3、使用源碼包安裝sql

        1解壓mysql-5.5.44-linux2.6-x86_64.tar.gz/usr/local/數據庫

    [root@localhost soft]# tar -zxvf mysql-5.5.44-linux2.6-x86_64.tar.gz -C /usr/local/

        2、建立符號連接(有助於軟件版本升級)apache

    [root@localhost local]# ln -svmysql-5.5.44-linux2.6-x86_64/ mysql

        3、建立mydata目錄修改屬主,屬組爲mysqlvim

    [root@localhost/]# cd /data/    
    [root@localhostdata]# ls
    lost+found
    [root@localhostdata]# mkdir mydata
    [root@localhostdata]# ls
    lost+found  mydata
    [root@localhostdata]# chown -R mysql.mysql mydata/

        4、初始化系統庫

    [root@localhost mysql]# pwd    
    /usr/local/mysql
    [root@localhost mysql]# chown-R root.mysql *
    [root@localhost mysql]#scripts/mysql_install_db --datadir=/data/mydata/ --user=mysql
    [root@localhost mysql]# ls/data/mydata/
    mysql  performance_schema  test
    [root@localhost mysql]#

        5、製做mysql啓動服務腳本

    [root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

        6、設置開機啓動mysql

    [root@localhost mysql]# chkconfig --addmysqld    
    [root@localhost mysql]#chkconfig --list mysqld
    mysqld          0:關閉  1:關閉  2:啓用  3:啓用  4:啓用  5:啓用  6:關閉
    [root@localhost mysql]#

        7、製做mysql配置文件

    [root@localhost mysql]# cpsupport-files/my-large.cnf /etc/my.cnf
    [root@localhostmysql]# vim /etc/my.cnf
    [mysqld]
         ………省略
        datadir= /data/mydata   #添加數據庫路徑

        8、啓動mysql服務

    [root@localhost mysql]#service mysqld start    
    StartingMySQL....................................         [肯定]
    [root@localhost mysql]# ls/data/mydata/
    ibdata1      ib_logfile1    localhost.pid  mysql-bin.000001  performance_schema
    ib_logfile0  localhost.err mysql         mysql-bin.index   test
    [root@localhost mysql]#

        9、客戶端使用mysql命令登陸提示沒法找到mysql,修改如下文件即

    [root@localhost mysql]# vim/etc/profile.d/modules.sh    
           exportPATH=/usr/local/mysql/bin:$PATH
    [root@localhost mysql]# ./etc/profile.d/modules.sh

        10、導出mysql的庫文件和頭文件

    [root@localhost mysql]# ln -sv/usr/local/mysql/include/ /usr/include/mysql    
    "/usr/include/mysql/include"-> "/usr/local/mysql/include/"
           [root@localhostmysql]# vim /etc/ld.so.conf.d/mysql.conf
           /usr/local/mysql/lib
           [root@localhostmysql]# ldconfig
    [root@localhost mysql]# ldconfig -p |grep mysql
  libtcmalloc_minimal.so.0 (libc6,x86-64) =>/usr/local/mysql/lib/libtcmalloc_minimal.so.0
        libmysqlclient_r.so.16 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient_r.so.16
        libmysqlclient_r.so (libc6,x86-64) =>/usr/lib64/mysql/libmysqlclient_r.so
        libmysqlclient.so.18 (libc6,x86-64) =>/usr/local/mysql/lib/libmysqlclient.so.18
        libmysqlclient.so.16 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.16
        libmysqlclient.so (libc6,x86-64) =>/usr/local/mysql/lib/libmysqlclient.so
        libmysqlclient.so (libc6,x86-64) =>/usr/lib64/mysql/libmysqlclient.so
    [root@localhost mysql]#

--------------------------------------------安裝Apache—Httpd----------------------------------------

1、使用RPM安裝Apache-Httpd軟件包

2、httpd軟件包安裝:yum -yinstall httpd  

3、源碼安裝httpd

        一、apr下載地址http://apr.apache.org/download.cgi

    二、解壓並安裝apr-1.5.2.tar.gz  apr-util-1.5.4.tar.gz   yum安裝pcre-devel

        [root@localhost apr-1.5.2]# yuminstall -y pcre-devel     
        [root@localhostsoft]# tar -zxvf apr-1.5.2.tar.gz
        []# cd apr-1.5.2
         安裝apr-1.5.2
        [root@localhostapr-1.5.2]# ./configure --prefix=/usr/local/apr
        [root@localhostapr-1.5.2]# make && make install
        [root@localhostsoft]# tar -zxvf apr-util-1.5.4.tar.gz
        [root@localhostapr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr/
        [root@localhost apr-util-1.5.4]# make&& make install

    3、安裝httpd-2.4.9

        [root@localhost soft]# tar –zxvf httpd-2.4.9.tar.gz    
        [root@localhosthttpd-2.4.9]# cd httpd-2.4.9
        [root@localhosthttpd-2.4.9]#./configure--prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl--enable-cgi --with-zlib --with-pcre=/usr/local/pcre/ --enable-rewrite--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/--enable-modules=most --enable-mpms-shared=all --with-mpm=event
        [root@localhosthttpd-2.4.9]# make && make install

        4、提供SysV啓動服務腳本cp  http服務啓動腳本到/etc/rc.d/init.d/httpd24

        [root@localhost httpd-2.4.9]# cp/etc/rc.d/init.d/httpd  /etc/rc.d/init.d/httpd24
      修改httpd服務啓動腳本  
        [root@localhosthttpd-2.4.9]# vim /etc/ rc.d/init.d/httpd24 #修改成實際路徑
        apachectl=/usr/local/apache/bin/apachectl
        httpd=${HTTPD-/usr/local/apache/bin/httpd}

        5、建立PATH環境

        [root@localhost httpd-2.4.9]# cat/etc/profile.d/httpd.sh
        export PATH=/usr/local/apache/bin:$PATH
        [root@localhosthttpd-2.4.9]# ./etc/profile.d/httpd.sh
        [root@localhosthttpd-2.4.9]#

        6、修改httpd主配置文件,設置其Pid文件的路徑

        [root@localhost httpd-2.4.9]# vim/etc/httpd24/httpd.conf
        PidFile  "/var/run/httpd.pid"  #添加此行便可

        7、啓動httpd服務

        [root@localhost httpd-2.4.9]# service httpd24start
        正在啓動 httpd:httpd: Could not reliably determine the server's fully qualified domainname, using localhost.localdomain for ServerName
                                                          [肯定]

        8、能夠查看是否開啓httpd80端口

        [root@localhost httpd-2.4.9]# ss –tnl

4、虛擬主機配置

    [root@localhost conf]# vim/etc/httpd/conf/httpd.conf
        ### Section 2: 'Main' server configuration
        #DocumentRoot "/var/www/html"        註釋掉
        ### Section 3: Virtual Hosts              添加如下部分
        NameVirtualHost *:80
        <VirtualHost *:80>
           ServerAdmin     admin@a.com
           DocumentRoot    "/var/www/html"
           ServerName      www.a.com
        </VirtualHost>

        <VirtualHost *:80>
           ServerAdmin     admin@b.com
           DocumentRoot     "/var/www/wordpress"
           ServerName      www.b.com
        </VirtualHost>


-------------------------------------------------PHP軟件包安裝----------------------------------------

1、源碼編譯安裝php-5.6.13

         1、請配置好yum源(系統安裝源及epel源)後安裝動態庫執行以下命令

        # yum -y groupinstall "DesktopPlatform Development" 
        #yum -y install bzip2-devel libmcrypt libmcrypt-devel

        2、首先下載源碼包至本地目錄

                   官方下載地址爲http://php.net/downloads.php

         3、解壓php-5.6.13.tar.gzcdphp-5.6.13

        [root@localhost soft]# tar -zxvf php-5.6.13
        [root@localhostsoft]# cd php-5.6.13

         4、編譯php-5.6

        [root@localhost php-5.6.13]# ./configure--prefix=/usr/local/php56 --with-mysql=/usr/local/mysql-5.5.44-linux2.6-x86_64/--with-openssl--with-mysqli=/usr/local/mysql-5.5.44-linux2.6-x86_64/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

說明:

1、這裏爲了支持apacheworkerevent這兩個MPM,編譯時使用了--enable-maintainer-zts選項。

2、若是使用PHP5.3以上版本,爲了連接MySQL數據庫,能夠指定mysqlnd,這樣在本機就不須要先安裝MySQLMySQL開發包了。mysqlndphp 5.3開始可用,能夠編譯時綁定到它(而不用和具體的MySQL客戶端庫綁定造成依賴),但從PHP 5.4開始它就是默認設置了。

# ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd

         5、編譯安裝php-5.6

        [root@localhost php-5.6.13]# make && make install

        6、爲php提供配置文件

        [root@localhost php-5.6.13]# cd/root/soft/php-5.6.13
        [root@localhost php-5.6.13]# cpphp.ini-development /etc/php.ini


        7、編輯apache配置文件httpd.conf,以apache能識別php格式的頁面,並支持php格式的主頁

          <一、添加以下二行
                  AddType application/x-httpd-php  .php
                  AddType application/x-httpd-php-source  .phps
 
           <二、定位至DirectoryIndex index.html 
                  修改成:
                        DirectoryIndex  index.php index.html            
       如:
            [root@localhost php-5.6.13]# vim /etc/httpd24/httpd.conf
                ##在<IfModule mime_module>中添加
                AddTypeapplication/x-httpd-php .php
            AddType application/x-httpd-php-source .phps
                <IfModuledir_module>
             DirectoryIndexindex.php index.html
                </IfModule>

9、使用service httpd24 restart命令從新啓動httpd,使其從新載入配置文件,使用瀏覽器測試php是否已經能夠正常使用。wKiom1YY00iQBX9SAAKDQVx3Nc4390.jpg

---------------------------------------- 實驗一---------------------------------------------------

1、搭建Disczl論壇

        通過上面的安裝配置基本上完成了搭建環境。

           1.下載Dz論壇源碼程序www.discuz.net/

        2.解壓[root@localhost sort]# unzip Discuz_X3.2_SC_UTF8.zip

        3.copy upload目錄下的文件到/var/www/html目錄 # cp -r * /var/www/html/

     4.mysql下建立dzbbs數據庫wKioL1YY1LGhS-oEAADVJv06JZc488.jpg

     5.在瀏覽器中輸入本機IP地址http://192.168.1.199/install/進行Dz安裝,以下

     6.檢查安裝環境和文件權限,在安裝過程當中,其中某些文件沒有讀寫權限,請按提示修改文件權限wKiom1YY1UPTOBn1AAInreLRf6Q105.jpg


   7.配置安裝數據庫及管理員賬號密碼wKiom1YY1lPgfaVjAAM3aMOWRfA746.jpg

    8.安裝完數據庫dz論壇系統就已經安裝完成,完成後直接登陸便可wKioL1YY1wbjkKiWAAJ-SBfkChU693.jpg

    9.論壇安裝完成wKiom1YY1zijIE0zAAE7FN4hu1Y270.jpg

    10.查看數據庫是否成功建立

wKioL1YY17mxi5obAALgtrdrBgU495.jpg

------------------------------------------實驗二安裝wordPress博客系統-------------------------------------------

一、下載wordPress源碼程序

二、解壓並copy/var/www/wordpress目錄下

[root@localhost sort]# unzip wordpress-4.3.1-zh_CN.zip
[root@localhost wordpress]# cp -r* /var/www/wordpress

三、複製/var/www/wordpress/wp-config-sample.php並更名爲wp-config.php

[root@localhost wordpress]# cpwp-config-sample.php wp-config.php

四、建立數據庫wordpress

五、修改/var/www/wordpress/wp-config.php

    // ** MySQL 設置 - 具體信息來自您正在使用的主機 ** //

    /** WordPress數據庫的名稱 */

    define('DB_NAME', 'wordpress');

    /** MySQL數據庫用戶名 */

    define('DB_USER', 'root');

    /** MySQL數據庫密碼 */

    define('DB_PASSWORD', 'zhang');

    /** MySQL主機 */

    define('DB_HOST', 'localhost');

    /** 建立數據表時默認的文字編碼 */

    define('DB_CHARSET', 'utf8');

    /** 數據庫整理類型。如不肯定請勿更改 */

    define('DB_COLLATE', '');

六、使用瀏覽器打開www.b.com進行安裝wKioL1YY2hyD9jaMAAHZr8sw708146.jpg

七、安裝成功,可進行登陸wKiom1YY2mGS3C7nAAJWwEdD768929.jpg

八、查看數據庫是否建立成功wKioL1YY2tuCFjatAAInqkwkULk413.jpg

-------------------------------------------LAMP-PHP—擴展------------------------------------------

1apache性能測試工具ab使用詳解

       性能測試工具目前最多見的有如下幾種:ab、http_load、webbench、siege。今天咱們專門來介紹ab。

ab是apache自帶的壓力測試工具。ab很是實用,它不只能夠對apache服務器進行網站訪問壓力測試,也能夠對或其它類型的服務器進行壓力測試。好比nginx、tomcat、IIS等。

1、ab參數說明

有關ab命令的使用,咱們能夠經過幫助命令進行查看。以下:

ab --help

下面咱們對這些參數,進行相關說明。以下:

-n在測試會話中所執行的請求個數。默認時,僅執行一個請求。

-c一次產生的請求個數。默認是一次一個。

-t測試所進行的最大秒數。其內部隱含值是-n 50000,它可使對服務器的測試限制在一個固定的總時間之內。默認時,沒有時間限制。

-p包含了須要POST的數據的文件。

-P對一箇中轉代理提供BASIC認證信任。用戶名和密碼由一個:隔開,並以base64編碼形式發送。不管服務器是否須要(即, 是否發送了401認證需求代碼),此字符串都會被髮送。

-T POST數據所使用的Content-type頭信息。

-v設置顯示信息的詳細程度-4或更大值會顯示頭信息,3或更大值能夠顯示響應代碼(404,200等),2或更大值能夠顯示警告和其餘信息。

-V顯示版本號並退出。

-w以HTML表的格式輸出結果。默認時,它是白色背景的兩列寬度的一張表。

-i執行HEAD請求,而不是GET。

-x設置<table>屬性的字符串。

-X對請求使用代理服務器。

-y設置<tr>屬性的字符串。

-z設置<td>屬性的字符串。

-C對請求附加一個Cookie:行。其典型形式是name=value的一個參數對,此參數能夠重複。

-H對請求附加額外的頭信息。此參數的典型形式是一個有效的頭信息行,其中包含了以冒號分隔的字段和值的對(如,"Accept-Encoding:zip/zop;8bit")。

-A對服務器提供BASIC認證信任。用戶名和密碼由一個:隔開,並以base64編碼形式發送。不管服務器是否須要(即,是否發送了401認證需求代碼),此字符串都會被髮送。

-h顯示使用方法。

-d不顯示"percentage served within XX[ms] table"的消息(爲之前的版本提供支持)。

-e產生一個以逗號分隔的(CSV)文件,其中包含了處理每一個相應百分比的請求所須要(從1%到100%)的相應百分比的(以微妙爲單位)時間。因爲這種格式已經「二進制化」,因此比'gnuplot'格式更有用。

-g把全部測試結果寫入一個'gnuplot'或者TSV(以Tab分隔的)文件。此文件能夠方便地導入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行爲標題。

-i執行HEAD請求,而不是GET。

-k啓用HTTP KeepAlive功能,即在一個HTTP會話中執行多個請求。默認時,不啓用KeepAlive功能。

-q若是處理的請求數大於150,ab每處理大約10%或者100個請求時,會在stderr輸出一個進度計數。此-q標記能夠抑制這些信息。

2、ab性能指標

在進行性能測試過程當中有幾個指標比較重要:

1、吞吐率(Requests per second)

服務器併發處理能力的量化描述,單位是reqs/s,指的是在某個併發用戶數下單位時間內處理的請求數。某個併發用戶數下單位時間內能處理的最大請求數,稱之爲最大吞吐率。

記住:吞吐率是基於併發用戶數的。這句話表明了兩個含義:

a、吞吐率和併發用戶數相關

b、不一樣的併發用戶數下,吞吐率通常是不一樣的

計算公式:總請求數/處理完成這些請求數所花費的時間,即

Request persecond=Complete requests/Time taken for tests

必需要說明的是,這個數值表示當前機器的總體性能,值越大越好。

2、併發鏈接數(The number of concurrentconnections)

併發鏈接數指的是某個時刻服務器所接受的請求數目,簡單的講,就是一個會話。

3、併發用戶數(Concurrency Level)

要注意區分這個概念和併發鏈接數之間的區別,一個用戶可能同時會產生多個會話,也即鏈接數。在HTTP/1.1下,IE7支持兩個併發鏈接,IE8支持6個併發鏈接,FireFox3支持4個併發鏈接,因此相應的,咱們的併發用戶數就得除以這個基數。

4、用戶平均請求等待時間(Time per request)

計算公式:處理完成全部請求數所花費的時間/(總請求數/併發用戶數),即:

Time perrequest=Time taken for tests/(Complete requests/Concurrency Level)

5、服務器平均請求等待時間(Time per request:acrossall concurrent requests)

計算公式:處理完成全部請求數所花費的時間/總請求數,即:

Time takenfor/testsComplete requests

能夠看到,它是吞吐率的倒數。

同時,它也等於用戶平均請求等待時間/併發用戶數,即

Time perrequest/Concurrency Level

3、ab實際使用

ab的命令參數比較多,咱們常用的是-c和-n參數。

ab -c 10 -n 100http://a.com/index.php

-c10表示併發用戶數爲10

-n100表示請求總數爲100

http://a.com/index.php表示請求的目標URL

這行表示同時處理100個請求並運行10次index.php文件。

除此以外還有其餘一些信息,須要說明下,以下:

Server Software表示被測試的Web服務器軟件名稱。

Server Hostname表示請求的URL主機名。

Server Port表示被測試的Web服務器軟件的監聽端口。

Document Path表示請求的URL中的根絕對路徑,經過該文件的後綴名,咱們通常能夠了解該請求的類型。

Document Length表示HTTP響應數據的正文長度。

Concurrency Level表示併發用戶數,這是咱們設置的參數之一。

Time taken fortests表示全部這些請求被處理完成所花費的總時間。

Complete requests表示總請求數量,這是咱們設置的參數之一。

Failed requests表示失敗的請求數量,這裏的失敗是指請求在鏈接服務器、發送數據等環節發生異常,以及無響應後超時的狀況。若是接收到的HTTP響應數據的頭信息中含有2XX之外的狀態碼,則會在測試結果中顯示另外一個名爲「Non-2xx responses」的統計項,用於統計這部分請求數,這些請求並不算在失敗的請求中。

Total transferred表示全部請求的響應數據長度總和,包括每一個HTTP響應數據的頭信息和正文數據的長度。注意這裏不包括HTTP請求數據的長度,僅僅爲web服務器流向用戶PC的應用層數據總長度。

HTML transferred表示全部請求的響應數據中正文數據的總和,也就是減去了Totaltransferred中HTTP響應數據中的頭信息的長度。

Requests persecond吞吐率,計算公式:Complete requests/Time taken for tests

Time per request用戶平均請求等待時間,計算公式:Time token for tests/(Complete requests/Concurrency Level)。

Time perrequet(across all concurrent request)服務器平均請求等待時間,計算公式:Time taken for tests/Complete requests,正好是吞吐率的倒數。也能夠這麼統計:Time per request/Concurrency Level。

Transfer rate表示這些請求在單位時間內從服務器獲取的數據長度,計算公式:Totaltrnasferred/ Time taken for tests,這個統計很好的說明服務器的處理能力達到極限時,其出口寬帶的需求量。

Percentage ofrequests served within a certain time(ms)這部分數據用於描述每一個請求處理時間的分佈狀況,好比以上測試,80%的請求處理時間都不超過6ms,這個處理時間是指前面的Time per request,即對於單個用戶而言,平均每一個請求的處理時間。

 

2、使用Xcache,爲php加速

          1Xcache簡介

                    XCache 是一個又快又穩定的 PHP opcode 緩存器. 通過良好的測試並在大流量/高負載的生產機器上穩定運行. 通過( linux )測試並支持全部現行 PHP 分支的最新發布版本, PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x), 並支持線程安全/Windows. 與同類 opcode 緩存器相比更勝一籌, 好比可以快速跟進 PHP 版本.

XCache 工程由 mOo 領隊, 他也是 Lighttpd 的開發成員之一. Lighttpd 是最快的 Web 服務器應用程序之一, 而且超越 Apache 以及許多其餘 Web 服務器. XCache 努力達到相似的效果.

2、下載安裝使用Xcache

      Xcache官方下載地址爲http://xcache.lighttpd.net/

3、解壓並cdXcache目錄下

[root@localhostsoft]# tar -zxvf xcache-3.2.0.tar.gz

[root@localhostsoft]# cd xcache-3.2.0

4、使用phpize進行編譯php擴展

[root@localhostsoft]# /usr/local/php56/bin/phpize

5、編譯xcache擴展模塊

[root@localhostxcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php56/bin/php-config

6、安裝xcache

[root@localhostxcache-3.2.0]# make && make install

安裝結束時會提示相似以下行:

Installing shared extensions:    /usr/local/php56/lib/php/extensions/no-debug-zts-20131226/

7、編輯php.ini,整合phpxcache

<1、首先將xcache提供的樣例配置導入php.ini

# mkdir/etc/php.d

# cp xcache.ini/etc/php.d 

說明:xcache.ini文件在xcache的源碼目錄中。 

<2、接下來編輯/etc/php.d/xcache.ini,找到extension開頭的行,確保在如下路徑下找到xcache.so修改成以下行:

extension =/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so 

注意:若是php.ini文件中有多條extension指令行,要確保此新增的行排在第一位。

8、重啓httpd服務並查看是否安裝成功xcache擴展 

   [root@localhost xcache-3.2.0]# servicehttpd24 restart

   [root@localhostxcache-3.2.0]#wKiom1YY3NmTZJvTAAJ7Npn2hTk134.jpg

出來這個說明已經安裝成功了。

九、使用ab進行壓力測試

[root@localhostxcache-3.2.0]# ab -c 100 -n 1000 http://192.168.1.199/index.php


3、開啓Apache服務器狀態模塊 mod_status

1、概述

本模塊容許服務器管理員方便的檢查服務器當前的運行情況。該模塊用一種容易閱讀的表格報告服務器的當前運行狀態並以HTML頁面的方式呈現出來。若是你願意,還可讓這個頁面不停的自動刷新(僅在支持自動刷新的瀏覽器上有效)。另外還能夠提供一個簡單的供機器閱讀的服務器當前狀態表。

輸出的詳細信息以下:

  • 正在伺服請求的工做者(線程或進程)數量

  • 空閒的工做者數量

  • 每一個工做者的狀態:已完成的請求數、已發送的字節數。(*)

  • 總訪問數和已發送的字節總數(*)

  • 服務器自啓動/重啓以來通過的時間,服務器已經運行的時間。

  • 平均每秒請求數,平均每秒發送的字節數,平均每一個請求發送的字節數。(*)

  • 每一個工做者的當前CPU使用百分率,以及Apache的當前總計CPU使用百分率。(*)

  • 當前正在被處理的主機和請求(*)

    必須使用相應編譯時選項才能顯示被標記爲"(*)"的信息,由於這些信息默認並不存在於Apache中。

mod_status模塊可讓管理員查看服務器的執行狀態,它經過一個HTML頁面展現了當前服務器的統計數據。這些數據一般包括但不限於:

(1) 處於工做狀態的worker進程數;

(2) 空閒狀態的worker進程數;

(3) 每一個worker的狀態,包括此worker已經響應的請求數,及由此worker發送的內容的字節數;

(4) 當前服務器總共發送的字節數;

(5) 服務器自上次啓動或重啓以來至當前的時長;

(6) 平均每秒鐘響應的請求數、平均每秒鐘發送的字節數、平均每一個請求所請求內容的字節數;

 

2、啓用mod_status

   啓用狀態頁面的方法很簡單,只須要在httpd主配置文件中添加以下內容便可:

<Location /server-status>

   SetHandler server-status

   Require all granted

                Allowfrom .a.com

</Location>

這樣就能夠經過http://your.server.name/server-status頁面來訪問服務器狀態報告頁面。

Deny from表示禁止的訪問地址;
Allow from
表示容許的地址訪問;
ExtendedStatus On
表示的是待會訪問的時候能看到詳細的請求信息

Allowfrom爲了僅容許來自foo.com域名的用戶訪問狀態報告頁面

3、自動刷新

在支持自動刷新的瀏覽器上使用http://your.server.name/server-status?refresh=N訪問狀態頁面能夠每N秒自動刷新一次。

須要提醒的是,這裏的狀態信息不該該被全部人隨意訪問,所以,應該限制僅容許某些特定地址的客戶端查看。好比使用Require ip 172.16.0.0/16來限制僅容許指定網段的主機查看此頁面。

4、配置apache-2.4.9fpm方式的php-5.6.13

      1、編譯安裝php-5.6.13

               首先下載源碼包至本地目錄

             [root@localhostsoft]# tar -zxvf php-5.6.13.tar.gz

             [root@localhostsoft]# cd php-5.6.13

             [root@localhostlocal]# ./configure --prefix=/usr/local/php56

--with-mysql=/usr/local/mysql-5.5.44-linux2.6-x86_64/--with-openssl--with-mysqli=/usr/local/mysql-5.5.44-linux2.6-x86_64/bin/mysql_config--enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir--with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d --with-bz2

2、爲php提供配置文件:

             [root@localhostphp-5.6.13]# cp php.ini-production /etc/php.ini

3、配置php-fpm

             <1、爲php-fpm提供SysV init啓動腳本,並將其添加至服務列表:

             [root@localhostphp-5.6.13]# cp  sapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm

             [root@localhostphp-5.6.13]# chmod +x /etc/rc.d/init.d/php-fpm

             [root@localhostphp-5.6.13]# chkconfig --add php-fpm

             [root@localhostphp-5.6.13]#

4、爲php-fpm提供配置文件:

          [root@localhostetc]# cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf

          [root@localhostetc]# pwd

             /usr/local/php56/etc

5、配置fpm的進程池相關選項爲你所須要的值,並啓用pid文件

             [root@localhostetc]# vim php-fpm.conf

             [global]

             pid= /usr/local/php56/var/run/ php-fpm.pid

             pm.max_children= 50

             pm.start_servers= 5

             pm.min_spare_servers= 2

             pm.max_spare_servers= 8

6、啓動php-fpm服務:

             [root@localhostetc]# service php-fpm start

 

 

7、配置httpd-2.4.9

             編輯httpd24主配置文件,加載模塊和對php的支持

             [root@localhosthttpd24]# vim httpd.conf

             #----------------啓用httpd相關的模塊----------------#

             LoadModuleproxy_module modules/mod_proxy.so

             LoadModuleproxy_fcgi_module modules/mod_proxy_fcgi.so

             #-----------------添加對php的支持------------------------#

             AddTypeapplication/x-httpd-php .php

             AddTypeapplication/x-httpd-php-source .phps

             #-----------------配置虛擬主機支持使用fcgi------------------------#

<VirtualHost *:80>

        ServerAdmin     admin@a.com

        DocumentRoot     "/usr/local/apache/htdocs/a.com"

        ServerName      www.a.com

        ProxyRequests Off

        ProxyPassMatch ^/(.*\.php)$fcgi://127.0.0.1:9000//usr/local/apache/htdo

cs/a.com/$1

</VirtualHost>

<VirtualHost *:80>

        ServerAdmin     admin@b.com

        DocumentRoot     "/usr/local/apache/htdocs/b.com"

        ServerName      www.b.com

        ProxyRequests Off

       ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000//usr/local/apache/htdo

cs/b.com/$1

</VirtualHost>

ProxyRequests Off:關閉正向代理

ProxyPassMatch:把以.php結尾的文件請求發送到php-fpm進程,php-fpm至少須要知道運行的目錄和URI,因此這裏直接在fcgi://127.0.0.1:9000後指明瞭這兩個參數,其它的參數的傳遞已經被mod_proxy_fcgi.so進行了封裝,不須要手動指定。

8、可以使用ab進行測試

 [root@localhostxcache-3.2.0]# ab -c 100 -n 1000 http://www.a.com/index.php


                                                                        如以上有錯誤的地方請留言指正,會及時修改!

            謝謝!

相關文章
相關標籤/搜索