LNMP架构

一、概览

1、关于Nginx

一款高性能、轻量级Web服务软件

  • 稳定性高

  • 系统资源消耗低

  • 对HTTP并发连接的处理能力高

    单台物理服务器可支持30 000 ~ 50 000个并发请求

2、LNMP架构解读

LNMP平台就是Linux、Ngnix、MySQL、PHP的组合架构,需要Linux服务器、MySQL数据库、 PHP解析环境

3、MySQL安装配置

  • 为了与Nginx、PHP环境保持-致,此处选择采用源代码编译的方式安装MySQL组件
  • MySQL部署的方法
  1. 编译安装MySQL
  2. 优化调整
  3. 初始化数据库
  4. 启动MySQL服务并设置root数据库账号的密码

4、PHP解析环境的安装

  • 配置网页动静分离,解析PHP,有两种方法可以选择

    1. 使用PHP的FPM模块
    2. 将访问PHP页面的Web请求转交给Apache服务器去处理
  • 较新版本的PHP已经自带FPM模块,对PHP解析实例进行管理、优化解析效率

    1. FastCGI将Http Server和动态脚本语言分离开
    2. Nginx专门处理静态请求,转发动态请求
    3. PHP-FPM专门解析PHP动态请求
  • 单服务器的LNMP架构通常使用FPM方式来解析PHP

二、操作实验

实验目的

采用LNMP架构方式

实验规划

1、安装Nginx服务

2、安装Mysql服务

3、安装配置PHP解析环境

4、部分Discuz论坛

实验步骤

1、安装工具包

yum install gcc gcc-c++ pcre-devel zlib-devel -y

2、解压文件

cd /opt

tar zxvf nginx-1.12.2.tar.gz

LNMP架构

cd nginx-1.12.2/

3、创建用户

useradd -M -s /sbin/nologin nginx

LNMP架构

4、设置安装相关信息

./configure
–prefix=/usr/local/nginx
–user=nginx
–group=nginx
–with-http_stub_status_module

LNMP架构

5、编译并安装

make && make install

6、创建软链接

ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

nginx -t

LNMP架构

7、编辑配置文件

cd /lib/systemd/system

vim nginx.service

新增内容如下所示

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

LNMP架构

8、添加权限

chmod 754 nginx.service

9、启动nginx服务

systemctl start nginx

LNMP架构

10、关闭防火墙

systemctl stop firewalld

setenforce 0

LNMP架构

11、测试安装可用

浏览器中访问:192.168.235.150

LNMP架构

12、安装Mysql环境依赖包

yum -y install
ncurses
ncurses-devel
bison
cmake

LNMP架构

13、创建用户

useradd -s /sbin/nologin mysql

LNMP架构

14、解压Mysql安装文件

cd /opt

ls

tar zxvf mysql-boost-5.7.20.tar.gz

LNMP架构

15、设置安装选项

cd mysql-5.7.20/

ls

cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DSYSCONFDIR=/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/usr/local/mysql/data
-DWITH_BOOST=boost
-DWITH_SYSTEMD=1

LNMP架构

16、编译并安装

make && make install

17、调整配置文件

vim /etc/my.cnf

修改内容如下所示

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

LNMP架构

18、数据库目录进行权限调整

cd /usr/local/

chown -R mysql:mysql /usr/local/mysql/

ls -l

LNMP架构

19、设置环境变量

echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH’ >> /etc/profile

echo ‘export PATH’ >> /etc/profile

source /etc/profile

LNMP架构

20、初始化数据库

cd /usr/local/mysql/bin/

mysqld
–initialize-insecure
–user=mysql
–basedir=/usr/local/mysql
–datadir=/usr/local/mysql/data

LNMP架构

21、复制文件

cd …

cd usr/lib/systemd/system/

cp mysqld.service /lib/systemd/system/

LNMP架构

22、启动mysql服务

systemctl start mysqld.service

23、测试下服务可用

netstat -ntap | grep 3306

LNMP架构

24、设置Mysql密码

mysqladmin -uroot -p password

回车

两次输入密码:123123

LNMP架构

25、登录数据库

mysql -uroot -p

123123

登录成功

quit

LNMP架构

26、安装环境依赖包

yum -y install
libjpeg
libjpeg-devel
libpng libpng-devel
freetype freetype-devel
libxml2
libxml2-devel
zlib zlib-devel
curl curl-devel
openssl openssl-devel

LNMP架构

27、解压文件

cd /opt

tar jxvf php-7.1.10.tar.bz2

cd php-7.1.10

28、配置安装

./configure
–prefix=/usr/local/php
–with-mysql-sock=/usr/local/mysql/mysql.sock
–with-mysqli
–with-zlib
–with-curl
–with-gd
–with-jpeg-dir
–with-png-dir
–with-freetype-dir
–with-openssl
–enable-fpm
–enable-mbstring
–enable-xml
–enable-session
–enable-ftp
–enable-pdo
–enable-tokenizer
–enable-zip

LNMP架构

29、编译并安装

make && make install

30、拷贝文件并编辑主配置文件

cp php.ini-development /usr/local/php/lib/php.ini

vim /usr/local/php/lib/php.ini

LNMP架构

LNMP架构

31、验证安装的模块

/usr/local/php/bin/php -m

32、拷贝配置文件

cd /usr/local/php/etc

ls

cp php-fpm.conf.default php-fpm.conf

LNMP架构

33、编辑配置文件

vim php-fpm.conf

LNMP架构

34、拷贝配置文件

cd php-fpm.d/

ls

cp www.conf.default www.conf

LNMP架构

35、启动php服务

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini

netstat -ntap | grep 9000

LNMP架构

36、创建软链接

ln -s /usr/local/php/bin/* /usr/local/bin/

LNMP架构

37、编辑配置文件

cd /usr/local/nginx/conf

ls

vim nginx.conf

编辑内容如下所示

location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

LNMP架构

LNMP架构

38、重启nginx服务

systemctl restart nginx.service

LNMP架构

39、编辑网页文件

cd /usr/local/nginx/html/

ls

mv index.html index.php

vim index.php

LNMP架构

40、网页测试

界面访问:192.168.235.150

LNMP架构

41、登录数据库

mysql -uroot -p

123123

CREATE DATABASE bbs;

GRANT all ON bbs.* TO ‘bbsuser’@’%’ IDENTIFIED BY ‘admin123’;

GRANT all ON bbs.* TO ‘bbsuser’@‘localhost’ IDENTIFIED BY ‘admin123’;

flush privileges;

show databases;

quit

LNMP架构

42、解压

cd /opt

unzip Discuz_X3.4_SC_UTF8.zip

43、拷贝论坛文件

cd dir_SC_UTF8/

ls

cp -r upload/ /usr/local/nginx/html/bbs

LNMP架构

44、跳转到站点目录中

cd /usr/local/nginx/html/bbs/

ls

ls -l

LNMP架构

45、给文件及目录添加执行权限

chown -R root:nginx ./config/

chown -R root:nginx ./data/

chown -R root:nginx ./uc_client/

chown -R root:nginx ./uc_server/

chmod -R 777 ./config/

chmod -R 777 ./data/

chmod -R 777 ./uc_client/

chmod -R 777 ./uc_server/

LNMP架构

46、网页访问安装

访问地址:192.168.235.150/bbs/install/index.php

LNMP架构

47、安装数据库

数据库:bbs

输入用户名:bbsuser

输入密码:admin123

48、论坛访问测试

访问地址:192.168.235.150/bbs/index.php

LNMP架构