1.HTTP协议简介
HTTP协议,全称HyperText Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。HTTP的最重要应用之一是WWW服务。
1.1 www
www,全称World Wide Web,常称为Web,中文译为“万维网”。它是目前互联网上最受用户欢迎的信息服务形式。HTTP协议的WWW服务应用的默认端口是80,另外一个加密的WWW服务应用https的默认端口为443。
1.1.1 BS架构
HTTP协议www应用是:浏览器(Browser)和服务端(Server),B/S架构,擅长广域网(互联网)应用
1.1.2 CS架构
nfs ssh rsync是:客户端(Client)和服务端(Server),C/S架构,局域网内部用。
1.1.3 用户访问网站流程
用户访问网站流程框架
DNS解析原理
tcp/ip三次握手原理
http协议原理(www服务的请求过程)
大规模网站集群架构细节
http协议原理,响应,报文细节
tcp/ip四次挥手过程原理
1.1.4 HTTP请求方法
在HTTP通信中,每个HTTP请求报文都包含一个方法。可以告诉WEB服务端需要执行什么具体的动作,这些动作包括:获取指定web页面、提交内容到服务器、删除服务器上资源文件等。
1.1.4.1 常见的请求方法
HTTP方法 | 作用描述 |
GET | 客户端请求指定资源信息,服务器返回指定资源 |
HEAD | 只请求响应报文中的HTTP首部 |
POST | 将客户端的数据提交到服务器 |
PUT | 从客户端想服务器传送的数据取代指定的文档内容 |
DELETE | 请求服务器删除Request-URI所标识的资源 |
MOVE | 请求服务器将指定的页面移至另一个网络地址 |
1.1.5 HTTP状态码
HTTP状态码(HTTP Status Code)是用来表示Web服务器相应http请求状态的数字代码。每当Web客户端向Web服务器发送一个HTTP请求时,Web服务器都会返回一个状态响应代码。这个状态码是一个三位数字代码,作用是告知Web客户端此次的请求是否成功,或者是否要采取其他的动作方式。
1.1.5.1常见的状态码及作用
状态代码 | 详细描述说明 |
200 - OK | 服务器成功返回网页,这是成功http请求,返回的标准状态码 |
301 - Moved Permanently | 永久跳转,所有请求的网页将永久调到被设定的新的位置。 |
403 - Forbidden | 禁止访问,这个请求时合法的,但是服务端因为匹配了预先设置的规则而拒绝相应客户端的请求,此类问题一般为服务器或服务权限设置不当所致 |
404 - Not Found | 服务器找不到客户端请求的指定页面,可能是客户端请求了服务器上不存在的资源导致。 |
500 - Inernal Server Error | 内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的请求。这是一个较为笼统的报错,一般为服务器的设置或者内部程序问题导致。例如:SElinux开启,而又乜有为http设置规则许可,客户端访问就是是500 |
502 - Bad Gateway | 坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器。一般为反向代理服务器下面的节点出问题导致 |
503 - Service Unavailable | 服务当前不可用,可能因为服务器超载或停机维护导致,或者是反向代理服务器后面没有可以提供服务的节点 |
504 - Gateway Timeout | 网关超时,一般是网关代理服务器请求后端时,后端服务没有特定的时间内完成处理请求,一般是服务器过载导致没有在指定的时间内返回数据给前端代理服务器。 |
1.1.6 HTTP报文
HTTP报文中有很多行内容,不同行的字段都是一些ASCII码串,各个字段的长度也是不同的。HTTP报文可分为两种,一种是从Web客户端发往Web服务器的HTTP报文称为请求报文(Request Message)。另外一种是从Web服务器发往Web客户端的报文,称为响应报文(Response Message),HTTP的请求和响应报文的格式类似。
1.1.6.1 HTTP请求报文介绍
HTTP请求报文由:请求行、请求头部(header)、空行和请求报文主体几个部分组成
1.1.6.2 HTTP响应报文介绍
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.1 IP(Internet Protocol)
IP(独立IP)即Internet Protocol,这里指独立IP数,独立IP数是指不同IP地址的计算机访问网站时被计算的总次数。一般一天内(00:00~24:00)相同IP地址的客户端访问网站页面只被计算为一次
1.5.2 PV(Page View)
PV(访问量)即Page View。中文翻译为页面浏览,即页面浏览量或点击量。不管客户端是不是相同,也不管IP是不是相同,用户每次访问一个网站页面都会被计算一个PV。PV的具体度量方法就是从客户浏览器发出一个队Web服务器的请求,Web服务器接到这个请求后,将该请求对应的一个网页(Page)发送给浏览器,就产生了一个PV。
1.5.3 UV(Unique Visitor)
UV(独立访客)即Unique Visitor,同一台客户端(PC或移动端)访问网站被计算为一个访客,一天(00:00~24:00)内相同的客户端访问同一个网站只计算一次UV,UV一般是以客户端Cookie等技术作为统计依据的,实际统计会有误差。
2.Nginx HTTP服务器的特色及优点
支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
资源消耗少:在3万并发连接下,开启10个Nginx线程消耗不到200MB内存
可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的haproxy软件或lvs的功能
具备squid等专业缓存软件等的缓存功能
支持异步网络IO事件模型epoll
2.1 Nginx作为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.3 linux里面软件的安装方法
rpm -ivh 包名.rpm,有依赖问题。缺点:不能定制
yum安装自动解决rpm安装的依赖问题,安装更简单化。优点:简单,易用,高效;缺点:不能定制
编译 ./configure(配置),make(编译),make install(安装)。优点:可以定制;缺点:复杂、效率低。
定制化制作rpm包,搭建yum仓库,把定制的rpm包放到yum仓库,进行yum安装。优点:结合了yum安装和编译安装的优点;缺点:复杂。
2.4 nginx编译安装方法
创建软件下载目录
mkdir /home/s-linuxad/tools
cd /home/s-linuxad/tools
创建nginx用户www
useradd www -s /sbin/nologin -M
yum安装所需要的包
yum install openssl openssl-devel -y
yum install pcre pcre-devel -y
下载nginx1.6.3
wget -q http://nginx.org/download/nginx-1.6.3.tar.gz
tar xf nginx-1.6.3.tar.gz
cd nginx-1.6.3
配置
./configure --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --prefix=/application/nginx-1.6.3
编译
make
安装
make install
做个软链接
ln -s /application/nginx-1.6.3/ /application/nginx
/application/nginx/sbin/nginx
浏览器打开提示如下表示安装正常
2.4.1 按住win+ R 键计算机本机hosts中添加域名解析
找到/etc/hosts 并编辑
2.4.2 linux服务器中添加hosts解析
2.5 虚拟机的主机类型概念
所谓虚拟主机,在Web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是端口或者IP),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问。nginx软件使用一个serve{}标签来表示一个虚拟主机。
2.5.1 虚拟主机的类型
基于域名的虚拟主机:通过域名来区分虚拟主机
基于端口的虚拟主机:通过端口来区分虚拟主机
基于IP的虚拟主机。几乎不用
2.5.2 基于域名的虚拟主机
nginx.conf的配置文件为
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.123456789.com;
location / {
root html/www;
index index.html index.htm;
}
}
server {
listen 80;
server_name bbs.carlton.com;
location / {
root html/bbs;
index index.html index.htm;
}
}
在html下分别创建www和bbs目录,以及index.html
mkdir html/www
mkdir html/bbs
echo "www" >html/www/index.html
echo "bbs" >html/bbs/index.html
然后在网页中输入 bbs.carlton.com
2.5.3 基于端口的虚拟主机的实现
server {
listen 80;
server_name bbs.carlton.com;
location / {
root html/bbs;
index index.html index.htm;
}
}
server {
listen 81;
server_name bbs.carlton.com;
location / {
root html/bbs;
index index.html index.htm;
}
}
2.5.4 Nginx 配置虚拟主机文件步骤总结
增加一个完整的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
mkdir extra
把nginx.conf 的配置文件改为
[root@T-Ansible-v-szzb conf]# cat nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include extra/www.conf;
include extra/bbs.conf;
include extra/blog.conf;
include extra/status.conf;
}
然后进入extra目录下面,新建bbs.conf www.conf blog.conf status.conf
[root@T-Ansible-v-szzb extra]# ll
total 20
-rw-r----- 1 www www 354 Apr 1 20:54 bbs.conf
-rw-r----- 1 www www 381 Apr 1 20:08 blog.conf
-rw-r----- 1 root root 107 Mar 28 22:27 default.conf.bak
-rw-r----- 1 root root 145 Mar 29 22:06 status.conf
-rw-r----- 1 www www 223 Mar 29 22:07 www.conf
[root@T-Ansible-v-szzb extra]# cat ./*
server {
listen 80;
server_name bbs.carlton.com;
location / {
root html/bbs;
index index.html index.htm;
}
}
server {
listen 81;
server_name bbs.carlton.com;
location / {
root html/bbs;
index index.html index.htm;
}
}
server {
listen 80;
server_name blog.carlton.com;
location / {
root html/blog;
index index.php index.html index.htm;
}
location ~.*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
server
{
listen 80 default_server;
index index.html index.htm index.php;
root /tmp/123456;
}
##status
server {
listen 80;
server_name www.123456789.com;
location / {
root html/www;
index index.html index.htm;
}
access_log logs/www_access.log main;
}
2.6.1 查看网页的访问情况
/application/nginx/conf/extra创建编写status.conf,内容如下
server{
listen 80;
server_name status.carlton.com;
location / {
stub_status on;
access_log off;
}
}
2.7 定义Nginx 的访问日志
在nginx.conf 的文件中(log_format 到下面3行)
[root@T-Ansible-v-szzb conf]# cat nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
keepalive_timeout 65;
include extra/www.conf;
include extra/bbs.conf;
include extra/blog.conf;
include extra/status.conf;
}
然后在www..conf 文件中添加 access_log logs/www_access.log main;
[root@T-Ansible-v-szzb extra]# cat www.conf
server {
listen 80;
server_name www.123456789.com;
location / {
root html/www;
index index.html index.htm;
}
access_log logs/www_access.log main;
}
然后查看
2.7.1 Nginx访问日志的切割
编写一个脚本 access.sh
#!/bin/bash
cd /application/nginx/logs
/bin/mv www_access.log www_access_$(date +%F)
/application/nginx/sbin/nginx -s reload
然后写一个定时任务每天晚上0点执行脚本
20 3 * * * /bin/sh access.sh
2.8 Nginx 的location的使用
2.8.1 location作用
location指令的作用是可以根据用户请求的URI来执行不同的应用,其实就是根据用户请求的网站URL匹配,匹配成功进行相关的操作。
2.8.2 location语法
location [=|~|~*|^~] uri {
...
}
location语法说明,语法中uri部分是关键,这个uri可以是普通的字符串地址路径或者是正则表达式,当匹配成功则执行后面大括号里面的相关指令。正则表达式的前面还可以有~或~*等特殊的字符。
“~”用于区分大小写的匹配;“~*”用于不区分大小写的匹配。“^~”作用是在常规的字符串匹配检查之后,不做正则表达式的检查。
不同URI及特殊字符组合匹配的顺序说明
不同URI及特殊字符组合匹配顺序 | 匹配说明 |
第一名:“location =/{” | 精确匹配/ |
第二名:“location ^~/images{” | 匹配常规字符串,不做正则匹配检查 |
第三名:“location ~*(gif|jpg|jpeg)${” | 正则匹配 |
第四名:“location /documents/{” | 匹配常规字符串,如果有正则则优先匹配正则 |
第五名:“location /{” | 所有location都不能匹配的默认匹配 |
2.8.3 Nginx Rewrite
2.8.4 什么是Nginx Rewrite
Nginx Rewrite的主要功能是实现URL地址重写,Nginx的Rewtire规则需要PCRE软件的支持,即通过Perl兼容正则表达式语法进行规则匹配的。
2.8.5 Rewrite的语法
rewrite 正则 替换内容 [flag]
rewrite ^/(.*) http://www.123456789.com/$1 permanent
rewrite是固定关键字,表示开启一条rewrite匹配规则,正则部分是^/(.*),表示匹配所有,匹配成功后跳转到http://www.123456789.com/$1,这里的$1是去前面正则部分()里的内容,结尾permanent,表示永久301重定向标记。
应用位置
server、location、if
举例
编辑www.conf文件,目的输入www.123456789.com,自动跳转到www.baidu.com
server {
listen 80;
server_name www.123456789.com;
location / {
root html/www;
index index.html index.htm;
}
location =/ {
rewrite ^/(.*) http://home.baidu.com/$1 permanent;
}
access_log logs/www_access.log main;
}
3.Mysql 的安装
安装cmake编译工具
cd /usr/local/src/lnmp
tar xzvf cmake-2.8.11.2.tar.gz
cd cmake-2.8.11.2/
./configure
make
make install
创建用于执行mysql服务程序的帐号:
useradd mysql -s /sbin/nologin
创建数据库程序和文件的目录,并设置目录的所属与所组:
useradd mysql -s /sbin/nologin
安装Mysql服务程序
cd /usr/local/src/lnmp
tar xzvf mysql-5.6.19.tar.gz
cd mysql-5.6.19/
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/var -DSYSCONFDIR=/etc
make
make install
删除系统默认的配置文件:
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
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig mysqld on
编辑启动项的配置文件:
vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/var
启动mysqld服务程序:
service mysqld start
把mysql服务程序命令目录添加到环境变量中
echo "export PATH=$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重置密码
mysqladmin password 123456 mysql设置密码
mysqladmin -uroot –p123456 password 123321 mysql修改密码
4.PHP的安装
安装PHP之前的准备工作,nginx 和mysql 必须都要安装
[root@T-Ansible-v-szzb extra]# netstat -lntup |egrep "nginx|mysql"
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12271/nginx: worker
tcp 0 0 0.0.0.0:81 0.0.0.0:* LISTEN 12271/nginx: worker
tcp6 0 0 :::3306 :::* LISTEN 17260/mysqld
[root@T-Ansible-v-szzb extra]# netstat -lntup |egrep "3306|80"
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12271/nginx: worker
tcp6 0 0 :::3306 :::* LISTEN 17260/mysqld
udp6 0 0 :::41780 :::* -
[root@T-Ansible-v-szzb extra]#
安装步骤
yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel openssl-devel -y
rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
cd /home/s-linuxad/tools
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar xf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
安装php相关扩展库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install libmcrypt-devel mhash mcrypt
rpm -qa libmcrypt-devel mhash mcrypt
开始编译
./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/
touch ext/phar/phar/phar.phar
在进行make
提示错误 cannot find lltdl
解决:
yum install -y libtool-ltdl-devel
下一步make install 出现这个情况就表示成功
PHP配置正确的提示:
/home/s-linuxad/tools/php-5.3.27/build/shtool install -c ext/phar/phar.phar /php-5.3.27/bin
ln -s -f /php-5.3.27/bin/phar.phar /php-5.3.27/bin/phar
Installing PDO headers: /php-5.3.27/include/php/ext/pdo/
对文件的部分操作
cd /php/etc/
cp php-fpm.conf.default php-fpm.conf
/php/sbin/php-fpm
[root@T-Ansible-v-szzb ~]# lsof -i:9000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
php-fpm 10912 root 7u IPv4 26927553 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 11867 www 0u IPv4 26927553 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 11871 www 0u IPv4 26927553 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 11880 www 0u IPv4 26927553 0t0 TCP localhost:cslistener (LISTEN)
[root@T-Ansible-v-szzb ~]# ps -ef |grep php-fpm
root 10912 1 0 18:53 ? 00:00:00 php-fpm: master process (/application/php-5.3.27/etc/php-fpm.conf)
www 11867 10912 0 20:20 ? 00:00:01 php-fpm: pool www
www 11871 10912 0 20:20 ? 00:00:01 php-fpm: pool www
www 11880 10912 0 20:20 ? 00:00:01 php-fpm: pool www
root 13430 13401 0 22:43 pts/0 00:00:00 grep --color=auto php-fpm
5.访问测试PHP和Nginx的连通
[root@T-Ansible-v-szzb extra]# cat blog.conf
server {
listen 80;
server_name blog.carlton.com;
location / {
root html/blog;
index index.php index.html index.htm;
}
location ~.*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
[root@T-Ansible-v-szzb blog]# cat test_info.php
<?php phpinfo(); ?>
测试PHP和Nginx的是否连接输入:blog.carlton.com/test_info.php
6.测试php 和mysql 的连接性
[root@T-Ansible-v-szzb blog]# cat test_mysql.php
<?php
$link_id=mysql_connect('localhost','root','123456') or msyql_error();
if($link_id){
echo "mysql successful by Carlton !";
}else{
echo mysql_error();
}
?>
然后在网页中输入:blog.carlton.com/test_mysql.php
注:配置文件的属主和属组都必须是编译时的www用户
[root@T-Ansible-v-szzb blog]# ll
total 12
-rwxr-xr-x 1 www www 5 Mar 28 16:57 index.html
-rw-r----- 1 www www 20 Apr 1 19:38 test_info.php
-rw-r----- 1 www www 229 Apr 1 19:53 test_mysql.php
7.使用wordpress搭建个人博客
所有的环境是基于LNMP的基础之上的
[root@T-Ansible-v-szzb Carlton]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.6.33 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create databases wordpress;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databases wordpress' at line 1
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| testt |
+--------------------+
5 rows in set (0.01 sec)
mysql> create database wordpress;
Query OK, 1 row affected (0.02 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| testt |
| wordpress |
+--------------------+
6 rows in set (0.00 sec)
mysql> grant all on wordpress.* to wordpress@'localhost' identified by '123456'
-> ;
Query OK, 0 rows affected (0.02 sec)
mysql> select user,host from mysql.user;
+-----------+------------------+
| user | host |
+-----------+------------------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| wordpress | localhost |
| | t-ansible-v-szzb |
| root | t-ansible-v-szzb |
+-----------+------------------+
7 rows in set (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql>
小总:
creat database wordpress;
show databases;
grant all on wordpress.* to wordpress@'localhost' identified by '123456';
select user,host from mysql.user;
show grants for wordpress@'localhost';
flush privileges; 刷新让权限生效
添加一行到之前的测试脚本里面
index index.php index.html index.htm;
下载
wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.zip
unzip wordpress-4.7.4-zh_CN.zip
cp -a wordpress/* /application/nginx/html/blog/
chown -R www.www /application/nginx/html/blog/
然后在网页中输入 blog.carlton.com 则出现下面的页面
安装完成