知识点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.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 则出现下面的页面

安装完成

猜你喜欢

转载自my.oschina.net/u/3635512/blog/1788383