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後會生成日誌文件
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 |