知识点035-LNMP的搭建与WordPress的搭建

摘要:1.HTTP协议简介 HTTP协议,全称HyperText Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。HTTP的最重要应用之一是WWW服务。 1.1 www www,全称World Wide Web,常称为Web,中文译为“万维网”。它是目前互联网上最受用户欢迎的信息服务形式。HTTP协议的WWW服务应用的默认端口是80,另外一个加密的WWW服务应用https的默认端口为443。....

1.HTTP协议简介

002UASMrzy7605pjKJv15&690.jpg

HTTP协议,全称HyperTextTransferProtocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。HTTP的最重要应用之一是WWW服务。

1.1www

www,全称WorldWideWeb,常称为Web,中文译为“万维网”。它是目前互联网上最受用户欢迎的信息服务形式。HTTP协议的WWW服务应用的默认端口是80,另外一个加密的WWW服务应用https的默认端口为443。

1.1.1BS架构

HTTP协议www应用是:浏览器(Browser)和服务端(Server),B/S架构,擅长广域网(互联网)应用

1.1.2CS架构

nfssshrsync是:客户端(Client)和服务端(Server),C/S架构,局域网内部用。

1.1.3用户访问网站流程

用户访问网站流程框架

DNS解析原理

tcp/ip三次握手原理

http协议原理(www服务的请求过程)

大规模网站集群架构细节

http协议原理,响应,报文细节

tcp/ip四次挥手过程原理

1.1.4HTTP请求方法

在HTTP通信中,每个HTTP请求报文都包含一个方法。可以告诉WEB服务端需要执行什么具体的动作,这些动作包括:获取指定web页面、提交内容到服务器、删除服务器上资源文件等。

1.1.4.1常见的请求方法

HTTP方法

作用描述

GET

客户端请求指定资源信息,服务器返回指定资源

HEAD

只请求响应报文中的HTTP首部

POST

将客户端的数据提交到服务器

PUT

从客户端想服务器传送的数据取代指定的文档内容

DELETE

请求服务器删除Request-URI所标识的资源

MOVE

请求服务器将指定的页面移至另一个网络地址

1.1.5HTTP状态码

HTTP状态码(HTTPStatusCode)是用来表示Web服务器相应http请求状态的数字代码。每当Web客户端向Web服务器发送一个HTTP请求时,Web服务器都会返回一个状态响应代码。这个状态码是一个三位数字代码,作用是告知Web客户端此次的请求是否成功,或者是否要采取其他的动作方式。

1.1.5.1常见的状态码及作用

状态代码

详细描述说明

200-OK

服务器成功返回网页,这是成功http请求,返回的标准状态码

301-MovedPermanently

永久跳转,所有请求的网页将永久调到被设定的新的位置。

403-Forbidden

禁止访问,这个请求时合法的,但是服务端因为匹配了预先设置的规则而拒绝相应客户端的请求,此类问题一般为服务器或服务权限设置不当所致

404-NotFound

服务器找不到客户端请求的指定页面,可能是客户端请求了服务器上不存在的资源导致。

500-InernalServerError

内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的请求。这是一个较为笼统的报错,一般为服务器的设置或者内部程序问题导致。例如:SElinux开启,而又乜有为http设置规则许可,客户端访问就是是500

502-BadGateway

坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器。一般为反向代理服务器下面的节点出问题导致

503-ServiceUnavailable

服务当前不可用,可能因为服务器超载或停机维护导致,或者是反向代理服务器后面没有可以提供服务的节点

504-GatewayTimeout

网关超时,一般是网关代理服务器请求后端时,后端服务没有特定的时间内完成处理请求,一般是服务器过载导致没有在指定的时间内返回数据给前端代理服务器。

1.1.6HTTP报文

HTTP报文中有很多行内容,不同行的字段都是一些ASCII码串,各个字段的长度也是不同的。HTTP报文可分为两种,一种是从Web客户端发往Web服务器的HTTP报文称为请求报文(RequestMessage)。另外一种是从Web服务器发往Web客户端的报文,称为响应报文(ResponseMessage),HTTP的请求和响应报文的格式类似。

1.1.6.1HTTP请求报文介绍

HTTP请求报文由:请求行、请求头部(header)、空行和请求报文主体几个部分组成

1.1.6.2HTTP响应报文介绍

HTTP响应报文由:起始行、响应头部、空行、响应报文主体组成

1.2静态网页的特点

程序在客户浏览器端解析,不需要读取后端数据库,因此性能和效率很高

因为后端没有数据库的支持,所以和用户的交互性较差,功能实现也很少。

1.3动态网页的特点

网页扩展名后缀常见为:asp、aspx、jsp、do、cgi等

网页一般以数据库技术为基础,大大的降低了网站维护的工作量

采用动态网页技术的网站可以实现更多的功能,如何用户注册、用户登录、在线调查、投票、用户管理、订单管理、发博文等等。

动态网页并不是独立存在于服务器上的网页文件,当用户请求服务器上的动态程序时,服务器解析这些程序并可能读取数据库返回一个完整的网页内容。

动态网页中的“?”在搜索引擎的收录方面存在一定的问题,搜索引擎一般不会从一个网站的数据库中访问全部网页。

程序在服务器端解析,这相当于顾客点餐,饭店厨师做饭做菜,耗时长,效率低,由于程序在服务端解析,因此,会消耗大量的CPU和内存、I/O等资源

1.4伪静态网页的作用

让搜索引擎收录网站的内容,实现让更多的用户访问企业网站内容

提升用户访问体验,动态地址带特殊符号登的URL看起来不如看着静态网页地址舒服。

1.4.1伪静态网页小结

利用rewrite技术将动态网页伪装成静态网页(URL地址改写)

便于搜索引擎搜录提升用户访问量以及用户体验

访问性能提升,并且转换伪静态会消耗资源,因此性能反而会下降

尽可能将动态网页转成真正的静态网页

并发量不是很大或者动态更新过于频繁的时候,用rewrite实现伪静态也是不错的

伪静态网页的实现过程,一般是由运营产品提出需求,开发和运维共同实现的。

1.5网站流量度量术语 1.5.1IP(InternetProtocol)

IP(独立IP)即InternetProtocol,这里指独立IP数,独立IP数是指不同IP地址的计算机访问网站时被计算的总次数。一般一天内(00:00~24:00)相同IP地址的客户端访问网站页面只被计算为一次

1.5.2PV(PageView)

PV(访问量)即PageView。中文翻译为页面浏览,即页面浏览量或点击量。不管客户端是不是相同,也不管IP是不是相同,用户每次访问一个网站页面都会被计算一个PV。PV的具体度量方法就是从客户浏览器发出一个队Web服务器的请求,Web服务器接到这个请求后,将该请求对应的一个网页(Page)发送给浏览器,就产生了一个PV。

1.5.3UV(UniqueVisitor)

UV(独立访客)即UniqueVisitor,同一台客户端(PC或移动端)访问网站被计算为一个访客,一天(00:00~24:00)内相同的客户端访问同一个网站只计算一次UV,UV一般是以客户端Cookie等技术作为统计依据的,实际统计会有误差。

 

2.NginxHTTP服务器的特色及优点

支持高并发:能支持几万并发连接(特别是静态小文件业务环境)

资源消耗少:在3万并发连接下,开启10个Nginx线程消耗不到200MB内存

可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的haproxy软件或lvs的功能

具备squid等专业缓存软件等的缓存功能

支持异步网络IO事件模型epoll

2.1Nginx作为Web服务器的主要应用场景

使用Nginx运行的HTML、JS、CSS、小图片等静态数据(此功能类似lighttpd软件)

Nginx结合FastCGI运行PHP等动态程序(例如使用fastcgi_pass方式)

Nginx结合tomcat/resin等支持Java动态程序(常用proxy_pass方式)

2.2为什么Nginx总体性能比Apache高

Nginx使用最新的epoll和kqueue异步网络I/O模型,而Apache则使用的是传统的select模型。

2.3linux里面软件的安装方法

rpm-ivh包名.rpm,有依赖问题。缺点:不能定制

yum安装自动解决rpm安装的依赖问题,安装更简单化。优点:简单,易用,高效;缺点:不能定制

编译./configure(配置),make(编译),makeinstall(安装)。优点:可以定制;缺点:复杂、效率低。

定制化制作rpm包,搭建yum仓库,把定制的rpm包放到yum仓库,进行yum安装。优点:结合了yum安装和编译安装的优点;缺点:复杂。

2.4nginx编译安装方法

创建软件下载目录

mkdir/home/s-linuxad/tools cd/home/s-linuxad/tools

创建nginx用户www

useraddwww-s/sbin/nologin-M

yum安装所需要的包

yuminstallopensslopenssl-devel-y yuminstallpcrepcre-devel-y

下载nginx1.6.3

wget-qhttp://nginx.org/download/nginx-1.6.3.tar.gz tarxfnginx-1.6.3.tar.gz cdnginx-1.6.3

配置

./configure--user=www--group=www--with-http_ssl_module--with-http_stub_status_module--prefix=/application/nginx-1.6.3

编译

make

安装

makeinstall

做个软链接

 

ln-s/application/nginx-1.6.3//application/nginx /application/nginx/sbin/nginx

浏览器打开提示如下表示安装正常

 

2.4.1按住win+R键计算机本机hosts中添加域名解析

 

找到/etc/hosts并编辑

 

2.4.2linux服务器中添加hosts解析

 

2.5虚拟机的主机类型概念

所谓虚拟主机,在Web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是端口或者IP),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问。nginx软件使用一个serve{}标签来表示一个虚拟主机。

 

2.5.1虚拟主机的类型

基于域名的虚拟主机:通过域名来区分虚拟主机

基于端口的虚拟主机:通过端口来区分虚拟主机

基于IP的虚拟主机。几乎不用

 

2.5.2基于域名的虚拟主机

nginx.conf的配置文件为

worker_processes1; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; sendfileon; keepalive_timeout65; server{ listen80; server_namewww.123456789.com; location/{ roothtml/www; indexindex.htmlindex.htm; } } server{ listen80; server_namebbs.carlton.com; location/{ roothtml/bbs; indexindex.htmlindex.htm; } }

在html下分别创建www和bbs目录,以及index.html

mkdirhtml/www mkdirhtml/bbs echo"www">html/www/index.html echo"bbs">html/bbs/index.html

然后在网页中输入bbs.carlton.com

 

2.5.3基于端口的虚拟主机的实现

server{ listen80; server_namebbs.carlton.com; location/{ roothtml/bbs; indexindex.htmlindex.htm; } } server{ listen81; server_namebbs.carlton.com; location/{ roothtml/bbs; indexindex.htmlindex.htm; } } 2.5.4Nginx配置虚拟主机文件步骤总结

增加一个完整的server标签段到结尾处。注意,要放在http的结束大括号前,也就是将server标签段放入http标签。

更改server_name及对应网页的root根目录,如果需要其他参数,可以增加或修改。

创建server_name域名对应网页的根目录,并且建立测试文件,如果没有index首页,访问会出现403错误。

检查nginx配置文件语法,平滑重启nginx服务,快速检查启动结果。

在客户端对server_name处配置的域名做hosts解析或DNS配置,并检查(ping域名看返回的IP对不对)。

在windows浏览器中输入地址访问,或者在linux客户端做hosts解析,用wget或curl接地址访问。

 

2.6虚拟主机配置优化

在/application/nginx/conf创建extra

cd/application/nginx/conf mkdirextra

把nginx.conf的配置文件改为

[root@T-Ansible-v-szzbconf]#catnginx.conf worker_processes1; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; sendfileon; keepalive_timeout65; includeextra/www.conf; includeextra/bbs.conf; includeextra/blog.conf; includeextra/status.conf; }

然后进入extra目录下面,新建bbs.confwww.confblog.confstatus.conf

[root@T-Ansible-v-szzbextra]#ll total20 -rw-r-----1wwwwww354Apr120:54bbs.conf -rw-r-----1wwwwww381Apr120:08blog.conf -rw-r-----1rootroot107Mar2822:27default.conf.bak -rw-r-----1rootroot145Mar2922:06status.conf -rw-r-----1wwwwww223Mar2922:07www.conf [root@T-Ansible-v-szzbextra]#cat./* server{ listen80; server_namebbs.carlton.com; location/{ roothtml/bbs; indexindex.htmlindex.htm; } } server{ listen81; server_namebbs.carlton.com; location/{ roothtml/bbs; indexindex.htmlindex.htm; } } server{ listen80; server_nameblog.carlton.com; location/{ roothtml/blog; indexindex.phpindex.htmlindex.htm; } location~.*.(php|php5)?${ roothtml/blog; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; includefastcgi.conf; } } server { listen80default_server; indexindex.htmlindex.htmindex.php; root/tmp/123456; } ##status server{ listen80; server_namewww.123456789.com; location/{ roothtml/www; indexindex.htmlindex.htm; } access_loglogs/www_access.logmain; } 2.6.1查看网页的访问情况

/application/nginx/conf/extra创建编写status.conf,内容如下

server{ listen80; server_namestatus.carlton.com; location/{ stub_statuson; access_logoff; } }

 

2.7定义Nginx的访问日志

在nginx.conf的文件中(log_format到下面3行)

[root@T-Ansible-v-szzbconf]#catnginx.conf worker_processes1; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; sendfileon; log_formatmain\'$remote_addr-$remote_user[$time_local]"$request"\' \'$status$body_bytes_sent"$http_referer"\' \'"$http_user_agent""$http_x_forwarded_for"\'; keepalive_timeout65; includeextra/www.conf; includeextra/bbs.conf; includeextra/blog.conf; includeextra/status.conf; }

然后在www..conf文件中添加access_loglogs/www_access.logmain;

[root@T-Ansible-v-szzbextra]#catwww.conf server{ listen80; server_namewww.123456789.com; location/{ roothtml/www; indexindex.htmlindex.htm; } access_loglogs/www_access.logmain; }

然后查看

 

2.7.1Nginx访问日志的切割

编写一个脚本access.sh

#!/bin/bash cd/application/nginx/logs /bin/mvwww_access.logwww_access_$(date+%F) /application/nginx/sbin/nginx-sreload

然后写一个定时任务每天晚上0点执行脚本

203***/bin/shaccess.sh 2.8Nginx的location的使用 2.8.1location作用

location指令的作用是可以根据用户请求的URI来执行不同的应用,其实就是根据用户请求的网站URL匹配,匹配成功进行相关的操作。

2.8.2location语法

location[=|~|~*|^~]uri{

...

}

location语法说明,语法中uri部分是关键,这个uri可以是普通的字符串地址路径或者是正则表达式,当匹配成功则执行后面大括号里面的相关指令。正则表达式的前面还可以有~或~*等特殊的字符。

“~”用于区分大小写的匹配;“~*”用于不区分大小写的匹配。“^~”作用是在常规的字符串匹配检查之后,不做正则表达式的检查。

不同URI及特殊字符组合匹配的顺序说明

不同URI及特殊字符组合匹配顺序

匹配说明

第一名:“location=/{”

精确匹配/

第二名:“location^~/images{”

匹配常规字符串,不做正则匹配检查

第三名:“location~*(gif|jpg|jpeg)${”

正则匹配

第四名:“location/documents/{”

匹配常规字符串,如果有正则则优先匹配正则

第五名:“location/{”

所有location都不能匹配的默认匹配

2.8.3NginxRewrite 2.8.4什么是NginxRewrite

NginxRewrite的主要功能是实现URL地址重写,Nginx的Rewtire规则需要PCRE软件的支持,即通过Perl兼容正则表达式语法进行规则匹配的。

2.8.5Rewrite的语法

rewrite正则替换内容[flag]

rewrite^/(.*)http://www.123456789.com/$1permanent

rewrite是固定关键字,表示开启一条rewrite匹配规则,正则部分是^/(.*),表示匹配所有,匹配成功后跳转到http://www.123456789.com/$1,这里的$1是去前面正则部分()里的内容,结尾permanent,表示永久301重定向标记。

应用位置

server、location、if

举例

编辑www.conf文件,目的输入www.123456789.com,自动跳转到www.baidu.com

server{ listen80; server_namewww.123456789.com; location/{ roothtml/www; indexindex.htmlindex.htm; } location=/{ rewrite^/(.*)http://home.baidu.com/$1permanent; } access_loglogs/www_access.logmain; } 3.Mysql的安装

安装cmake编译工具

cd/usr/local/src/lnmp tarxzvfcmake-2.8.11.2.tar.gz cdcmake-2.8.11.2/ ./configure make makeinstall

创建用于执行mysql服务程序的帐号:

useraddmysql-s/sbin/nologin

创建数据库程序和文件的目录,并设置目录的所属与所组:

useraddmysql-s/sbin/nologin

安装Mysql服务程序

cd/usr/local/src/lnmp tarxzvfmysql-5.6.19.tar.gz cdmysql-5.6.19/ cmake.-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_DATADIR=/usr/local/mysql/var-DSYSCONFDIR=/etc make makeinstall

删除系统默认的配置文件:

rm-rf/etc/my.cnf

生成系统数据库

cd/usr/local/mysql ./scripts/mysql_install_db--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/var

 

出现2个OK就可以

ln-s/usr/local/mysql/my.cnf/etc/my.cnf

将mysqld服务程序添加到开机启动项:

cp./support-files/mysql.server/etc/rc.d/init.d/mysqld chmod755/etc/rc.d/init.d/mysqld chkconfigmysqldon

编辑启动项的配置文件:

vim/etc/init.d/mysqld basedir=/usr/local/mysql datadir=/usr/local/mysql/var

启动mysqld服务程序:

servicemysqldstart

把mysql服务程序命令目录添加到环境变量中

echo"exportPATH=$PATH:/usr/local/mysql/bin">>/etc/profile source/etc/profile

将mysqld服务程序的库文件链接到默认的位置:

mkdir/var/lib/mysql ln-s/usr/local/mysql/lib/mysql/usr/lib/mysql ln-s/usr/local/mysql/include/mysql/usr/include/mysql ln-s/tmp/mysql.sock/var/lib/mysql/mysql.sock

mysql重置密码

mysqladminpassword123456mysql设置密码 mysqladmin-uroot–p123456password123321mysql修改密码 4.PHP的安装

安装PHP之前的准备工作,nginx和mysql必须都要安装

[root@T-Ansible-v-szzbextra]#netstat-lntup|egrep"nginx|mysql" tcp000.0.0.0:800.0.0.0:*LISTEN12271/nginx:worker tcp000.0.0.0:810.0.0.0:*LISTEN12271/nginx:worker tcp600:::3306:::*LISTEN17260/mysqld [root@T-Ansible-v-szzbextra]#netstat-lntup|egrep"3306|80" tcp000.0.0.0:800.0.0.0:*LISTEN12271/nginx:worker tcp600:::3306:::*LISTEN17260/mysqld udp600:::41780:::*- [root@T-Ansible-v-szzbextra]#

安装步骤

yuminstallzlib-devellibxml2-devellibjpeg-devellibjpeg-turbo-develfreetype-devellibpng-develgd-devellibcurl-devellibxslt-developenssl-devel-y rpm-qazlib-devellibxml2-devellibjpeg-devellibjpeg-turbo-devellibiconv-develfreetype-devellibpng-develgd-devellibcurl-devellibxslt-devel cd/home/s-linuxad/tools wgethttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tarxflibiconv-1.14.tar.gz cdlibiconv-1.14 ./configure--prefix=/usr/local/libiconv make makeinstall

安装php相关扩展库

wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repo yum-yinstalllibmcrypt-develmhashmcrypt rpm-qalibmcrypt-develmhashmcrypt

 

开始编译

./configure --prefix=/application/php-5.3.27 --with-mysql=/usr/local/mysql --with-iconv-dir=/usr/local/libconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-safe-mode --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp

安装两步之后在文件夹下面继续用

ln-s/usr/local/mysql/lib/libmysqlclient.so.18/usr/lib64/ touchext/phar/phar/phar.phar

在进行make

提示错误cannotfindlltdl

解决:

yuminstall-ylibtool-ltdl-devel

 

下一步makeinstall出现这个情况就表示成功

PHP配置正确的提示:

/home/s-linuxad/tools/php-5.3.27/build/shtoolinstall-cext/phar/phar.phar/php-5.3.27/bin ln-s-f/php-5.3.27/bin/phar.phar/php-5.3.27/bin/phar InstallingPDOheaders:/php-5.3.27/include/php/ext/pdo/

对文件的部分操作

cd/php/etc/ cpphp-fpm.conf.defaultphp-fpm.conf /php/sbin/php-fpm [root@T-Ansible-v-szzb~]#lsof-i:9000 COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME php-fpm10912root7uIPv4269275530t0TCPlocalhost:cslistener(LISTEN) php-fpm11867www0uIPv4269275530t0TCPlocalhost:cslistener(LISTEN) php-fpm11871www0uIPv4269275530t0TCPlocalhost:cslistener(LISTEN) php-fpm11880www0uIPv4269275530t0TCPlocalhost:cslistener(LISTEN) [root@T-Ansible-v-szzb~]#ps-ef|grepphp-fpm root109121018:53?00:00:00php-fpm:masterprocess(/application/php-5.3.27/etc/php-fpm.conf) www1186710912020:20?00:00:01php-fpm:poolwww www1187110912020:20?00:00:01php-fpm:poolwww www1188010912020:20?00:00:01php-fpm:poolwww root1343013401022:43pts/000:00:00grep--color=autophp-fpm 5.访问测试PHP和Nginx的连通

[root@T-Ansible-v-szzbextra]#catblog.conf server{ listen80; server_nameblog.carlton.com; location/{ roothtml/blog; indexindex.phpindex.htmlindex.htm; } location~.*.(php|php5)?${ roothtml/blog; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; includefastcgi.conf; } } [root@T-Ansible-v-szzbblog]#cattest_info.php <?phpphpinfo();?>

测试PHP和Nginx的是否连接输入:blog.carlton.com/test_info.php

 

6.测试php和mysql的连接性

[root@T-Ansible-v-szzbblog]#cattest_mysql.php <?php $link_id=mysql_connect(\'localhost\',\'root\',\'123456\')ormsyql_error(); if($link_id){ echo"mysqlsuccessfulbyCarlton!"; }else{ echomysql_error(); } ?>

然后在网页中输入:blog.carlton.com/test_mysql.php

 

注:配置文件的属主和属组都必须是编译时的www用户

[root@T-Ansible-v-szzbblog]#ll total12 -rwxr-xr-x1wwwwww5Mar2816:57index.html -rw-r-----1wwwwww20Apr119:38test_info.php -rw-r-----1wwwwww229Apr119:53test_mysql.php 7.使用wordpress搭建个人博客

所有的环境是基于LNMP的基础之上的

[root@T-Ansible-v-szzbCarlton]#mysql-uroot-p Enterpassword: WelcometotheMySQLmonitor.Commandsendwith;org. YourMySQLconnectionidis21 Serverversion:5.6.33MySQLCommunityServer(GPL) Copyright(c)2000,2016,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type\'help;\'or\'h\'forhelp.Type\'c\'toclearthecurrentinputstatement. mysql>createdatabaseswordpress; ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear\'databaseswordpress\'atline1 mysql>showdatabases; +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| |test| |testt| +--------------------+ 5rowsinset(0.01sec) mysql>createdatabasewordpress; QueryOK,1rowaffected(0.02sec) mysql>showdatabases; +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| |test| |testt| |wordpress| +--------------------+ 6rowsinset(0.00sec) mysql>grantallonwordpress.*towordpress@\'localhost\'identifiedby\'123456\' ->; QueryOK,0rowsaffected(0.02sec) mysql>selectuser,hostfrommysql.user; +-----------+------------------+ |user|host| +-----------+------------------+ |root|127.0.0.1| |root|::1| ||localhost| |root|localhost| |wordpress|localhost| ||t-ansible-v-szzb| |root|t-ansible-v-szzb| +-----------+------------------+ 7rowsinset(0.00sec) mysql>flushprivileges; QueryOK,0rowsaffected(0.01sec) mysql>

小总:

creatdatabasewordpress; showdatabases; grantallonwordpress.*towordpress@\'localhost\'identifiedby\'123456\'; selectuser,hostfrommysql.user; showgrantsforwordpress@\'localhost\'; flushprivileges;刷新让权限生效

添加一行到之前的测试脚本里面

indexindex.phpindex.htmlindex.htm;