部署LAMP動靜分離以及部署Discuz論壇

通過LAMP平臺部署及應用 已經可以部署出LAMP平臺,來面對客戶端的請求,但是由於這些組件都是在一臺服務器上進行安裝,如果出現問題,將導致LAMP平臺的癱瘓。在實際環境中,不可能將LAMP平臺都部署在同一臺服務器上,這就需要使用到LAMP動靜分離的技術。

博文大綱:
一、LAMP動靜分離的相關概念
1.PHP的工作模式
2.FastCGI模式的工作機制
二、實現LAMP動靜分離
1.FastCGI方式編譯安裝php
2.搭建Apache並配置通過fastcgi協議調用php

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

一、LAMP動靜分離的相關概念

要想實現LAMP動靜分離,最主要的還是PHP,因爲我們需要使用PHP解釋器來解析動態頁面,然後向Web服務器傳輸解析後的網站內容。我們下面重點介紹一下PHP。

1.PHP的工作模式

PHP在在LAMP環境下共有三種工作模式:

  • CGI模式:在這種模式下運行PHP,性能不是很好;
  • apache模塊:在這種模式下運行PHP,在LAMP平臺部署及應用 就是使用的這種模式,使用apache調用php完成工作;
  • FastCGI模式:在這種模式下運行PHP,PHP就是一處獨立的進程,所有的PHP子進程都由PHP的一個叫做php-fpm的組件負責管理;

2.FastCGI模式的工作機制

首選客戶端發起請求,請求一般分爲兩種:一種是靜態請求,可以直接由Apache響應直接返回客戶端所需資源;另一種動態請求,其中包含PHP或Perl這種腳本解釋型語言,則由Apache服務器通過fastcgi協議調用php服務器執行並返回給Apache,由Apache向客戶端返回客戶端所需資源,如果這個過程中涉及到對數據的操作,此時php服務器還會通過mysql協議調用mysql服務器。如圖:
部署LAMP動靜分離以及部署Discuz論壇

二、實現LAMP動靜分離

案例所需:

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

1.FastCGI方式編譯安裝php

獲取PHP所需軟件包

1)解決依賴關係

[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

配置選項相關解釋:

  • --prefix=/usr/local/php5.6 //指定安裝位置;
  • --with-mysql=mysqlnd //安裝連接mysql工具支持 mysql;
  • --with-pdo-mysql=mysqlnd //支持Mysql pdo 模塊
  • --with-mysqli=mysqlnd //支持 mysqli 模塊
    注意:上面的三選項的作用:數據庫與 php 不在一個服務器上,指定此種方式,安裝數據庫 連接驅動;
  • --with-openssl //支持 openssl 模塊;
  • --enable-fpm //支持 fpm 模式;
  • --enable-sockets //啓用 socket 支持;
  • --enable-sysvshm //啓用系統共享內存支持;
  • --enable-mbstring //多字節字串、像我們的中文就是多字節字串;
  • --with-freetype-dir //支持 freetype、就要裝 freetype-devel、跟字體相關的、字體解析工具 --with-jpeg-dir --with-png-dir;
    注意:上面的二選項的作用:處理 jpeg、png 圖片的、php 可以動態生成 jpeg 圖片;
  • --with-zlib //是個壓縮庫、在互聯網傳輸時用來壓縮傳輸的;
  • --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 數據庫,可以指定 mysqlnd,這樣在本機就不需要先安裝 MySQL 或 MySQL 開發包了。mysqlnd 從 php 5.3 開始可用,可以編譯時綁定到它 (而不用和具體的 MySQL 客戶端庫綁定形成依賴),但從 PHP 5.4 開始它就是默認設置

3)提供php配置文件

[root@localhost ~]# cp /usr/src/php-5.6.27/php.ini-production /etc/php.ini
//複製源碼包下的配置文件生成php的配置文件

4)創建php-fpm腳本

[root@localhost ~]# cp /usr/src/php-5.6.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
//複製源碼包下的啓動腳本
[root@localhost ~]# chmod +x /etc/init.d/php-fpm 
[root@localhost ~]# chkconfig --add php-fpm
//添加爲系統服務,現在還不可以啓動,因爲還沒生成php服務器的配置文件

5)提供 php-fpm配置並進行編輯

[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
//修改監聽地址爲全部監聽
[root@localhost etc]# sed -i 's/pm.max_children = 5/pm.max_children = 50/g' php-fpm.conf
//修改最大啓動的子進程數爲50
[root@localhost etc]# sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' php-fpm.conf
//修改初始啓動進程數爲5
[root@localhost etc]# sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' php-fpm.conf
//修改最小空閒子進程數爲5
[root@localhost etc]# sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 35/g' php-fpm.conf
//修改最大空閒子進程爲35
[root@localhost ~]# systemctl start php-fpm       //啓動php服務
[root@localhost ~]# netstat -anpt | grep 9000      //確定9000在監聽
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      45563/php-fpm: mast 

如果防火牆是開啓的狀態,需要進行以下操作:

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

2.搭建Apache並配置通過fastcgi協議調用php

參考安裝Apache 進行安裝Apache,這裏就略過了,Apache安裝完成之後,需要進行以下操作!

自從Apache 2.4以後已經專門有一個模塊對FastCGI的實現,此模塊爲mod_proxy_fcgi.so,它其實是作爲mod_proxy.so模塊的擴充,因此以下兩個模塊需要被加載:

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的主配置文件
……………………                 //省略部分內容
# LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so         
# LoadModule proxy_module modules/mod_proxy.so
//去除模塊前面的“#”號,啓用模塊
#Include conf/extra/httpd-vhosts.conf         //去除“#”號,啓用虛擬主機配置文件
定位到AddType:添加以下一行:
AddType  application/x-httpd-php .php
//讓apache能識別php格式的頁面
定位到以下內容:
<IfModule dir_module>
    DirectoryIndex index.php index.html         //在index.html前面添加index.php 
</IfModule>
[root@localhost ~]# vim /usr/local/http-2.4.23/conf/extra/httpd-vhosts.conf 
//編輯Apache的虛擬主機配置文件,修改爲以下內容:
<VirtualHost *:80>
    ServerAdmin [email protected]
    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                                         //關閉正向代理
        ProxyPassMatch  ^/(.*\.php(/.*)?)$  fcgi://192.168.1.3:9000/var/www/benet/$1    
<Directory "/var/www/benet">        
 Options  FollowSymLinks          //禁止目錄遍歷  
 AllowOverride None        //允許請求爲空
 Require all granted                 //允許所有客戶端訪問
</Directory>
</VirtualHost>
[root@localhost ~]# mkdir -p /var/www/benet
[root@localhost ~]# systemctl restart httpd
//創建虛擬目錄之後,重啓httpd服務
ProxyPassMatch  ^/(.*\.php(/.*)?)$  fcgi://192.168.1.3:9000/var/www/benet/$1                  
//把以.php 結尾的文件請求發送到 php-fpm 進程,php-fpm 至少需要知道運 行的目錄和 URI,所以這裏直接在 fcgi://192.168.1.3:9000 後指明瞭這兩個參數,其它的參數的傳遞已經被 mod_proxy_fcgi.so 進行了封裝,不需要手動指定。 特別注意的是,IP地址後面的目錄路徑需要與<VirtualHost> 中的 DocumentRoot 後的路徑一致 。ProxyPassMatch 只有滿足特定正則模式的內容纔會匹配並執行此規則,這裏的模式是,^/(.*\.php(/.*)?)$ 從網站(虛擬主機<VirtualHost> 的根目錄開始,匹配任何以 .php 結尾,或者在 .php 之後 緊跟一個 / 再跟別的內容的路徑。 ^ (caret) 和 $ (dollar)標誌要匹配的路徑的開始和結束 ( )括號裏的內容可以用 $1 來表示,以方便後面引用它。 fcgi:// 192.168.1.3:9000 通過 mod_proxy_fcgi 來轉發的代理,使用 fastCGI 協議,轉到 PHP-FPM 監聽的端口。 /path/to/your/documentroot/ 非常重要!必須與虛擬主機的路徑匹配,且必須是對應 php 文件在操作系統中的絕對路徑。 否則會找不到文件。 
$1 可以從原始請求擴展成整個請求路徑的變量,這裏指代前面( ) 裏面匹配的那個路徑(uri)

注意:Apache httpd 2.4 以前的版本中,要麼把 PHP 作爲 Apache 的模塊運行,要麼添加一個第 三方模塊支持 PHP-FPM 實現。

在php服務器上創建測試網頁:

[root@localhost ~]# cat /var/www/benet/index.php 
<?php 
phpinfo(); 
?> 

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

3. 搭建Mysql數據庫

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

安裝完成之後,進行以下操作:

[root@localhost ~]# mysql -u root -p123
mysql> grant all on *.* to 'lzj'@'192.168.1.%' identified by '123456';
//創建數據庫用戶並進行授權
mysql> exit

在php服務器填寫測試腳本:

[root@localhost ~]# cat /var/www/benet/test.php 
<?php
$link=mysql_connect('192.168.1.2','lzj','123456');
if($link) echo "恭喜你,數據庫連接成功!!!"; else echo "connect shibai";
mysql_close($link);
?>

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

4.ab壓力測試工具

網絡性能壓力測試是服務器網站性能調優過程中必不可缺少的一環。只有當服務器處在高壓的情況下,才能體現出軟件、硬件等各種設置不當所暴露的問題。

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

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

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

ab命令會創建多個併發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基於URL的,因此,它既可以測試Apache的負載壓力,也可以測試Nginx、Tomcat、IIS等其他Web服務器的壓力。

ab命令對發出負載的計算機要求很低,它既不會佔用很高的CPU,也不會佔用很多內存。但卻會給目標服務器造成巨大的負載。進行測試時,需要格外注意,否則可能一次性測試太多的負載,可能造成目標服務器資源耗盡,嚴重導致死機。

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

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

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

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

[root@localhost ~]# export  LD_LIBRARY_PATH=/usr/local/openssl/lib/               //將所需模塊所在路徑導出爲環境變量
[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壓力測試命令的參數

ab命令常用的參數有兩個:

  • -n:在測試會話中所執行的請求個數(總請求數);
  • -c:一次產生的請求個數(即併發用戶數);
[root@localhost ~]# cat /var/www/benet/index.html
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
//創建Apache的首頁文件
[root@localhost ~]# ab -c 500 -n 10000 http://192.168.1.1/index.html
//對192.168.1.1的Web服務器進行測試
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                  //響應數據的正文長度

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

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)
 //這部分數據用於描述每個請求處理時間的分佈情況

(4)ab壓力測試工具重要的性能指標

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

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

注意:吞吐量是基於併發用戶數的。這句話的含義:

  • 吞吐量和併發用戶數有關;
  • 不同的併發用戶數下,吞吐量是不同的;
    計算公式:總請求數/處理完成這些請求所花費的時間。

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

5.安裝php加速軟件Xcache

以下操作均在php服務器上完成。

下載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  
//編譯安裝之後,這條路徑至關重要:
Installing shared extensions:     /usr/local/php5.6/lib/php/extensions/no-debug-zts-20131226/

編譯配置參數詳解:

  • --enable-xcache:啓用xcache功能;
  • --enable-xcache-coverager:用於測試加速器功效和附加性;
  • --enable-xcache-optimizer:操作代碼優化;

(2)創建xcache緩存文件

[root@localhost ~]# touch /tmp/xcache
[root@localhost ~]# chmod 777 /tmp/xcache 

(3)將xcache的後臺管理程序複製到網站目錄下

[root@localhost ~]# cp -r /usr/src/xcache-3.2.0/htdocs/ /var/www/benet/xcache
//以便使用web頁面進行訪問,查看效果

(4)修改php的配置文件,讓其支持xcache

[root@localhost ~]# vim /etc/php.ini                   //編輯php的配置文件
//在末尾添加以下內容
[xcache-common] 
extension = /usr/local/php5.6/lib/php/extensions/no-debug-zts-20131226/xcache.so 
//啓用php的xcache擴展功能
[xcache.admin] 
xcache.admin.enable_auth = Off         //關閉xcache認證
[xcache] 
xcache.shm_scheme ="mmap"            //決定xcache如何從系統共享內存
//nmap是一種內存映射文件的方法
xcache.size=60M              //所用共享緩存的大小,如果設置爲0,將無法使用
xcache.count =1                  //將cache切分成多少塊,建議設置爲cpu數 
xcache.slots =8K                //指作爲hash槽個數的參考值
xcache.ttl=0                      //文件生存時間,設置爲0將無限緩存
xcache.gc_interval =0          //觸發垃圾回收的時間間隔,默認爲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                   //關閉測試功能
xcache.readonly_protection = Off           //啓動會降低性能,但是略微提高安全性
xcache.mmap_path ="/tmp/xcache"          //用於只讀文件路徑
xcache.coredump_directory =""                
//在遇到故障時,放置核心轉儲功能,必須是php可寫入的目錄,保留爲空表示禁用
xcache.cacher =On            //使用opcode緩存,xcache.size=0時無效
xcache.stat=On                 //使用stat發現檢查腳本的更新
xcache.optimizer =Off                 //禁用優化
[xcache.coverager] 
xcache.coverager =On           //啓用代碼覆蓋信息採集器
xcache.coveragedump_directory =""        
//放置數據採集信息的目錄位置,默認使用目錄/tmp/pcovis
[root@localhost ~]# scp -r /var/www/benet/xcache/  192.168.1.1:/var/www/benet
//將xcache網頁文件複製到Apache服務器網頁根目錄
[root@localhost ~]# systemctl restart php-fpm
//重新啓動php

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

三、部署Discuz論壇

下載Discuz論壇程序

php服務器進行以下操作:

[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移動到網站跟目錄下
[root@localhost ~]# chown -R nobody:nobody /var/www/benet/bbs/
[root@localhost ~]# chmod -R 777 /var/www/benet/bbs/
//將目錄設置權限(測試環境賦予最大權限)
[root@localhost ~]# sed -i 's/short_open_tag = Off/short_open_tag = On/g' /etc/php.ini
//修改php服務器的配置文件
[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服務,並重啓nfs服務

Mysql服務器進行以下操作:

[root@localhost ~]# mysql -u root -p123      //登錄Mysql服務器
mysql> create database bbs;                //創建bbs數據庫

Apache服務器進行以下操作:

[root@localhost ~]# mount -t nfs 192.168.1.3:/var/www/benet/ /var/www/benet
//將php服務器的網頁根目錄複製到Apache服務器網頁根目錄

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

———————— 本文至此結束,感謝閱讀 ————————

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章