LNMP---安裝worrdpress、discuz,域名重定向,用戶認證,nginx訪問日誌

4.34 安裝wordpress
4.35 安裝discuz
4.36 域名重定向
4.37 用戶認證
4.38 nginx訪問日誌php

 

擴展:html

1) cp   :cp -r 複製目錄

2)vi 批量查找替換,通常模式下輸入 :1,$s/要被替換的字符/替換成的字符/g
        若是字符串中含有/,則須要脫義, 1,$s/home\/123/home\/abc/g
        還有一種方法:1,$s#home/123#home/abc#g

nginx location優先級:前端

location /  優先級比 location ~ 要低,也就是說,若是一個請求(如,aming.php)同時知足兩個location
location /amin.php
location ~ *.php$
會選擇下面的

nginx location 文檔: https://github.com/aminglinux/nginx/tree/master/locationlinux


 

 

1、安裝wordpressnginx

建立博客:git

添加一個博客的虛擬主機github

blog.tobe.com.conf  作以下更改web

安裝博客worrdpress:數據庫

到官網下載或者獲取下載連接:vim

cd /data/wwwroot/blog.tobe.com  進入對應目錄

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

tar zxvf wordpress-5.2.4-zh_CN.tar.gz

mv wordpress/* ./    把解壓後的wordpress目錄下的全部文件放到當前的blog.tobe.com目錄下,並刪除wordpress和包

rm -rf wordpress wordpress-5.2.4-zh_CN.tar.gz

setenforce 0 臨時關閉selinux

瀏覽器訪問域名blog.tobe.com就能夠到安裝頁面

設置數據庫

建立庫:create database blog;
建立用戶:grant all on blog.* to 'blog'@'127.0.0.1' identified by 'tobej1';  受權給blog用戶全部權限,blog.*(blog庫的全部表)
切換某個庫: use blog;
查詢庫裏面有什麼表: show tables;

yum install -y expect  //爲了安裝mkpasswd命令,這個命令用來生產隨機密碼的
如, mkpasswd -s 0 -l 12

出現此問題說明沒有權限,更改完成後刷新頁面,而後填寫相關信息便可,安裝完成後會在blog庫中生成數據表

在安裝wordpress過程當中,須要設定網站程序目錄的權限,屬主設定爲php-fpm服務的那個用戶,爲了安全考慮,最好只給須要權限的文件或目錄權限
 chown -R php-fpm  /data/wwwroot/blog.aminglinux.cc


 

2、安裝discuz

discuz官網:http://www.discuz.net/forum.php

1)cp   :cp -r 複製目錄

2)vi   批量查找替換,通常模式下輸入 :1,$s/要被替換的字符/替換成的字符/g
        若是字符串中含有/,則須要脫義, 1,$s/home\/123/home\/abc/g
        還有一種方法:1,$s#home/123#home/abc#g
yum install -y git 

git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git   能夠臨時克隆到tmp目錄下

cp -r DiscuzX/upload  /data/wwwroot/discuz.tobe.com   -r拷貝目錄時使用,放到discuz.tobe.com目錄下

定義虛擬主機配置文件:   而後到windows上綁定hosts

1)cd /etc/nginx/conf.d
2)cp blog.aminglinux.cc.conf  discuz.tobe.com.conf
3)修改裏面的目錄
4)nginx -t && nginx -s reload

綁定hosts後,瀏覽器輸入discuz.tobe.com便可到安裝嚮導

此時提示不可寫,由於此時屬主都是root,須要把權限更改成php-fpm,只須要改:config data uc_server/data  uc_client/data,改完後刷新便可

cd /data/wwwroot/discuz.tobe.com
chown -R php-fpm  config data uc_server/data  uc_client/data

數據庫相關操做,定義完成後回到頁面完善數據庫信息安裝

create database discuz;

grant all on discuz.* to 'discuz'@127.0.0.1 identified by 'tobe123';

3、域名重定向

配置第二個域名,更改虛擬主機配置文件

cd /etc/nginx/conf.d

vi blog.tobe.com.conf        在 server_name 那一行的域名後面再加一個域名www.tobeblog.com,空格做爲分隔。

nginx -t
nginx -s reload

此時使用新添加的域名也能夠訪問此博客

域名重定向:

從a域名跳轉到b域名:

cd /etc/nginx/conf.d

vi blog.tobe.com.conf

if ($host = blog.tobe.com)        若是訪問的域名是blog.tobe.com
{
    rewrite /(.*) http://www.tobeblog.com/$1 permanent;      跳轉到www.tobeblog.com,/(.*)指下面標記位置後的全部內容(即.*)引用到跳轉的www.tobeblog.com後面
}

此時在頁面輸入blog.tobe.com就會跳到www.tobeblog.com

測試:

curl -x127.0.0.1:80 -I blog.tobe.com/1.txt  此時已經跳轉到了www.tobeblog.com

狀態碼:200(OK)  404(不存在)   304(緩存) 301(永久重定向)  302 (臨時重定向)

若是是域名跳轉,用301; 若是不涉及域名跳轉用302

rewrite /1.txt  /2.txt  redirect;  1.txt跳到2.txt,使用 redirect,爲302(臨時重定向)

4、用戶認證

用戶認證的目的:

實現二次認證,針對一些重要的目錄(後臺地址)

配置用戶認證:

yum install -y httpd-tools  
安裝後可使用htpasswd命令生成密碼文件

htpasswd -c /etc/nginx/user_passwd user1  user1爲用戶名, -c 生成新的文件,繼續生成的話使用-m(MD5加密),或者不加

cd /etc/nginx/conf.d

vim discuz.tobe.com.conf

添加:

location ~ admin.php            #location指定訪問什麼的時候,進行認證
    {
        auth_basic "Auth";
        auth_basic_user_file /etc/nginx/user_passwd;            #指定用戶密碼文件
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /data/wwwroot/discuz.tobe.com$fastcgi_script_name;
        include        fastcgi_params;

    }

二次認證後,若是直接下載了頁面,說明php沒有解析成功,須要加上下圖中解析php的部分

5、nginx訪問日誌

Nginx訪問日誌:

就是用戶訪問網站的記錄。

配置訪問日誌:

主配置文件,定義日誌格式            vim /etc/nginx/nginx.conf

虛擬主機配置文件,設置日誌存放目錄    vim /etc/nginx/conf.d/discuz.tobe.com.conf

此處在data目錄下設置了nginx的訪問日誌,須要建立logs目錄

access_log  /data/logs/discuz.access.log  main;

從新加載nginx後會生成日誌文件

nginx 主配置文件中的log_format,經常使用全局變量:

 https://github.com/aminglinux/nginx/blob/master/rewrite/variable.md

變量

說明

$args

請求中的參數,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2

$body_bytes_sent

服務器發送給客戶端的響應body字節數

$content_length

HTTP請求信息裏的"Content-Length"

$conten_type

HTTP請求信息裏的"Content-Type"

$document_root

nginx虛擬主機配置文件中的root參數對應的值

$document_uri

當前請求中不包含指令的URI,如www.123.com/1.php?a=1&b=2的$document_uri就是1.php,不包含後面的參數

$http_referer

記錄這次請求是從哪一個鏈接訪問過來的,能夠根據該參數進行防盜鏈設置

$host

主機頭,也就是域名

$http_user_agent

客戶端的詳細信息,也就是瀏覽器的標識,用curl -A能夠指定

$http_cookie

客戶端的cookie信息

$http_x_forwarded_for

當前端有代理服務器時,設置web節點記錄客戶端地址的配置,此參數生效的前提是代理服務器也要進行相關的x_forwarded_for設置

$limit_rate

若是nginx服務器使用limit_rate配置了顯示網絡速率,則會顯示,若是沒有設置, 則顯示0

$remote_addr

客戶端的公網ip

$remote_port

客戶端的port

$remote_user

若是nginx有配置認證,該變量表明客戶端認證的用戶名

$request

請求的URI和HTTP協議,如「GET /article-10000.html HTTP/1.1」

$request_body_file

作反向代理時發給後端服務器的本地資源的名稱

$request_method

請求資源的方式,GET/PUT/DELETE等

$request_filename

當前請求的資源文件的路徑名稱,至關因而$document_root/$document_uri的組合

$request_uri

請求的連接,包括$document_uri和$args

$scheme

請求的協議,如ftp,http,https

$server_protocol

客戶端請求資源使用的協議的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0等

$server_addr

服務器IP地址

$server_name

服務器的主機名

$server_port

服務器的端口號

$status

http狀態碼,記錄請求返回的狀態碼,例如:200、30一、404等

$uri

和$document_uri相同

$http_referer

客戶端請求時的referer,通俗講就是該請求是經過哪一個連接跳過來的,用curl -e能夠指定

$time_local

記錄訪問時間與時區,如18/Jul/2014:17:00:01 +0800

相關文章
相關標籤/搜索