安裝wordpress,安裝discuz,域名重定向,用戶認證,nginx訪問日誌

安裝wordpress

  • 下載wordpress壓縮包
  • 解壓縮到nginx指定的根目錄中
  • 把解壓目錄裏面的內容所有移到根目錄中
  • 再把壓縮文件和解壓目錄刪除
  • 而後須要建立一個數據庫
  • 如圖,進入數據庫後,使用 create database blog
  • 這樣就建立了一個叫作 blog 的數據庫了
  • 先使用 ctrl + z 暫停數據庫的操做,回到 shell
  • 使用 mkpasswd 命令生成一個隨機密碼,一會建立表須要用到
  • 下面返回了一串隨機密碼
  • 若是 mkpasswd 這個命令不存在的話
  • 就須要安裝一下,yum install -y expect
  • 如圖,mkpasswd 有兩個選項分別是 -s 和 -l
  • 這裏 -s 0 表示生成的隨機密碼有 0 個特殊字符
  • 特殊字符就是 # $ 之類的特殊符號
  • 這裏 -l 12 表示生成的隨機密碼長度爲 12 位
  • 因此這個命令會生成長 12位,不含特殊字符的密碼
  • 如圖使用這些選項,默認密碼長度是9位,含有特殊字符的
  • 如圖,這是賦予權限的命令
  • grant all on blog.*
  • blog.* 表示數據庫 blog 下面的全部表,* 表明全部表
  • grant all on blog.* 就是把全部權限賦予blog數據庫下的全部表
  • to 'blog'@'127.0.0.1' 這個表示用戶和ip地址
  • 擁有blog數據庫下全部表的全部權限的用戶是 'blog'@'127.0.0.1'
  • 用戶名+主機名稱或者地址 就構成了一個權限用戶
  • 意思就是 這個用戶經過這個主機地址鏈接數據庫的時候
  • 就會擁有前面所賦予的權限
  • 若是不是這個用戶名稱,或者是這個用戶名稱
  • 可是不是經過這個地址來鏈接數據庫
  • 那麼就不會擁有前面賦予的權限
  • 這個權限的惟一標識就是 用戶名blog + 主機地址127.0.0.1
  • 127.0.0.1是本機迴環地址
  • 意思就是經過本機內部鏈接
  • 因此這個權限的賦予對象是 blog用戶經過服務器本機網絡鏈接數據庫
  • 纔會具備前面賦予的權限
  • identified by 'aExsz8Ef1rjp'
  • aExsz8Ef1rjp就是剛纔生成的12位隨機密碼
  • 這裏是指定了登陸密碼
  • 意思就是使用blog用戶本機鏈接這個數據庫的時候
  • 須要使用aExsz8Ef1rjp這個密碼才能鏈接
  • 回車執行命令後退出數據庫
  • 如圖,使用 mysql -ublog -paExsz8Ef1rjp -h127.0.0.1 登陸數據庫
  • 成功登陸,這就代表剛纔的設置成功了
  • 下面使用 show databases 查看現有的數據庫列表
  • 能夠看到 blog 數據庫已經存在了
  • 如圖,啓動nginx服務,登陸 tom.blog.com 域名
  • 點擊下面的圖標
  • 第一個寫數據庫名稱
  • 第二個寫登陸數據庫的用戶名稱
  • 第三個是登陸數據庫須要的驗證密碼
  • 第四個是鏈接的目標 ip 地址
  • 第五個前綴就保持默認狀態就行了
  • 而後點擊提交
  • 這裏的 127.0.0.1 是目標ip地址
  • 剛纔賦予權限的 127.0.0.1 是來源ip地址
  • 127.0.0.1 表明本機的ip地址
  • 因此 來源127.0.0.1 鏈接 目標127.0.0.1
  • 就是 本機 鏈接 本機 的意思
  • 這裏就是 wordpress 經過 blog用戶從127.0.0.1 這個ip地址
  • 鏈接到 127.0.0.1 這個地址上的數據庫 blog
  • 提交以後進入這個頁面
  • 這裏說,沒法寫入 wp-config.php 文件
  • cd 進入 /tmp/tomblog 目錄
  • 這個目錄是wordpree虛擬機的根目錄
  • wordpress程序的文件都存放在這裏
  • 剛纔發生的錯誤信息,是php-fpm用戶要在這個目錄裏面
  • 寫入一個 wp-config.php 文件
  • 如圖,能夠看到,這個目錄的全部者所屬組都是 root
  • 其它用戶對於這個目錄的權限只有 讀 和 執行
  • 是沒有寫入權限的
  • 因此 php-fpm 用戶想要在這個目錄寫入 wp-config.php 文件
  • 是沒有這個權限的
  • 解決辦法是,把這個目錄還有裏面的文件的全部者全都改爲 php-fpm用戶
  • 這樣 php-fpm 服務就能夠隨意讀寫這個目錄還有裏面的內容了
  • 如圖,chown -R php-fpm .
  • 查看目錄信息,能夠看到,目錄還有裏面的文件
  • 全部者全都變成了 php-fpm 用戶了
  • 修改用戶後,回到瀏覽器,點擊安裝
  • 語言選擇中文
  • 而後就會進入上圖頁面
  • 站點標題是設置自定義一個網站名稱
  • 用戶名也是自定義一個
  • 密碼自定義一個
  • 郵件隨便設置一個,不過設置了也收不到郵件
  • 由於目前系統並無開啓郵件服務
  • 因此只是一個不存在的郵箱
  • 寫完信息就能夠點擊安裝
  • 如圖,在數據庫裏面,use blog 就能夠進入 blog數據庫
  • show tables; 就能夠顯示blog數據庫裏面的全部表
  • ctrl + d 退出數據庫
  • 回到瀏覽器,點擊登陸按鍵
  • 輸入 用戶名 密碼
  • 就能夠登陸到剛纔裝好的博客裏面了
  • 如圖,這就是登陸進去的博客頁面了
  • 博客裏面能夠寫入文章,或者發表評論等等
  • 剛纔進入 blog 數據庫
  • 裏面有不少的表格,文章,評論等等信息
  • 就是保存在這些表格裏面
  • 包括用戶名,密碼也保存在這些表格裏面

安裝discuz

  • discuz 是一個論壇程序
  • 也是php作的網站
  • 百度一下官網,點進去
  • 這個是官網頁面,下載程序點擊程序發佈
  • 如圖,複製圖中的下載地址
  • 能夠在 linux 裏面使用 git 工具下載這個程序
  • 要使用 git 工具,須要先安裝git包
  • 使用上圖命令安裝git
  • git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git
  • git clone + 鏡像地址 就能夠下載程序回來
  • ls 查看當前目錄
  • 能夠看到,多了 DiscuzX 目錄,這個目錄就是被下載回來的目錄
  • 須要的程序就在這個目錄裏面
  • 如圖,進入下載好的 discuzx 目錄裏面
  • upload 目錄就是程序所在的目錄
  • 如圖,複製 upload 目錄到 data 目錄下面,並更名爲 tom.bbs
  • cp 的 r 選項能夠複製目錄,不加 r 就不能複製目錄
  • cd 進入 /etc/nginx/conf.d 目錄
  • 增長一個虛擬主機的配置文件
  • 如圖,cp tom.blog 複製一份並更名爲 tom.bbs
  • tom.bbs虛擬主機是用來運行論壇網站的
  • 而後 vi tom.bbs 進去修改一些參數
  • 把 server_name 改一下,變成 tom.bbs.com
  • 1,$s#tmp/tomblog#data/tom.bbs#g
  • 使用以上命令把全部 tmp/tomblog
  • 替換爲 data/tom.bbs
  • 1,$ 表示從第一行到最後一行
  • s 表示使用查找替換功能
  • 表示分隔符,也能夠用 / 可是若是替換字符裏面有 / 字符,會有衝突

  • 因此使用 # 作分隔符比 / 方便一些
  • tmp/tomblog 表示被替換的字符串
  • 後面的 data/tom.bbs 表示替換的字符串
  • 最後的 g 表示全局替換
  • 若是不使用g,那麼只會替換每一行遇到的第一個符合條件的字符串
  • 若是一行中有兩個符合條件的字符串,第二個不會被替換
  • 可是咱們要求每一個符合要求的字符串都被替換,因此要全局替換才行
  • 修改完就保存退出
  • C:\Windows\System32\drivers\etc 找到windows裏面的這個目錄
  • 打開裏面的 hosts 文件
  • 如圖,把 tom.bbs.com 跟這個ip地址綁定
  • 這樣就能夠經過瀏覽器訪問到這個域名了
  • 沒有錯誤就下一步
  • 如圖,這是要填寫數據庫的信息
  • 因此須要先在linux系統裏面建立一個數據庫
  • 建立完成後,再把相應的信息填寫到這裏
  • 進入linux 打開數據庫
  • 建立 bbs 數據庫
  • 下面是賦予權限,賦予 bbs數據庫下面全部表全部權限
  • 登陸用戶是 bbs 經過 127.0.0.1 地址登陸
  • identified 後面是 登陸密碼
  • ctrl+z 暫停當前任務,回到shell
  • 如圖,使用 mkpasswd -s 0 -l 12
  • 產生一個隨機密碼,不含特殊字符,長度12位
  • 使用 fg 回到數據庫
  • 如圖,把隨機密碼填上去,而後回車
  • 這樣就成功建立數據庫bbs了
  • 如圖,測試一下,用戶密碼,登陸地址,登陸進去
  • 查看一下數據庫,能夠看到 bbs 數據庫
  • 沒有問題,退出
  • 如圖,首先填寫數據庫的ip地址
  • 由於賦予權限的時候就設置了是從本機登陸
  • 因此數據庫服務器的地址就是本機迴環地址 127.0.0.1
  • 第二個數據庫名稱是 bbs
  • 第三個數據庫登陸用戶也是 bbs
  • 第四個密碼就是剛纔生成的隨機密碼
  • 其它保持默認
  • 下面管理員密碼設置一下,設置爲123456
  • 填寫完能夠點擊下一步
  • 安裝完成,成功進入了論壇網站

域名重定向

  • 重定向就是當你訪問一個域名 a 的時候
  • 系統會自動跳轉到域名 b
  • 域名b 是自定義的另一個域名
  • 要實現重定向
  • 首先 cd /etc/nginx/conf.d
  • 經過修改配置文件就能夠實現重定向
  • 而後 vi tom.blog.com 編輯配置文件
  • 如圖,原來的 server_name 只有一個域名
  • 如今在原來的域名後面增長一個新的域名叫作 tom2.blog.com
  • 而後保存退出
  • 而後 nginx -t && nginx -s reload 檢查重載一下配置文件
  • 而後windows的hosts文件裏面也須要把這個域名綁定主機ip地址
  • 這樣使用 tom2.blog.com 也能夠登陸 blog 網站了
  • 如今,就有兩個域名能夠訪問同一個網站了
  • 可是,當一個網站存在多個域名的時候
  • 有一個域名是主要的域名
  • 其它域名爲副的域名
  • 域名重定向就是訪問 副的域名時,會自動跳轉到 主要的域名
  • 如圖,在 server_name 下面一行加入一段代碼
if ( $host = tom.blog.com ){
	rewrite /(.*) http://tom2.blog.com/$1 permanent;
}
  • 這行代碼的意思,$host = tom.blog.com
  • 表示若是訪問的域名是 tom.blog.com
  • 就會執行括號裏面的代碼
  • rewrite 是重寫的意思
  • 正則表達式 . 表示匹配一個字符,*表示任意次數
  • 因此 .* 就表示匹配任意個字符
  • 這裏 /(.*) 就表示 / 號後面的全部字符
  • 如圖, / 是指域名 tom2.blog.com 後面的 /
  • .* 用括號括起來是由於括起來可使用 $1 表明括號的內容
  • 後面的 http://tom2.blog.com/$1
  • 這裏的 $1 就表示前面括號裏面的內容
  • 意思就是 前面括號裏面的內容 被放到 $1的這個位置來
  • 效果就是若是訪問 tom.blog.com 這個域名
  • 服務器會自動跳轉到 http://tom2.blog.com/ 這個域名
  • 如圖,訪問 tom.blog.com 這個域名
  • 如圖,回車以後,域名自動從 tom.blog.com 跳轉到 tom2.blog.com
  • 如圖,在網站內隨便點擊一個文件
  • 能夠看到 tom2.blog.com /後面出現了一些數據
  • 這些數據就表示點擊的文件的路徑
  • 這就是配置文件代碼裏面的指令
  • 把原來域名的 / 後面的全部信息都替換到 http://tom2.blog.com/ 後面了

  • 除了在windows瀏覽器測試域名跳轉以外
  • 還能夠在服務器上面測試跳轉
  • 如圖,在服務器上,使用 curl 命令就能夠測試跳轉是否成功
  • 這裏 -x127.0.0.1:80 是鏈接網站的地址和端口號
  • 選項 -I 意思是隻顯示 header 信息
  • 若是不加這個選項,會有不少別的多餘信息顯示出來
  • 最後接 tom.blog.com/bbs/1.txt
  • 這是要訪問的域名和網站內的文件
  • 按照配置文件的代碼,後面的 bbs/1.txt
  • 會放到 http://tom2.blog.com/ 的後面去
  • 看下面 location
  • 後面顯示的鏈接域名是 http://tom2.blog.com/bbs/1.txt
  • 這就表示跳轉是成功的

  • 常看到的網絡鏈接的狀態碼
  • 200 表示 ok
  • 404 表示 不存在
  • 304 表示 緩存
  • 301 表示 永久重定向
  • 302 表示 臨時重定向
  • 如圖,vi /etc/nginx/conf.d/tom.blog.conf 編輯配置文件
  • 加入上圖那一行代碼
  • rewrite /1.txt /2.txt redirect;
  • 意思就是在域名內訪問 1.txt 的路徑
  • 就會臨時重定向到 2.txt 的路徑去
  • redirect 表示臨時重定向
  • permanent 表示永久重定向
  • 保存退出
  • nginx -t && nginx -s reload 檢測重載一下
  • 使用 curl 測試是否跳轉成功
  • 第一個 curl 從 tom.blog.com/1.txt 跳轉到 tom2.blog.com/1.txt
  • 訪問 tom.blog.com 這個域名只會跳轉到 tom2.blog.com
  • 包括 / 後面的路徑也會放到 tom2.blog.com/ 後面
  • 由於訪問域名只會跳轉一次,而不是兩次
  • 因此只會從 tom 跳轉到 tom2
  • 直接訪問 tom2.blog.com/ 的話,就不須要跳轉到 tom2
  • 那麼就會執行臨時重定向進行跳轉
  • 第二個 curl 就是訪問 tom2.blog.com/1.txt
  • 下面能夠看到跳轉到了 http://tom2.blog.com/2.txt
  • 須要用到 域名跳轉的時候 就使用 永久重定向
  • 若是是域名內,文件路徑的跳轉,就使用臨時重定向

用戶認證

  • 用戶認證就是二次認證
  • 好比登陸論壇管理員須要用到管理員用戶名跟密碼
  • 輸入後就能夠登陸了
  • 可是爲了防止論壇管理員用戶名密碼泄露致使的風險
  • 因此還能夠進行二次認證
  • 第一次認證就是論壇管理員用戶名跟密碼
  • 第二次認證能夠在配置文件裏面進行設置
  • cd 進入 /etc/nginx/conf.d/
  • vi tom.bbs.conf
  • 如圖 添加一個代碼塊
location /admin.php{
	auth_basic "Auth";
	auth_basic_user_file /etc/nginx/user_passwd;
}
  • 這個代碼塊的意思就是 對於根目錄的 admin.php文件執行操做
  • 如圖,若是不設置二次認證,點擊管理中心
  • 就會進入管理中心頁面,要求輸入管理員密碼登陸管理中心
  • 可是這樣的驗證太簡單,剛纔在配置文件內設置了第二重驗證
  • 如圖,點擊域名位置,能夠看到,這個管理中心頁面的文件路徑是 /admin.php
  • 因此上面代碼塊 location /admin.php
  • 意思就是針對這個頁面文件進行二重驗證
  • 若是要執行 admin.php 文件就必須先驗證經過才行
  • 代碼塊的內容,能夠看到 auth_basic "Auth"
  • 這一行表示須要認證的意思
  • 下面一行 auth_basic_user_file /etc/nginx/user_passwd;
  • 表示認證的用戶密碼文件路徑是 /etc/nginx/user_passwd
  • 可是目前這個 user_passwd 文件並不存在
  • 因此須要建立一個
  • 這時須要用到一個工具
  • 如圖,yum install -y httpd-tools
  • 安裝好這個包後,就可使用這個工具建立用戶密碼文件了
  • 如圖,htpasswd -c /etc/nginx/user_passwd user1
  • 執行命令後,輸入用戶密碼 123456 兩次
  • 這樣就成功建立了 user_passwd 文件到 /etc/nginx/ 目錄下了
  • 這個命令的意思,-c 是建立文件的意思,後面是文件路徑
  • user1 是用戶名的意思,下面輸入的密碼是對應這個用戶名的密碼
  • 若是想添加新的用戶名和密碼進入這個文件
  • 如圖,htpasswd -m /etc/nginx/user_passwd user2
  • 而後輸入密碼123456兩次
  • cat 查看 user_passwd 文件,能夠看到裏面有兩行 用戶名和密碼的信息
  • 密碼是通過加密的,因此顯示爲隨機符號組成的字符串
  • 這條命令裏面,-m 就能夠添加信息用戶密碼
  • 後面跟的是文件路徑,表示添加到哪一個文件裏面
  • user2 就是新的用戶名,而後輸入新密碼
  • 如今再到瀏覽器,進入論壇網站,點擊用戶中心
  • 就會出現上圖的 登陸驗證
  • 這就是配置文件設置的驗證
  • 這裏須要輸入user_passwd 裏面的用戶名密碼
  • 能夠輸入 user1 + 1123456 這樣就能夠登陸進去
  • 可是仍是會發生錯誤
  • 輸入用戶名密碼後,瀏覽器會下載一個php文件回來,並無登陸進去
  • 這是由於 這個登陸驗證沒辦法解析 php 文件
  • 如圖,打開 tom.bbs.conf 配置文件
  • 把下面 php$ 代碼塊裏面的 下面四行代碼複製粘貼到上面的代碼塊內
  • 這四行代碼是解析php須要用到的
  • 如今把這四行代碼放到 admin.php 代碼塊裏面
  • 這樣執行 admin.php 代碼塊的時候就能夠解析 php 文件了
  • 而後保存退出,使用 nginx -t && nginx -s reload 重載配置文件
  • 再登陸 管理中心
  • 如圖,輸入 use1 + 密碼 成功進入了管理中心的登陸頁面
  • 這裏輸入管理員用戶名密碼就能夠登陸進去了
  • 如圖,location 後面須要加上 ~
  • 由於nginx裏面有執行優先級的問題
  • 有 ~ 的代碼塊,優先級比沒有 ~ 的代碼塊要高
  • 若是 admin.php代碼塊前面沒有 ~ 的話
  • 那麼系統就會優先執行下面的 php$ 代碼塊
  • 而不會執行上面的 admin.php代碼塊
  • 因此爲了保證優先級,admin.php代碼塊前面也有加上 ~ 符號
  • 總結 location / 優先級比 location ~ 要低
  • 若是一個請求同時知足 location / 和 location ~
  • 就會選擇 location ~ ,只會執行一個代碼塊
  • 若是執行了 location ~ 代碼塊就不會再執行 location / 代碼塊了

nginx訪問日誌

  • 訪問日誌就是用戶訪問網站的記錄
  • cd 進入 /etc/nginx/ 目錄
  • vi nginx.conf 打開nginx的主配置文件
  • 如圖,這裏定義的就是 日誌文件的格式
  • cd 進入 /etc/nginx/conf.d/ 目錄
  • vi tom.bbs.conf 打開配置文件
  • 如圖,這一行代碼是被註釋掉的
  • 把前面的 # 刪除
  • 讓這行代碼能夠正常運行
  • 這行代碼就是配置 日誌文件 的命令
  • 如圖,想正常運行,還須要把 access_log 整行代碼剪切
  • 而後粘貼到 最後面去
  • 日誌文件的存放路徑也更改一下,改爲 /data/logs/bbs/bbs.access.log
  • 後面的 main 表示日誌的格式
  • 而後保存退出
  • 由於指定了日誌的路徑是 /data/logs/bbs/
  • 因此須要建立這個目錄 mkdir -p /data/logs/bbs/
  • 建立目錄後使用 nginx -t && nginx -s reload 檢測重載配置文件
  • 如圖,能夠看到,日誌文件已經在這個目錄裏面了
  • 打開瀏覽器訪問一下 tom.bbs.com 這個網站
  • 而後查看訪問日誌的內容有什麼
  • 如圖,這些是訪問日誌的內容
  • 登陸日誌顯示什麼信息是在nginx配置文件裏面的日誌格式那裏配置了的
  • 上圖是nginx配置文件定義的格式信息
  • $remote_addr 就是遠程客戶端的ip地址
  • $remote_user 若是作了用戶認證設置的話,就會顯示這個數據
  • 咱們用戶認證使用的用戶是 user1
  • 那麼這個位置就會顯示 user1
  • $time_local 就是登錄的時間
  • $request 包含 請求方法,請求的連接,http版本的信息
  • $status 表示狀態碼
  • $body_bytes_sent 表示請求的連接的大小,單位是字節 byte
  • $http_referer 表示來源地址,就是從哪一個地址跳轉的
  • $http_user_agent 表示瀏覽器標識,會顯示瀏覽器的信息
  • $http_x_forwarded_for 這個表示代理的ip
  • 若是使用了代理服務器,代理服務器的ip會顯示在這裏
  • f5 能夠清除瀏覽器緩存
  • 若是網頁上的請求能夠直接從緩存中調用到數據的話
  • 那麼這個請求並不會被記錄到系統的access.log裏面
  • 由於請求並無到達服務器,而是到達緩存,就已經結束了
  • 因此這種請求在服務器日誌裏面是看不到信息的
相關文章
相關標籤/搜索