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

相关文章
相关标签/搜索