1. 程式人生 > >部署LNMP平臺和相關的實驗

部署LNMP平臺和相關的實驗

php-fpm name nor fpm www. 需要 conf page nbsp

該實驗分為四個部分,實驗一為搭建LNMP平臺,實驗二為測試能否解析php的文件

和連接數據庫的效果,實驗三為實現地址重寫的功能,實驗四為不同的瀏覽器,給出不同樣式的頁面

實驗一:部署LNMP環境


一、目標

安裝部署Nginx、MariaDB、PHP環境

  • 安裝部署Nginx、MariaDB、PHP、PHP-FPM;

  • 啟動Nginx、MariaDB、FPM服務;

  • 並測試LNMP是否工作正常。



二、各軟件的安裝

1、安裝源碼包安裝時需要的依賴包

yum -y install gcc openssl-devel pcre-devel zlib-devel

2、源碼安裝nginx

useradd -s /sbin/nologin nginx //添加帳號和組

tar -xf nginx-1.8.0.tar.gz //解壓源碼包

cd nginx-1.8.0/ //進入解壓後的目錄

./configure \

> -prefix=/usr/local/nginx \ //指定安裝路徑

> -user=nginx \ //指定用戶名

> -group=nginx \ //指定用戶組

> -with-http_ssl_module //安裝安全模塊

make && make install //編譯和安裝

ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ //做軟鏈接,方便服務啟動

3、安裝mariadb

yum –y install mariadb mariadb-server mariadb-devel

mariadb-devel //指的是包含開發首要的文件和一些靜態庫

4、安裝php和php-fpm

yum –y install php php-mysql //安裝php解釋器和連接mysql的工具

rpm -ivh php-fpm-5.4.16-36.el7_1.x86_64.rpm //FastCGI進程管理器

5、啟動三個服務

nginx //啟動nginx服務

systemctl start mariadb //啟動mariadb數據庫

systemctl start php-fpm //啟動fastcgi進程管理器


實驗二、構建LNMP平臺

一、目標

沿用實驗一,通過調整Nginx服務端配置,實現以下目標:

  1. 配置Fast-CGI支持PHP網頁

  2. 創建PHP測試頁面,測試使用PHP連接數據庫的效果


二、方案

使用2臺RHEL7虛擬機,其中一臺作為LNMP服務器(192.168.4.103)、

另外一臺作為測試用的Linux客戶機(192.168.4.101)

Nginx結合FastCGI技術即可支持PHP頁面架構,因此本案例,需要延續實驗一的實驗內容

通過修改Nginx及php-fpm配置文件實現對PHP頁面的支持

三、實施步驟

1、創建並修改php-fpm配置文件

  1. [www]

  2. listen = 127.0.0.1:9000 //php的監聽端口

  3. listen.allowed_clients = 127.0.0.1 //

  4. user = apache

  5. group = apache

  6. pm = dynamic //進程管理方式為動態

  7. pm.max_children = 50 //最大進程數

  8. pm.start_servers = 5 //最小進程數

  9. pm.min_spare_servers = 5 //最少需要幾個空閑著的進程

  10. pm.max_spare_servers = 35 //最多允許幾個進程處於空閑狀態

    重啟服務

2、修改Nginx配置文件並啟動服務

  1. location / {

  2. root html;

  3. index index.php index.html index.htm;

  4. }

  5. location ~ \.php$ {

  6. root html;

  7. fastcgi_pass 127.0.0.1:9000; //把找到的頁面給php來解析

  8. fastcgi_index index.php;

  9. include fastcgi.conf; //包含的文件,此處需修改

  10. }

    重啟服務

3、創建PHP測試頁面,來測試是否能解析成功

  1. [root@svr5 ~]# vim /usr/local/nginx/html/test1.php

  2. <?php

  3. $i="This is a test Page";

  4. echo $i;

  5. ?>


4、創建PHP測試頁面,連接MariaDB數據庫

<?php

$links=mysql_connect("localhost","root","");

if($links){

echo "link mysqldb ok";

}

else{

echo "link mysqldb no";

}

?>

5、創建PHP測試頁面,連接並查詢MariaDB數據庫

<?php

$mysqli = new mysqli('localhost','root','','mysql');

if (mysqli_connect_errno()){

die('Unable to connect!'). mysqli_connect_error();

}

$sql = "select * from user";

$result = $mysqli->query($sql);

while($row = $result->fetch_array()){

printf("Host:%s",$row[0]);

printf("</br>");

printf("Name:%s",$row[1]);

printf("</br>");

}

?>

日誌文件的兩個地址: /usr/local/nginx/logs/error.log /var/log/php-fpm/error.log



實驗三、地址重寫


一、實驗目標

沿用實驗一,通過調整Nginx服務端配置,實現以下目標:

  1. 所有訪問a.html的請求,重定向到b.html;

  2. 所有訪問192.168.4.103的請求重定向至www.baidu.com;

  3. 所有訪問192.168.4.103/下面子頁面,重定向至www.baidu.com/下相同的頁面;

  4. 實現curl訪問不同的頁面。




二、方案

關於Nginx服務器的地址重寫,主要用到的配置參數是rewrite:

rewrite 舊地址或文件(支持正則表達式)新地址或文件 [選項];


三、實施步驟

步驟一:修改配置文件(訪問a.html重定向到b.html)

1、修改Nginx服務配置,只需要修改一行:

  1. server {

  2. listen 80;

  3. server_name localhost;

  4. location / {

  5. root html;

  6. index index.html index.htm;

  7. rewrite /a.html /b.html; //訪問a.html頁面時自動跳轉到b.html

  8. }

  9. }

2、創建兩個不同的頁面文件

3、重新加載服務,去客戶端測試

步驟二:修改配置文件(訪問192.168.4.5的請求重定向至www.baidu.com)

1、修改Nginx服務配置

  1. server {

  2. listen 80;

  3. server_name www.test.com;

  4. rewrite ^/ http://www.baidu.com/; // ^/表示以/開頭的所有,

  5. 即不管訪問www.test.com網站都會跳轉到www.baidu.com

  6. location / {

  7. root html;

  8. index index.html index.htm;

  9. }

  10. }

2、重新加載配置文件,去客戶端測試

步驟三:修改配置文件(訪問www.test.com/下面子頁面,重定向至www.baidu.com/下相同的頁面)

1、修改Nginx服務配置

  1. server {

  2. listen 80;

  3. server_name www.test.com;

  4. rewrite ^/(.*) http://www.baidu.com/$1; //前面括號裏面的時正則表達式,$1復制前面的內容

  5. location / {

  6. root html;

  7. index index.html index.htm;

  8. }

  9. }

2、重新加載文件,去客戶端測試


實驗四、不同瀏覽器得到不同樣式的頁面

其它同上,只需要在配置文件裏面加一個判斷語句

if ($http_user_agent ~* firefox){ //如果裏面有firefox字段,

rewrite ^/(.*) /curl/$1; //跳轉頁面

}

其它瀏覽器走默認的






























部署LNMP平臺和相關的實驗