首页 > 其他 > 详细

LNMP搭建

时间:2021-01-12 16:52:57      阅读:17      评论:0      收藏:0      [点我收藏+]

 

`

 

 
            

 

 

 关于应用系统分布式构建运维

 

 

 

摘要

随着信息技术和科技的不断进步,网络技术和科技的不断完善,许多类型的服务不断涌现。在这样的环境下,LNMP系统架构成为时代的要求,并不断提高发展,已成为国内外最大的服务平台之一。

LNMP,LNMP就是Linux,Nginx,Mysql,PHP的缩写,当然也是现在非常流行的web框架之一。

WordPress很多强大的功能都令我们吃惊,让我们感到简单而令人难以置信。不仅如此,WordPress主题风格样式模板也是时间上非常常见的模板。

WordPress也是一个极为方便的平台,里面的也有许多免费的主题供人们选择和修改。基本用鼠标就可把一个主题改的差不多。

本论文就介绍应用系统分布式构建运维,在LNMP的基础上我们可以结合WordPress进行网站的搭建。

关键词:Linux,Nginx,mysql,WordPress


 

 

目录

 

摘要... I

目录... II

第一章  绪论... 1

1.1.分布式应用系统介绍... 1

1.2.分布式构建运维... 1

第二章  部署主从数据库.... 2

2.1.了解Mysql数据库... 2

2.2.了解主从数据库集群配置架构... 3

2.3. 规划节点基础准备... 3

2.4. 基础环境安装... 4

2.5. 初始化数据库并配置主从服务... 6

2.6. 验证数据库主从服务... 8

第三章  部署Nginx服务... 12

3.1.了解Nginx服务... 12

3.2.Nginx服务的编辑安装与配置... 13

第四章  安装PHP环境... 15

4.1.了解PHP. 15

4.2.PHP环境的编译安装与配置... 16

第五章  分布式部署LNMP+WordPress安装... 19

5.1.了解分布式部署wordpress的架构... 19

5.2.了解分布式部署Wordpress应用的配置与操作... 19


 


第一章  绪论

1.1.分布式应用系统介绍

纵观人类计算机的发展历史,每隔十年至十五年,信息产业就会发生周期性的变革,1950年至1970年期间,企业主要采用大型主机-终端的体系结构,企业应用系统则采用单一、集中的方式为用户提供资源共享服务。80年代初期,开放系统与关系型数据库管理系统被企业大量采用,有别于集中式系统,应用程序逻辑分散在主从两端。随着Windows的普及,90年代则是图形化的应用时代,Client/Server体系结构也被广泛采用。90年代后期,信息产业出现了分布式对象技术,应用程序可以分布在不同的系统平台上,通过分布式技术实现异构平台间对象的相互通信。将企业已有系统集成于分布式系统,可以极大地提高企业应用系统的扩展性。90年代末出现的多层分布式应用为企业进一步简化应用系统的开发指明了方向。

1.2.分布式构建运维

 基于window平台搭建的大型分布式系统不多,之前了解过myspace、stackoverflow等大型网站。搭建一个大型平台需要综合考虑很多方面,不单纯是软件架构,还包括网络和硬件设备等。由于现代大部分应用建设都面临用户多、高并发、高可用的需求,传统软件架构已不能满足需求,需要支持分布式软件架构,能支持横向扩展,具有高可用、伸缩性、稳定性等特点。

第二章  部署主从数据库

2.1.了解Mysql数据库

1.支持很多编程语言,包括C ++,Perl,Python和Java,Eiffel,PHP和Ruby,.NET,和Tcl。

2.支持多线程,充分利用 CPU 资源。

3.一种用于各种数据库连接途径,如TCP / IP,ODBC,JDBC。

4.支持使用大型数据库。能够支持数千万条记录的大型数据库处理数据的操作。

5.支持多种存储引擎。

6.Mysql是开源的,所以没有额外的费用。

7.对 PHP 有很好的支持。

8. MySQL是可定制的,

9.复制多线程从机,可提高性能

10.3倍更快的性能

11.新的优化器

12.原生JSON支持

13.多源复制

14.GIS的空间扩展   

2.2.了解主从数据库集群配置架构


  技术分享图片

 

 

2.3. 规划节点基础准备

1.规划节点

Linux操作系统的单节点的规划,在这里我将会做一个表格,我们命名为表1。

IP

主机名

节点

192.168.100.10

Mysql1

主数据库节点

192.168.100.20

Mysql2

从数据库节点

现在我就就把节点规划好了。

2.基础准备

我下面将会使用我本地PC机中的VMWare Workstation软件进行实际操作,镜像使用本机存在的CentOS-7-x86_64-DVD-1511.iso。虚拟机配置为1核/2G内存/20G硬盘,详细配置在下方,我们命名为表2。

软件

VMWare Workstation

镜像

CentOS-7-x86_64-DVD-1511.iso

虚拟机CPU

1核

虚拟机内存

2G

虚拟机硬盘

20G

 

 

 

2.4. 基础环境安装

1.修改主机名

使用远程连接工具 CRT 连接到 192.168.100.10、192.168.100.20 这两台虚拟机,并对这 两台虚拟机进行修改主机名的操作,192.168.100.10 主机名修改为 mysql1,192.168.100.20 主机名修改为 mysql2。命令如下:


先来看mysql1节点:

 技术分享图片

 

 再看mysql2节点:

技术分享图片

 

 2.关闭防火墙及SElinux服务

两个节点都需要关闭防火墙firewalld和SElinux服务,命令如下:

#setenforce 0

#systemctl stop firewalld

  3.配置hosts文件

两个节点都需要配置/etc/hosts文件,修改方式如下:

    vi /etc/hosts在里面添加以下 两行

192.168.100.10 mysql1

192.168.100.20 mysql2

4.配置yum源并安装数据库服务

 cd /etc/yum.repos.d

mkdir xx

mv *.repo xx/

vi local.repo

[centos]

name=centos

baseurl=file:///mnt/centos

gpgcheck=0

enabled=1

保存退出

mkdir /mnt/centos

要连接光盘

mount /dev/cdrom   /mnt/centos/

yum clean all

yum repolist

到此yum源配置完成

配置完成后,两个节点都需要安装数据库服务,操作如下:

 yum install -y mariadb mariadb-server

这 两个节点都需要分别启动数据库服务并设置开机自启,命令如下:

 systemctl start mariadb

systemctl enable maradb

2.5. 初始化数据库并配置主从服务

1.初始化数据库


两个节点初始化数据库,在这里我们设置配置数据库root密码为000000,如下:

技术分享图片

 

 


  2.配置 mysql1 主节点 修改 mysql1 节点的数据库配置文件,在配置文件/etc/my.cnf 中的[mysqld]增添如下内容。

[root@mysql1 ~]# cat /etc/my.cnf

[mysqld]

log_bin = mysql-bin            记录操作日志

binlog_ignore_db = mysql         #不同步 mysql 系统数据库

 server_id = 10               

 #数据库集群中的每个节点 id 都要不同, 一般使用IP的最后段数字,例如

192.168.100.10,server_id就写10

3. 重启数据库服务,并进入数据库,命令如下:

[root@mysql1 ~]# systemctl restart mariadb

[root@mysql1 ~]# mysql -uroot -p000000

这里要在在mysql节点,授权在任何客户端机器上可以以 root 用户登录到数据库,然后在主节点上创建一个 user 用户连接节点 mysql2,并赋予从节点同步主节点数据库的权限,这次我们就要使用grant all privileges on *.* to root@‘%‘ identified by "000000";

grant replication slave on *.* to ‘user‘@‘mysql2‘ identified by ‘000000‘;这两段命令。

   4.配置 mysql2 从节点

修改 mysql2 节点的数据库配置文件,在配置文件/etc/my.cnf 中的[mysqld]增添如,这里和主节点唯一不同的就是server_id要用mysql2 IP地址的最后段数字。

完成上面的操作后需要在从节点 mysql2 上登录 MariaDB 数据库,配置从节点连接主节点的连接信息。 master_host 为主节点主机名 mysql1,master_user 为上一步中创建的用户 user,命令如下:

[root@mysql2 ~]# systemctl restart mariadb

  [root@mysql2 ~]# mysql -uroot -p000000

  MariaDB [(none)]> change master to master_host=‘mysql1‘,master_user=‘user‘,master_password=‘000000‘;

配置完毕主从数据库之间的连接信息之后,开启从节点服务。使用 show slave status\G 命令,对从节点服务状态进行查看,如果 Slave_IO_Running 和 Slave_SQL_Running 的状态都为 YES,这说明从节点服务开启成功。

2.6. 验证数据库主从服务

1.主节点创建数据库

先在主节点 mysql1 中创建库 test,并在库 test 中创建表 company,插入表数据,创建完 成后,查看表 company 数据,命令如下:

技术分享图片

 技术分享图片

 

 

2.从节点验证复制功能 登录 mysql2 节点的数据库,查看数据库列表。找到 test 数据库,查询表,并查询内容 验证从数据库的复制功能,命令如下:

 

技术分享图片

 技术分享图片

 

 技术分享图片

 

 可以查看到主数据库中刚刚创建的库、表、信息,验证从数据库的复制功能成功。

 

 

第三章  部署Nginx服务

3.1. 了解Nginx服务

Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器。

 Nginx 已经在俄罗斯最大的门户网站── RamblerMedia(www.rambler.ru)上运行了多年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器,由此我们可以看出nginx服务的强大。

在国内,已经有很多企业使用nginx服务器比如:新浪博客、新浪播客、搜狐通行证、网易新闻、网易博客、金山逍遥网等多家网站、频道使用 Nginx 服务器

3.2.Nginx服务的编译安装与配置

1.Linux操作系统下单节点的规划,在此我们命名为表3

IP

主机名

节点

192.168.100.30

nginx

Nginx节点

2.基础准备,这里我用的和mysql使用的软件镜像虚拟机配置一致。

3.基础环境安装

技术分享图片

 

 装好虚拟机配好网络使用远程工具连接到虚拟机,成功后我这里先把主机名修改成nginx:

4.关闭防火墙和SElinux服务

  #setenforce 0

#systemctl stop firewalld

  5.安装配置基础服务,配置yum源的方法和上方配置的yum一样,yum配置成功后,编译安装基础环境。

  这里安装nginx的编译环境gcc

yum install gcc gcc-c++

安装 pcre pcre-devel

  yum install -y pcre pcre-devel

安装 zlib

yum install -y zlib zlib-devel

创建指定用户,这个 nginx 用户要和 PHP 服务器上创建的 nginx 两者 id 一致,这里先 创建用户,命令如下:

[root@nginx ~]# groupadd -g 1001 nginx

  [root@nginx ~]#useradd -u 900 nginx -g nginx -s /sbin/nologin

  [root@nginx ~]# tail -1 /etc/passwd

nginx:x:900:1001::/home/nginx:/sbin/nologin

6.安装配置nginx服务

使用远程工具将nginx-1.12.2.tar.gz压缩包上传至nginx节点/usr/local/src/目录下,并解压到/usr.local/src/目录下

[root@nginx src]# tar -zxvf nginx-1.12.2.tar.gz

然后需要cd进入这个包的目录,进行编译&&安装

[root@nginx src]# cd nginx-1.12.2/

[root@nginx-1.12.2]#./configure

随后我们进行下面的安装

[root@nginx-1.12.2]# make && make install

编译完成后,我们可以通过创建软连接并启动测试,(如果在这里netstat无法使
用,使用yum安装net-tools工具即可)

技术分享图片

 

 

这里可以看到80端口启动,这也就说明nginx服务启动成功。

 

 

第四章  安装PHP环境

4.1.了解PHP 

优势:

开放源代码

所有的PHP的源代码事实上都是可以得到的

免费性PHP是免费的而且开源。

更快的操作和技术本身的更快学习的特点。而且它嵌入在HTML:

跨平台性强

PHP语言在服务器端运行,它可以在LINUX,WINDOWS,Mac OS,等很多平台上运行。

PHP效率极高,在效率极高的特点下它消耗的系统资源相当的少。

技术分享图片

 

 

 

4.2.PHP环境编译安装与配置

1.Linux操作系统PHP单节点规划,在这里我命名为图3

IP

主机名

节点

192.168.100.40

php

PHP环境节点

在这里使用的软件虚拟机配置以及镜像和上方搭建的服务全部相同。

2.基础环境配置

技术分享图片

 

 


配置号虚拟机网络用远程工具连接虚拟机,首先还是将主机名修改成php

3.关闭防火墙和SElinux服务

#setenforce 0

#systemctl stop firewalld

  4.安装基础服务,配置yum源,和上方服务配置方法相同,配置成功后编译安装基础环境

    [root@php ~]#yum -y install gcc gcc-c++

[root@php ~]#yum -y install libxml2-devel

[root@php ~]#yum -y install libcurl-devel

[root@php ~]#yum -y install openssl-devel

[root@php ~]#yum -y install bzip2-devel

  5.使用远程传输工具,将提供的 libmcrypt-2.5.8.tar.gz 压缩包上传,上传的时候放到/usr/local/src这个目录里面,解压,进入解压后的相应目录,编译安装该服务,操作如下:

[root@php src]# tar -zxvf libmcrypt-2.5.8.tar.gz

[root@php src]# cd libmcrypt-2.5.8/

[root@php libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt && make && make

install

6.安装PHP环境

使用远程传输工具,将提供的 php-5.6.27.tar.gz 压缩包上传至 php 节点的/usr/local/src 目 录下,解压该压缩包,进入解压后的目录,编译安装 PHP 服务,操作如下:

[root@php src]# tar -zxvf php-5.6.27.tar.gz

[root@php src]# cd php-5.6.27/

[root@php php-5.6.27]# ./configure

没有任何报错的提示,就进行下一步

[root@php php-5.6.27]# make && make install

这个地方编译安装时间较长

7.创建用户 ID

创建用户 ID,注意这个 nginx 的 id 号要和 nginx 主机(192.168.100.30)上

保持一致

[root@php php-5.6.27]# groupadd -g 1001 nginx

[root@php php-5.6.27]# useradd -u 900 nginx -g nginx -s /sbin/nologin [root@php php-5.6.27]# tail -1 /etc/passwd

8.配置PHP环境

PHP压缩包中提供了PHP环境需要用到的模板文件,需要对文件进行改名后才能使用, 复制文件并改名,操作如下:

[root@php php-5.6.27]# cp php.ini-production /etc/php.ini

[root@php php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

赋予文件执行权限,操作如下:

[root@php php-5.6.27]# chmod +x /etc/init.d/php-fpm

添加 PHP 服务到启动列表,并设置开机启动,操作如下:

[root@php php-5.6.27]# chkconfig --add php-fpm

[root@php php-5.6.27]# chkconfig php-fpm on

修改 PHP 的主配置文件 php-fpm.conf,操作如下:

[root@php php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf

[root@php php-5.6.27]# vi /usr/local/php5.6/etc/php-fpm.conf

[root@php ~]# grep -n ‘^‘[a-Z] /usr/local/php5.6/etc/php-fpm.conf

25:pid = run/php-fpm.pid

149:user = nginx

150:group = nginx

164:listen = 192.168.100.40:9000

224:pm = dynamic 19

235:pm.max_children = 50

240:pm.start_servers = 5

245:pm.min_spare_servers = 5

 250:pm.max_spare_servers = 35

9.启动PHP服务

技术分享图片

 

  完成上面的配置保存了之后,我就对PHP服务进行启动了,当然也要进行检查启 动是否成功。

在这里可以看到9000端口已经启动了,说明PHP环境安装已经完成了。

第五章 分布式部署LNMP+WordPress


5.1. 了解分布式部署WordPress的架构

 技术分享图片

 

 

5.2. 了解分布式部署WordPress应用的配置与操作

1.规划节点

在这里我将上方所有节点整合到一个表里,我命名这个表名为表S

IP

主机名

节点

192.168.100.10

mysql1

数据库主节点

192.168.100.20

mysql2

数据库从节点

192.168.100.30

nginx

nginx服务节点

192.168.100.40

php

PHP环境节点

 

2.基础准备

我在以在上几个服务配置中,已经完成了主从数据库的安装配置、Nginx服务的安装、PHP环境的安装,现在我将进行分布式LNMP环境的调试和WordPress应用的部署。

3.分布式LNMP环境的调试

 使用远程工具连接虚拟机nginx节点,并进行修改配置文件。操作如下

[root@nginx ~]# vi /usr/local/nginx/conf/nginx.conf

location / {

root /www;                              #更改网页目录

index index.php index.html index.htm;        #添加 index.php

}

location ~ \.php$ {                               #去掉 location{}前的注释符

root /www; #更改目录为/www

fastcgi_pass 192.168.100.40:9000;   

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

include fastcgi_params; }

全部修改完成后,wq保存退出。

接着在/usr/local/nginx/conf/fastcgi_params 添加配置,操作如下:

[root@nginx ~]# vi /usr/local/nginx/conf/fastcgi_params

  fastcgi_param QUERY_STRING $query_string;

  fastcgi_param REQUEST_METHOD $request_method;

  fastcgi_param CONTENT_TYPE $content_type;

  fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #添加这 行代码

fastcgi_param REQUEST_URI $request_uri;

fastcgi_param DOCUMENT_URI $document_uri;

fastcgi_param DOCUMENT_ROOT $document_root;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REQUEST_SCHEME $scheme;

fastcgi_param HTTPS $https if_not_empty;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;

fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;

fastcgi_param REMOTE_PORT $remote_port;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

4.创建目录,在nginx和php节点,创建/www目录,并修改用户用户组,操作如下

nginx节点:

[root@nginx ~]# mkdir /www

[root@nginx ~]# chown nginx:nginx /www/

php 节点:

[root@php ~]# mkdir /www

[root@php ~]# chown nginx:nginx /www/

5. 部署 WordPress

使用远程传输工具,把wordpress-4.7.3-zh_CN.zip压缩包上传至nginx节点和php节点的/root目录下并解压,将压缩后的文件复制到/www目录,操作如下:(在这里unzip不能使用,用yum源安装unzip工具就解决了)

nginx 节点:

[root@nginx ~]# unzip wordpress-4.7.3-zh_CN.zip

[root@nginx ~]# mv wordpress/* /www/

php 节点:

[root@php ~]# unzip wordpress-4.7.3-zh_CN.zip

[root@php ~]# mv wordpress/* /www/

在 nginx 节点, 修 改 WordPress 应 用 的 配 置 文 件 , WordPress 应 用 提 供 了 wp-config-sample.php 模版文件,将模板文件复制为 wp-config.php,并修改,操作如下:

[root@nginx ~]# cp /www/wp-config-sample.php /www/wp-config.php

[root@nginx ~]# vi /www/wp-config.php

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //

/** WordPress 数据库的名称 */

define(‘DB_NAME‘, ‘wordpress‘);

/** MySQL 数据库用户名 */ define(‘DB_USER‘, ‘root‘);

/** MySQL 数据库密码 */ define(‘DB_PASSWORD‘, ‘000000‘);

/** MySQL 主机 */ define(‘DB_HOST‘, ‘192.168.200.30‘);

/** 数据库整理类型。如不确定请勿更改 */

define(‘DB_COLLATE‘, ‘‘);

按照上述文件修改配置文件,保存退出后,将该配置文件 scp 至 php 节点的/www 目录 下,命令如下:

 [root@nginx ~]# scp /www/wp-config.php root@192.168.100.40:/www/

6. 创建 WordPress 数据库

在 mysql1 节点,登录数据库,使用命令创建 WordPress 数据库,操作如下: [root@mysql1 ~]# mysql -uroot -p000000

MariaDB [(none)]> create database wordpress;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> Ctrl-C -- exit! Aborted

7.验证 WordPress 应用

在 Nginx 节点重启 Nginx 服务,操作如下:

[root@nginx ~]# nginx -s reload

在浏览器中输入 192.168.100.30地址进行访问,会出现著名的 WordPress 五分钟安装程 序,填写必要的信息,然后单击左下角“安装 WordPress”按钮,进行 WordPress 应用的安装。

 技术分享图片

 

 进行安装,安装完成后,进入WordPress后台

 技术分享图片

 

 技术分享图片

 

 

到这里,分布式部署LNMP+WordPress应用完成。

 

LNMP搭建

原文:https://www.cnblogs.com/yinmingyang/p/14265402.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!