日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
部署LAMP動靜分離以及部署Discuz論壇

通過LAMP平臺部署及應(yīng)用 已經(jīng)可以部署出LAMP平臺,來面對客戶端的請求,但是由于這些組件都是在一臺服務(wù)器上進(jìn)行安裝,如果出現(xiàn)問題,將導(dǎo)致LAMP平臺的癱瘓。在實際環(huán)境中,不可能將LAMP平臺都部署在同一臺服務(wù)器上,這就需要使用到LAMP動靜分離的技術(shù)。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供合江網(wǎng)站建設(shè)、合江做網(wǎng)站、合江網(wǎng)站設(shè)計、合江網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、合江企業(yè)網(wǎng)站模板建站服務(wù),十載合江做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

博文大綱:
一、LAMP動靜分離的相關(guān)概念
1.PHP的工作模式
2.FastCGI模式的工作機(jī)制
二、實現(xiàn)LAMP動靜分離
1.FastCGI方式編譯安裝php
2.搭建Apache并配置通過fastcgi協(xié)議調(diào)用php

  1. 搭建MySQL數(shù)據(jù)庫
    4.ab壓力測試工具
    5.安裝php加速軟件Xcache
    三、部署Discuz論壇

一、LAMP動靜分離的相關(guān)概念

要想實現(xiàn)LAMP動靜分離,最主要的還是PHP,因為我們需要使用PHP解釋器來解析動態(tài)頁面,然后向Web服務(wù)器傳輸解析后的網(wǎng)站內(nèi)容。我們下面重點介紹一下PHP。

1.PHP的工作模式

PHP在在LAMP環(huán)境下共有三種工作模式:

  • CGI模式:在這種模式下運(yùn)行PHP,性能不是很好;
  • apache模塊:在這種模式下運(yùn)行PHP,在LAMP平臺部署及應(yīng)用 就是使用的這種模式,使用apache調(diào)用php完成工作;
  • FastCGI模式:在這種模式下運(yùn)行PHP,PHP就是一處獨(dú)立的進(jìn)程,所有的PHP子進(jìn)程都由PHP的一個叫做php-fpm的組件負(fù)責(zé)管理;

2.FastCGI模式的工作機(jī)制

首選客戶端發(fā)起請求,請求一般分為兩種:一種是靜態(tài)請求,可以直接由Apache響應(yīng)直接返回客戶端所需資源;另一種動態(tài)請求,其中包含PHP或Perl這種腳本解釋型語言,則由Apache服務(wù)器通過fastcgi協(xié)議調(diào)用php服務(wù)器執(zhí)行并返回給Apache,由Apache向客戶端返回客戶端所需資源,如果這個過程中涉及到對數(shù)據(jù)的操作,此時php服務(wù)器還會通過mysql協(xié)議調(diào)用mysql服務(wù)器。如圖:
部署LAMP動靜分離以及部署Discuz論壇

二、實現(xiàn)LAMP動靜分離

案例所需:

  • 一臺httpd服務(wù)器(192.168.1.1)編譯安裝httpd服務(wù);
  • 一臺mysql服務(wù)器(192.168.1.2)編譯安裝mysql服務(wù);
  • 一臺php服務(wù)器(192.168.1.3)編譯安裝php服務(wù);

1.FastCGI方式編譯安裝php

獲取PHP所需軟件包

1)解決依賴關(guān)系
[root@localhost ~]#  yum -y install libxml2-devel lzip2-devel libcurl-devel \
libmcrypt-devel openssl-devel bzip2-devel 
//安裝PHP程序所需要的依賴包
[root@localhost ~]# tar zxf libmcrypt-2.5.7.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/libmcrypt-2.5.7/
[root@localhost libmcrypt-2.5.7]#  ./configure --prefix=/usr/local/libmcrypt && make && make install 
//編譯安裝 libmcrypt 軟件包
2)編譯安裝php
[root@localhost ~]# tar zxf php-5.6.27.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/php-5.6.27/
[root@localhost php-5.6.27]#  ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets \
--enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib \
--with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt  \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d \
--with-bz2 --enable-maintainer-zts && make && make install

配置選項相關(guān)解釋:

  • --prefix=/usr/local/php5.6 //指定安裝位置;
  • --with-mysql=mysqlnd //安裝連接mysql工具支持 mysql;
  • --with-pdo-mysql=mysqlnd //支持Mysql pdo 模塊
  • --with-mysqli=mysqlnd //支持 mysqli 模塊
    注意:上面的三選項的作用:數(shù)據(jù)庫與 php 不在一個服務(wù)器上,指定此種方式,安裝數(shù)據(jù)庫 連接驅(qū)動;
  • --with-openssl //支持 openssl 模塊;
  • --enable-fpm //支持 fpm 模式;
  • --enable-sockets //啟用 socket 支持;
  • --enable-sysvshm //啟用系統(tǒng)共享內(nèi)存支持;
  • --enable-mbstring //多字節(jié)字串、像我們的中文就是多字節(jié)字串;
  • --with-freetype-dir //支持 freetype、就要裝 freetype-devel、跟字體相關(guān)的、字體解析工具 --with-jpeg-dir --with-png-dir;
    注意:上面的二選項的作用:處理 jpeg、png 圖片的、php 可以動態(tài)生成 jpeg 圖片;
  • --with-zlib //是個壓縮庫、在互聯(lián)網(wǎng)傳輸時用來壓縮傳輸?shù)模?
  • --with-libxml-dir=/usr //這個 libxml 是用來解析 xml 的;
  • --enable-xml //支持 xml ;
  • --with-mhash //支持 mhash;
  • --with-mcrypt=/usr/local/libmcrypt //libmcrypt-devel 這個程序包所指定的;
  • --with-config-file-path=/etc //指定配置文件的存放路徑;
  • --with-config-file-scan-dir=/etc/php.d //配置文件掃描路徑;
  • --with-bz2 //支持 BZip2 為了支持 apache 的 worker 或 event 這兩個 MPM,編譯時使用了--enable-maintainer-zts 選項

如果使用 PHP5.3 以上版本,為了鏈接 MySQL 數(shù)據(jù)庫,可以指定 mysqlnd,這樣在本機(jī)就不需要先安裝 MySQL 或 MySQL 開發(fā)包了。mysqlnd 從 php 5.3 開始可用,可以編譯時綁定到它 (而不用和具體的 MySQL 客戶端庫綁定形成依賴),但從 PHP 5.4 開始它就是默認(rèn)設(shè)置

3)提供php配置文件
[root@localhost ~]# cp /usr/src/php-5.6.27/php.ini-production /etc/php.ini
//復(fù)制源碼包下的配置文件生成php的配置文件
4)創(chuàng)建php-fpm腳本
[root@localhost ~]# cp /usr/src/php-5.6.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
//復(fù)制源碼包下的啟動腳本
[root@localhost ~]# chmod +x /etc/init.d/php-fpm 
[root@localhost ~]# chkconfig --add php-fpm
//添加為系統(tǒng)服務(wù),現(xiàn)在還不可以啟動,因為還沒生成php服務(wù)器的配置文件
5)提供 php-fpm配置并進(jìn)行編輯
[root@localhost ~]# cd /usr/local/php5.6/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
//原本安裝完成的后配置文件不生效,所以需要改名(這是php-fpm的配置文件)
[root@localhost etc]# sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' php-fpm.conf
//指定pid文件存放位置
[root@localhost etc]# sed -i 's/listen = 127.0.0.1:9000/listen = 0.0.0.0:9000/g' php-fpm.conf
//修改監(jiān)聽地址為全部監(jiān)聽
[root@localhost etc]# sed -i 's/pm.max_children = 5/pm.max_children = 50/g' php-fpm.conf
//修改最大啟動的子進(jìn)程數(shù)為50
[root@localhost etc]# sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' php-fpm.conf
//修改初始啟動進(jìn)程數(shù)為5
[root@localhost etc]# sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' php-fpm.conf
//修改最小空閑子進(jìn)程數(shù)為5
[root@localhost etc]# sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 35/g' php-fpm.conf
//修改最大空閑子進(jìn)程為35
[root@localhost ~]# systemctl start php-fpm       //啟動php服務(wù)
[root@localhost ~]# netstat -anpt | grep 9000      //確定9000在監(jiān)聽
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      45563/php-fpm: mast 

如果防火墻是開啟的狀態(tài),需要進(jìn)行以下操作:

[root@localhost ~]#  firewall-cmd --permanent --add-port=9000/tcp 
[root@localhost ~]# firewall-cmd --reload 
//允許TCP9000訪問,重載以立即生效
[root@localhost ~]# mkdir -p /var/www/benet
//在該主機(jī)上新鍵虛擬主機(jī)目錄用于存放網(wǎng)頁文件

2.搭建Apache并配置通過fastcgi協(xié)議調(diào)用php

參考安裝Apache 進(jìn)行安裝Apache,這里就略過了,Apache安裝完成之后,需要進(jìn)行以下操作!

自從Apache 2.4以后已經(jīng)專門有一個模塊對FastCGI的實現(xiàn),此模塊為mod_proxy_fcgi.so,它其實是作為mod_proxy.so模塊的擴(kuò)充,因此以下兩個模塊需要被加載:

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_module modules/mod_proxy.so

操作如下:

[root@localhost ~]# vim /usr/local/http-2.4.23/conf/httpd.conf
//編輯httpd的主配置文件
……………………                 //省略部分內(nèi)容
# LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so         
# LoadModule proxy_module modules/mod_proxy.so
//去除模塊前面的“#”號,啟用模塊
#Include conf/extra/httpd-vhosts.conf         //去除“#”號,啟用虛擬主機(jī)配置文件
定位到AddType:添加以下一行:
AddType  application/x-httpd-php .php
//讓apache能識別php格式的頁面
定位到以下內(nèi)容:

    DirectoryIndex index.php index.html         //在index.html前面添加index.php 

[root@localhost ~]# vim /usr/local/http-2.4.23/conf/extra/httpd-vhosts.conf 
//編輯Apache的虛擬主機(jī)配置文件,修改為以下內(nèi)容:

    ServerAdmin admin@admin.com
    DocumentRoot "/var/www/benet"
    ServerName www.benet.com
    ServerAlias www.benet.com
    ErrorLog "logs/benet-error_log"
    CustomLog "logs/benet-access_log" common
    ProxyRequests Off                                         //關(guān)閉正向代理
        ProxyPassMatch  ^/(.*\.php(/.*)?)$  fcgi://192.168.1.3:9000/var/www/benet/$1    
        
 Options  FollowSymLinks          //禁止目錄遍歷  
 AllowOverride None        //允許請求為空
 Require all granted                 //允許所有客戶端訪問


[root@localhost ~]# mkdir -p /var/www/benet
[root@localhost ~]# systemctl restart httpd
//創(chuàng)建虛擬目錄之后,重啟httpd服務(wù)
ProxyPassMatch  ^/(.*\.php(/.*)?)$  fcgi://192.168.1.3:9000/var/www/benet/$1                  
//把以.php 結(jié)尾的文件請求發(fā)送到 php-fpm 進(jìn)程,php-fpm 至少需要知道運(yùn) 行的目錄和 URI,所以這里直接在 fcgi://192.168.1.3:9000 后指明了這兩個參數(shù),其它的參數(shù)的傳遞已經(jīng)被 mod_proxy_fcgi.so 進(jìn)行了封裝,不需要手動指定。 特別注意的是,IP地址后面的目錄路徑需要與 中的 DocumentRoot 后的路徑一致 。ProxyPassMatch 只有滿足特定正則模式的內(nèi)容才會匹配并執(zhí)行此規(guī)則,這里的模式是,^/(.*\.php(/.*)?)$ 從網(wǎng)站(虛擬主機(jī) 的根目錄開始,匹配任何以 .php 結(jié)尾,或者在 .php 之后 緊跟一個 / 再跟別的內(nèi)容的路徑。 ^ (caret) 和 $ (dollar)標(biāo)志要匹配的路徑的開始和結(jié)束 ( )括號里的內(nèi)容可以用 $1 來表示,以方便后面引用它。 fcgi:// 192.168.1.3:9000 通過 mod_proxy_fcgi 來轉(zhuǎn)發(fā)的代理,使用 fastCGI 協(xié)議,轉(zhuǎn)到 PHP-FPM 監(jiān)聽的端口。 /path/to/your/documentroot/ 非常重要!必須與虛擬主機(jī)的路徑匹配,且必須是對應(yīng) php 文件在操作系統(tǒng)中的絕對路徑。 否則會找不到文件。 
$1 可以從原始請求擴(kuò)展成整個請求路徑的變量,這里指代前面( ) 里面匹配的那個路徑(uri)

注意:Apache httpd 2.4 以前的版本中,要么把 PHP 作為 Apache 的模塊運(yùn)行,要么添加一個第 三方模塊支持 PHP-FPM 實現(xiàn)。

在php服務(wù)器上創(chuàng)建測試網(wǎng)頁:

[root@localhost ~]# cat /var/www/benet/index.php 
 

訪問效果如下:
部署LAMP動靜分離以及部署Discuz論壇
安裝這樣頁面,就表示Apache已經(jīng)可以和php協(xié)同工作了
以上是利用Apache的虛擬主機(jī)來調(diào)用php-fpm進(jìn)行工作,其實Apache本身就可以調(diào)用php-fpm,無需創(chuàng)建虛擬主機(jī)。

3. 搭建Mysql數(shù)據(jù)庫

由于編譯安裝Mysql數(shù)據(jù)庫需要很長的時間,本人提供Mysql安裝腳本及安裝所需軟件 一分鐘安裝完成(mysql數(shù)據(jù)庫的賬號root默認(rèn)的密碼是123)!

安裝完成之后,進(jìn)行以下操作:

[root@localhost ~]# mysql -u root -p123
mysql> grant all on *.* to lzj@'192.168.1.%' identified by '123456';
//創(chuàng)建數(shù)據(jù)庫用戶并進(jìn)行授權(quán)
mysql> exit

在php服務(wù)器填寫測試腳本:

[root@localhost ~]# cat /var/www/benet/test.php 

訪問進(jìn)行測試:
部署LAMP動靜分離以及部署Discuz論壇
看到這個頁面就表示Apache、PHP、Mysql可以協(xié)同工作了!

4.ab壓力測試工具

網(wǎng)絡(luò)性能壓力測試是服務(wù)器網(wǎng)站性能調(diào)優(yōu)過程中必不可缺少的一環(huán)。只有當(dāng)服務(wù)器處在高壓的情況下,才能體現(xiàn)出軟件、硬件等各種設(shè)置不當(dāng)所暴露的問題。

性能測試工具比較常用的就是:ab、http_load、webbench、siege。本篇博文只介紹ab工具。

ab是Apache自帶的壓力測試工具。ab非常實用,它不僅可以對apache服務(wù)器進(jìn)行網(wǎng)站訪問壓力測試,也可以對其他類型的服務(wù)器進(jìn)行壓力測試。比如:Nginx、Tomcat、IIS等。

(1)ab壓力測試工具的原理

ab命令會創(chuàng)建多個并發(fā)訪問線程,模擬多個訪問者同時對某一URL地址進(jìn)行訪問。它的測試目標(biāo)是基于URL的,因此,它既可以測試Apache的負(fù)載壓力,也可以測試Nginx、Tomcat、IIS等其他Web服務(wù)器的壓力。

ab命令對發(fā)出負(fù)載的計算機(jī)要求很低,它既不會占用很高的CPU,也不會占用很多內(nèi)存。但卻會給目標(biāo)服務(wù)器造成巨大的負(fù)載。進(jìn)行測試時,需要格外注意,否則可能一次性測試太多的負(fù)載,可能造成目標(biāo)服務(wù)器資源耗盡,嚴(yán)重導(dǎo)致死機(jī)。

(2)ab壓力測試工具的安裝

ab的安裝非常簡單,如果是源碼包進(jìn)行安裝Apache的話,Apache安裝完畢后,ab就存放在Apache安裝目錄的bin目錄下;
如果是使用yum的方式安裝Apache的話,ab命令默認(rèn)存放在/usr/bin目錄下;

注意:如果不想安裝Apache又想使用ab命令的話,就需要使用yum的方式安裝httpd-tools。

查看ab是否安裝成功,可以進(jìn)行以下測試:
部署LAMP動靜分離以及部署Discuz論壇
這是由于安裝openssl時指定的庫位置出現(xiàn)錯誤。
如果出現(xiàn)上述情況,解決方法如下:

[root@localhost ~]# export  LD_LIBRARY_PATH=/usr/local/openssl/lib/               //將所需模塊所在路徑導(dǎo)出為環(huán)境變量
[root@localhost ~]# /usr/local/http-2.4.23/bin/ab -V                        //這樣就可以正常使用
This is ApacheBench, Version 2.3 <$Revision: 1748469 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
(3)ab壓力測試命令的參數(shù)

ab命令常用的參數(shù)有兩個:

  • -n:在測試會話中所執(zhí)行的請求個數(shù)(總請求數(shù));
  • -c:一次產(chǎn)生的請求個數(shù)(即并發(fā)用戶數(shù));
[root@localhost ~]# cat /var/www/benet/index.html
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
//創(chuàng)建Apache的首頁文件
[root@localhost ~]# ab -c 500 -n 10000 http://192.168.1.1/index.html
//對192.168.1.1的Web服務(wù)器進(jìn)行測試
This is ApacheBench, Version 2.3 <$Revision: 1748469 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.1.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests

Server Software:        Apache/2.4.23
Server Hostname:        192.168.1.1
Server Port:            80

Document Path:          /index.html                  //請求的資源名稱
Document Length:        34 bytes                  //響應(yīng)數(shù)據(jù)的正文長度

Concurrency Level:      500                   //并發(fā)個數(shù)
Time taken for tests:   1.727 seconds       //處理這些請求所花費(fèi)的時間
Complete requests:      10000               //成功請求完成的次數(shù)
Failed requests:        0                          //失敗的請求次數(shù)
Total transferred:      2780000 bytes      //所有請求的響應(yīng)數(shù)據(jù)長度總和
HTML transferred:       340000 bytes         //請求的正文數(shù)據(jù)總和
Requests per second:    5788.87 [#/sec] (mean)      //吞吐量-每秒請求數(shù)(計算公式:請求的次數(shù)/用戶等待時間)吞吐量越大越好
Time per request:       86.373 [ms] (mean)        //用戶平均等待時間(計算方式:用戶等待時間/(請求的次數(shù)/并發(fā)))
Time per request:       0.173 [ms] (mean, across all concurrent requests)       //服務(wù)器平均等待時間(計算方式:用戶等待時間/完成請求的次數(shù))
Transfer rate:          1571.59 [Kbytes/sec] received   //用戶請求的數(shù)據(jù)大?。ㄓ嬎惴绞剑簲?shù)據(jù)總長度/用戶等待時間)

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   24 138.0      4    1034
Processing:     8   50  93.8     16     822
Waiting:        0   47  93.2     13     816
Total:         12   74 168.7     20    1255

Percentage of the requests served within a certain time (ms)
  50%     20
  66%     25
  75%     31
  80%     39
  90%    222
  95%    250
  98%    832
  99%   1050
 100%   1255 (longest request)
 //這部分?jǐn)?shù)據(jù)用于描述每個請求處理時間的分布情況
(4)ab壓力測試工具重要的性能指標(biāo)

在進(jìn)行性能測試過程中有幾個指標(biāo)比較重要:

1.吞吐量:服務(wù)器并發(fā)處理能力的量化描述。指的是在某個并發(fā)用戶數(shù)下單位時間內(nèi)處理的請求數(shù)。某個并發(fā)用戶數(shù)下單位時間內(nèi)能處理的最大請求數(shù),稱之為最大吞吐量。

注意:吞吐量是基于并發(fā)用戶數(shù)的。這句話的含義:

  • 吞吐量和并發(fā)用戶數(shù)有關(guān);
  • 不同的并發(fā)用戶數(shù)下,吞吐量是不同的;
    計算公式:總請求數(shù)/處理完成這些請求所花費(fèi)的時間。

2.并發(fā)連接數(shù):并發(fā)連接數(shù)指的是某個時刻服務(wù)器所接收的請求數(shù)目,簡單的講,就是一個會話。
3.并發(fā)用戶數(shù):一個用戶可以同時會產(chǎn)生一個會話或多個會話,也就是連接數(shù);
4.用戶平均等待時間:計算公式:處理完成所有請求數(shù)所花費(fèi)的時間/(總請求數(shù)/并發(fā)用戶數(shù));
5.服務(wù)器平均等待時間:計算公式:處理完成多有請求數(shù)所花費(fèi)的時間/總請求數(shù)。也就是吞吐量的倒數(shù)。同時也就是用戶平均等待時間/并發(fā)用戶數(shù)。

5.安裝php加速軟件Xcache

以下操作均在php服務(wù)器上完成。

下載Xcache軟件

(1)安裝xcache
[root@localhost ~]# tar zxf xcache-3.2.0.tar.gz -C /usr/src   
[root@localhost ~]# cd /usr/src/xcache-3.2.0/
[root@localhost xcache-3.2.0]#  /usr/local/php5.6/bin/phpize
Configuring for:
//需要使用phpize命令來生成configure配置文件
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
[root@localhost xcache-3.2.0]# ./configure --enable-xcache --enable-xcache-coverager \
--enable-xcache-optimizer --with-php-config=/usr/local/php5.6/bin/php-config && make && make install  
//編譯安裝之后,這條路徑至關(guān)重要:
Installing shared extensions:     /usr/local/php5.6/lib/php/extensions/no-debug-zts-20131226/

編譯配置參數(shù)詳解:

  • --enable-xcache:啟用xcache功能;
  • --enable-xcache-coverager:用于測試加速器功效和附加性;
  • --enable-xcache-optimizer:操作代碼優(yōu)化;
(2)創(chuàng)建xcache緩存文件
[root@localhost ~]# touch /tmp/xcache
[root@localhost ~]# chmod 777 /tmp/xcache 
(3)將xcache的后臺管理程序復(fù)制到網(wǎng)站目錄下
[root@localhost ~]# cp -r /usr/src/xcache-3.2.0/htdocs/ /var/www/benet/xcache
//以便使用web頁面進(jìn)行訪問,查看效果
(4)修改php的配置文件,讓其支持xcache
[root@localhost ~]# vim /etc/php.ini                   //編輯php的配置文件
//在末尾添加以下內(nèi)容
[xcache-common] 
extension = /usr/local/php5.6/lib/php/extensions/no-debug-zts-20131226/xcache.so 
//啟用php的xcache擴(kuò)展功能
[xcache.admin] 
xcache.admin.enable_auth = Off         //關(guān)閉xcache認(rèn)證
[xcache] 
xcache.shm_scheme ="mmap"            //決定xcache如何從系統(tǒng)共享內(nèi)存
//nmap是一種內(nèi)存映射文件的方法
xcache.size=60M              //所用共享緩存的大小,如果設(shè)置為0,將無法使用
xcache.count =1                  //將cache切分成多少塊,建議設(shè)置為cpu數(shù) 
xcache.slots =8K                //指作為hash槽個數(shù)的參考值
xcache.ttl=0                      //文件生存時間,設(shè)置為0將無限緩存
xcache.gc_interval =0          //觸發(fā)垃圾回收的時間間隔,默認(rèn)為0秒
xcache.var_size=64M           //針對變量的緩存
xcache.var_count =1 
xcache.var_slots =8K 
xcache.var_ttl=0 
xcache.var_maxttl=0 
xcache.var_gc_interval =300 
xcache.test =Off                   //關(guān)閉測試功能
xcache.readonly_protection = Off           //啟動會降低性能,但是略微提高安全性
xcache.mmap_path ="/tmp/xcache"          //用于只讀文件路徑
xcache.coredump_directory =""                
//在遇到故障時,放置核心轉(zhuǎn)儲功能,必須是php可寫入的目錄,保留為空表示禁用
xcache.cacher =On            //使用opcode緩存,xcache.size=0時無效
xcache.stat=On                 //使用stat發(fā)現(xiàn)檢查腳本的更新
xcache.optimizer =Off                 //禁用優(yōu)化
[xcache.coverager] 
xcache.coverager =On           //啟用代碼覆蓋信息采集器
xcache.coveragedump_directory =""        
//放置數(shù)據(jù)采集信息的目錄位置,默認(rèn)使用目錄/tmp/pcovis
[root@localhost ~]# scp -r /var/www/benet/xcache/  192.168.1.1:/var/www/benet
//將xcache網(wǎng)頁文件復(fù)制到Apache服務(wù)器網(wǎng)頁根目錄
[root@localhost ~]# systemctl restart php-fpm
//重新啟動php

客戶使用瀏覽器進(jìn)行訪問測試:
部署LAMP動靜分離以及部署Discuz論壇
如果現(xiàn)在對動態(tài)頁面進(jìn)行壓力測試,此時xcache就會緩存動態(tài)頁面信息,實際環(huán)境中一般也使用不到,所以這里就略過了。

三、部署Discuz論壇

下載Discuz論壇程序

php服務(wù)器進(jìn)行以下操作:

[root@localhost ~]# unzip Discuz_7.0.0_FULL_SC_UTF8.zip -d discus
//將Discuz軟件程序解壓到discus目錄
[root@localhost ~]# mv discus/Discuz_7.0.0_FULL_SC_UTF8/upload/ /var/www/benet/bbs
//將Discuz程序中的upload移動到網(wǎng)站跟目錄下
[root@localhost ~]# chown -R nobody:nobody /var/www/benet/bbs/
[root@localhost ~]# chmod -R 777 /var/www/benet/bbs/
//將目錄設(shè)置權(quán)限(測試環(huán)境賦予最大權(quán)限)
[root@localhost ~]# sed -i 's/short_open_tag = Off/short_open_tag = On/g' /etc/php.ini
//修改php服務(wù)器的配置文件
[root@localhost ~]# systemctl restart php-fpm                  //重啟php-fpm
[root@localhost ~]# echo "/var/www/benet  192.168.1.0/24(rw,sec=sys,sync,no_root_squash)" >> /etc/exports
[root@localhost ~]# systemctl restart nfs
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/var/www/benet 192.168.1.0/24
//配置nfs服務(wù),并重啟nfs服務(wù)

Mysql服務(wù)器進(jìn)行以下操作:

[root@localhost ~]# mysql -u root -p123      //登錄Mysql服務(wù)器
mysql> create database bbs;                //創(chuàng)建bbs數(shù)據(jù)庫

Apache服務(wù)器進(jìn)行以下操作:

[root@localhost ~]# mount -t nfs 192.168.1.3:/var/www/benet/ /var/www/benet
//將php服務(wù)器的網(wǎng)頁根目錄復(fù)制到Apache服務(wù)器網(wǎng)頁根目錄

客戶端訪問測試
部署LAMP動靜分離以及部署Discuz論壇
部署LAMP動靜分離以及部署Discuz論壇
部署LAMP動靜分離以及部署Discuz論壇
部署LAMP動靜分離以及部署Discuz論壇
部署LAMP動靜分離以及部署Discuz論壇
訪問論壇成功!

———————— 本文至此結(jié)束,感謝閱讀 ————————


分享題目:部署LAMP動靜分離以及部署Discuz論壇
本文網(wǎng)址:http://www.dlmjj.cn/article/ppdoed.html