LNMP的搭建

LNMP就是

 Linux作為服務器的操作系統(tǒng)
 Nginx作為Web服務器
 PHP作為解析動態(tài)腳本語言
 MySQL即為數(shù)據(jù)庫

Nginx服務本身不能處理PHP的請求,那么當用戶發(fā)起PHP動態(tài)請求, Nginx又是如何進行處理的。
有兩種方法:
1.將PHP頁面的解析請求轉發(fā)給Apache處理
2.將PHP頁面的解析請求轉發(fā)給php-fpm模塊
用戶–>http協(xié)議–>Nginx–>fastcgi–>php-fpm

1.用戶通過http協(xié)議發(fā)起請求,請求會先抵達LNMP架構中的Nginx
2.Nginx會根據(jù)用戶的請求進行判斷,這個判斷是有Location進行完成
3.判斷用戶請求的是靜態(tài)頁面,Nginx直接進行處理
4.判斷用戶請求的是動態(tài)頁面,Nginx會將該請求交給fastcgi下發(fā)
5.fastgi會將請求交給php-fpm管理進程, php-fpm管理進程接收到后會調用具體的工作線程wrapper
6.wrapper線程會調用php進行解析,如果只是解析代碼php直接返回
7.如果有查詢數(shù)據(jù)庫操作,則由php連接數(shù)據(jù)庫(用戶 密碼 IP)然后發(fā)起查詢的操作
8.最終數(shù)據(jù)由mysql->php->php-fpm->fastcgi->nginx->http->user

下面開始實踐:
這里使用的軟件版本為:Nginx 1.16 MySQL 5.6 PHP 7.1

一.N

首先安裝nginx服務

yum install nginx -y

第二步:設置開機自啟

systemctl start nginx
systemctl enable nginx

二.M

1.下載MySQL官方擴展源

[root@nginx ~]# rpm -ivh http://repo.mysql.com/yum/mysql-5.6-community/el/7/x86_64/mysql-community-release-el7-5.noarch.rpm

2.安裝

yum install mysql-community-server -y

3.啟動數(shù)據(jù)庫, 并加入開機自啟動

[root@nginx ~]# systemctl  start mysqld
[root@nginx ~]# systemctl enable mysqld

4.登錄數(shù)據(jù)庫和重置數(shù)據(jù)庫密碼

[root@web01 ~]# mysql -u root
……
mysql> 
mysql> exit
###5.6默認無密碼
###為了安全,必須給root設置密碼
[root@nginx ~]# mysqladmin -u root password 123456
如果已經(jīng)有密碼,再次修改
[root@web01 ~]# mysqladmin -u root -p123456 password 123321

6.使用密碼登陸mysql

[root@web01 ~]# mysql -u root -p123321
…
mysql> 
###此步為檢查密碼

三.P

1.移除舊版php(之前有通過Base或epel庫安裝過php的,必須執(zhí)行這個操作)

yum remove php-mysql-5.4 php php-fpm php-common

2.安裝擴展源

[root@nginx ~]# yum localinstall -y http://mirror.webtatic.com/yum/el7/webtatic-release.rpm                    
 <=====自己做了rpm包,所以yum localinstall安裝

3.安裝php7.1版本

[root@nginx ~]# yum -y install php71w php71w-cli php71w-common php71w-devel \
php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm \
php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
yum localinstall -y *.rpm
進入/etc/yum.repos.d/
vim webtatic.repo

4.啟動php-fpm管理進程, 并加入開機自啟

[root@nginx ~]# systemctl start php-fpm
[root@nginx ~]# systemctl enable php-fpm

四:組合

驗證Nginx是否能正常解析php動態(tài)請求,以及php程序能否正常連接數(shù)據(jù)庫
1.創(chuàng)建一個測試站點

[root@nginx /application/nginx/conf/extra]# cat /application/nginx/conf/extraphp.conf 
server {
        server_name www.oldboy.com;
        listen 80;
        root  html/php;
        index index.php index.html;

        location ~ \.php$ {
                root  html/php;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
        }
}
###這里目錄都為yum安裝后的目錄(僅供參考)

2.新增info.php, 測試php解析是否工作正常

[root@web01 ~]# cat /application/nginx/html/php/index.php
<?php
        phpinfo();
?>

3.測試php是否能連接mysql數(shù)據(jù)庫服務[無論是本地數(shù)據(jù)庫還是遠程數(shù)據(jù)庫,測試方式一致

[root@web01 ~]# cat /code/mysqli.php
<?php
        $servername = "localhost";
        $username = "*********";                       #####用戶名
        $password = "*********";                       #####用戶密碼

        // 創(chuàng)建連接
        $conn = mysqli_connect($servername, $username, $password);

        // 檢測連接
        if (!$conn) {
            die("Connection failed: " . mysqli_connect_error());
        }
        echo "連接成功";
?>

五:部署博客(wordpress)

1.配置Nginx虛擬主機站點,域名為blog.zyl666.com

[root@web01 conf]# cat blog.conf 
server {
    listen 80;
    server_name blog.zyl666.com;
    root conf/wordpress;
    index index.php index.html;

    location ~ \.php$ {
        root  conf/wordpress;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

2.獲得wordpress源碼

wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

3.解壓網(wǎng)站源碼文件,拷貝至對應站點目錄,并授權站點目錄

[root@nginx tools]# tar xf wordpress-4.9.4-zh_CN.tar.gz
[root@nginx tools]# mv wordpress /application/nginx/conf/

4.重載nginx和php-fpm

systemctl reload nginx php-fpm

5.由于wordpress產品需要依賴數(shù)據(jù)庫, 所以需要手動建立數(shù)據(jù)庫

[root@web01 conf]# mysql -u root -p*******  <====這里的密碼為自己那會設置的密碼
mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)
mysql> exit
Bye

wordpress進去后會提示讓你創(chuàng)一個文件里面鍵入內容,直接把提示的內容放進去就可以,如果想上傳圖片,需要給wordpress底下的目錄wp-content提權

附贈本人結果圖片:


image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容