安装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里面
  • 由于请求并无到达服务器,而是到达缓存,就已经结束了
  • 因此这种请求在服务器日志里面是看不到信息的
相关文章
相关标签/搜索