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 |