LNMP

        1.lnmp實現多個虛擬主機,分別部署wordpress和phpmyadmin應用,並設置phpmyadmin僅能經過https協議訪問;php

a.實現wordpress部署mysql

一:部署wordpress
nginx

    1)安裝,nginx,php-fpm,mysql-server,php-mysqlweb

    2)啓動nginx。php-fpm,mariadb服務sql

    3)配置nginx的主配置文件
數據庫

圖片.png

在http上下文裏面寫入一條include /nginx/vhost/*.conf;能夠讓/nginx/vhost/全部.conf結尾的文件中,全部http上下文內的指令生效;瀏覽器

     4)在/nginx/vhost/建立一個配置文件;bash

    配置內容以下
服務器

server {
        listen 8000;監聽8000端口
        server_name www.myadmin.com;服務名稱
        location  ~ \.php$ {
        root /myweb/word;  資源映射路徑
        index index.php;   默認的主頁
        fastcgi_index index.php;  //php-fpm默認反向代理的資源文件名
        fastcgi_pass 127.0.0.1:9000; //將請求的資源經過指定套接字發送給反向代理服務器
        fastcgi_param SCRIPT_FILENAME /myweb/word/$fastcgi_script_name; //php使用SCRIPT_FILENAME腳本執行/myweb/word/下的相應文件
        include /etc/nginx/fastcgi_params;
}
}

    5)從新載入配置文件,並經過瀏覽器訪問ide

        圖片.png       6)使用mysql建立用戶,數據庫,並給予相應的權限

圖片.png

    7)    登陸後,進入以下配置頁面,須要在wordpress目錄下建立wp-config.php並將下面指定文字複製進去

圖片.png

8)完成後,刷新,便可

圖片.png

 二:使用https配置phpmyadmin

    1)同理,建立新的配置文件

server {
        listen 443 ssl;
        server_name www.word.com;
        ssl_certificate /nginx/ssl/nginx.crt;  //CA頒發的證書
        ssl_certificate_key /nginx/ssl/nginx.key;  //對應的私鑰
        location / {
        root /myweb/myadmin;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /myweb/myadmin/$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
}
}

      2)此前,須要自行給nginx頒發證書

在一個指定目錄建立一個私鑰,好比爲nginx.key
# (umask 066;openssl genrsa -out nginx.key 2048)
Generating RSA private key, 2048 bit long modulus
.........................+++
.....................................+++
e is 65537 (0x10001)
使用該私鑰作證書申請(後綴應爲.csr)好比:nginx.csr
# openssl req -new -key nginx.key -out nginx.csr -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:HEBEI
Locality Name (eg, city) [Default City]:QHD
注意:應該保證此證書的國家省份和市與CA頒發機構的一致

給nginx頒發證書,通常頒發須要在/etc/pki/CA目錄下進行,因此
[root@bogon CA]# openssl ca -in nginx.csr -out certs/nginx.crt -days 365

頒發完成後,將頒發的證書複製到私鑰所在目錄

    3)建立相應的資源站點,重啓服務,使用https登陸

    圖片.png

使用本地用戶和密碼登陸

圖片.png

結束

    2.配置即便客戶端經過http協議訪問phpmyadmin站點,最終也能夠讓用戶使用https從新請求訪問;

   1)須要咱們作一個uri重定向

    我在端口號爲80的server下配置

        location ~ \.php$ {
        root /myweb/myadmin;
        index index.php;
        rewrite ^/(.*\.php)$  //當咱們訪問以.php結尾的重定向uir到https://172.16.0.149/尋找相應的資源,你訪問的什麼$1就表明什麼
        }
}

    2)保存退出,重載服務

    3)咱們使用火狐瀏覽器的F12能夠查看數據請求響應 的具體過程,能夠看到,咱們訪問172.16.0.149:80的時候,他們進行臨時的轉發

    圖片.png

    4)轉發到了https://172.16.0.149/index.php下

圖片.png

圖片.png

相關文章
相關標籤/搜索