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、能夠查看是否開啓httpd的80端口
[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.gz並cd到php-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、這裏爲了支持apache的worker或event這兩個MPM,編譯時使用了--enable-maintainer-zts選項。
2、若是使用PHP5.3以上版本,爲了連接MySQL數據庫,能夠指定mysqlnd,這樣在本機就不須要先安裝MySQL或MySQL開發包了。mysqlnd從php 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是否已經能夠正常使用。
---------------------------------------- 實驗一---------------------------------------------------
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/
5.在瀏覽器中輸入本機IP地址http://192.168.1.199/install/進行Dz安裝,以下
6.檢查安裝環境和文件權限,在安裝過程當中,其中某些文件沒有讀寫權限,請按提示修改文件權限
8.安裝完數據庫dz論壇系統就已經安裝完成,完成後直接登陸便可
10.查看數據庫是否成功建立
------------------------------------------實驗二安裝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進行安裝
-------------------------------------------LAMP-PHP—擴展------------------------------------------
1、apache性能測試工具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加速
1、Xcache簡介
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、解壓並cd到Xcache目錄下
[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,整合php和xcache:
<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
出來這個說明已經安裝成功了。
九、使用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域名的用戶訪問狀態報告頁面
在支持自動刷新的瀏覽器上使用http://your.server.name/server-status?refresh=N訪問狀態頁面能夠每N秒自動刷新一次。
須要提醒的是,這裏的狀態信息不該該被全部人隨意訪問,所以,應該限制僅容許某些特定地址的客戶端查看。好比使用Require ip 172.16.0.0/16來限制僅容許指定網段的主機查看此頁面。
4、配置apache-2.4.9與fpm方式的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
如以上有錯誤的地方請留言指正,會及時修改!
謝謝!