部署LNMP平臺和相關的實驗
和連接數據庫的效果,實驗三為實現地址重寫的功能,實驗四為不同的瀏覽器,給出不同樣式的頁面
實驗一:部署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服務端配置,實現以下目標:
配置Fast-CGI支持PHP網頁
創建PHP測試頁面,測試使用PHP連接數據庫的效果
二、方案
使用2臺RHEL7虛擬機,其中一臺作為LNMP服務器(192.168.4.103)、
另外一臺作為測試用的Linux客戶機(192.168.4.101)
Nginx結合FastCGI技術即可支持PHP頁面架構,因此本案例,需要延續實驗一的實驗內容
通過修改Nginx及php-fpm配置文件實現對PHP頁面的支持
三、實施步驟
1、創建並修改php-fpm配置文件
[www]
listen = 127.0.0.1:9000 //php的監聽端口
listen.allowed_clients = 127.0.0.1 //
user = apache
group = apache
pm = dynamic //進程管理方式為動態
pm.max_children = 50 //最大進程數
pm.start_servers = 5 //最小進程數
pm.min_spare_servers = 5 //最少需要幾個空閑著的進程
pm.max_spare_servers = 35 //最多允許幾個進程處於空閑狀態
重啟服務
2、修改Nginx配置文件並啟動服務
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000; //把找到的頁面給php來解析
fastcgi_index index.php;
include fastcgi.conf; //包含的文件,此處需修改
}
重啟服務
3、創建PHP測試頁面,來測試是否能解析成功
[root@svr5 ~]# vim /usr/local/nginx/html/test1.php
<?php
$i="This is a test Page";
echo $i;
?>
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服務端配置,實現以下目標:
所有訪問a.html的請求,重定向到b.html;
所有訪問192.168.4.103的請求重定向至www.baidu.com;
所有訪問192.168.4.103/下面子頁面,重定向至www.baidu.com/下相同的頁面;
實現curl訪問不同的頁面。
二、方案
關於Nginx服務器的地址重寫,主要用到的配置參數是rewrite:
rewrite 舊地址或文件(支持正則表達式)新地址或文件 [選項];
三、實施步驟
步驟一:修改配置文件(訪問a.html重定向到b.html)
1、修改Nginx服務配置,只需要修改一行:
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
rewrite /a.html /b.html; //訪問a.html頁面時自動跳轉到b.html
}
}
2、創建兩個不同的頁面文件
3、重新加載服務,去客戶端測試
步驟二:修改配置文件(訪問192.168.4.5的請求重定向至www.baidu.com)
1、修改Nginx服務配置
server {
listen 80;
server_name www.test.com;
rewrite ^/ http://www.baidu.com/; // ^/表示以/開頭的所有,
即不管訪問www.test.com網站都會跳轉到www.baidu.com
location / {
root html;
index index.html index.htm;
}
}
2、重新加載配置文件,去客戶端測試
步驟三:修改配置文件(訪問www.test.com/下面子頁面,重定向至www.baidu.com/下相同的頁面)
1、修改Nginx服務配置
server {
listen 80;
server_name www.test.com;
rewrite ^/(.*) http://www.baidu.com/$1; //前面括號裏面的時正則表達式,$1復制前面的內容
location / {
root html;
index index.html index.htm;
}
}
2、重新加載文件,去客戶端測試
實驗四、不同瀏覽器得到不同樣式的頁面
其它同上,只需要在配置文件裏面加一個判斷語句
if ($http_user_agent ~* firefox){ //如果裏面有firefox字段,
rewrite ^/(.*) /curl/$1; //跳轉頁面
}
其它瀏覽器走默認的
部署LNMP平臺和相關的實驗