目录

一、LNMP架构部署思路

二、开始进行部署

2.1、安装依赖环境

2.2、安装Nginx服务

上传nginx安装包到opt目录下

进入到源码文件中,对其进行编译

解释安装

打开服务进行验证

将nginx添加为系统服务

2.3、安装MySQL服务

安装mysql的环境依赖包

创建运行用户(注意:不要加-M)

上传mysql安装包

解压编译安装

对数据库权限进行调整

调整配置文件

设置环境变量

初始化数据库

重启数据库密码

2.4、安装php中间件

取php安装包

解压安装包

第一步还是安装一些依赖软件

编译安装

扩展配置文件

配置及优化FPM模块

开启php服务

配置nginx让nginx支持PHP功能

测试数据库工作是否正常

2.6、LNMP应用部署

将应用包放到opt下

解压

登陆管理员界面

2.7、LNMP部署完成进行验证

管理后台的页面

论坛主页面

安装时的报错!!!

错误1:

错误2:


LNMP 指的是一个基于 CentOS/Debian 编写的 Nginx、Linux、MySQL、PHP,可以在独立主 机上轻松的安装 LNMP 生产环境。本案例主要介绍 LNMP 框架安装方法以及部署 Discuz!社 区论坛应用。

一、LNMP架构部署思路

1、安装Nginx服务

2、安装MySQL服务

3、安装配置PHP解析环境

4、部署Discuz!社区论坛Web应用

二、开始进行部署

虚拟机容量尽量大点(40g以上)

2.1、安装依赖环境

在安装前需要安装pcre、zlib等软件,因为nginx等软件的配置和允许需要

yum install -y gcc gcc-c++ make pcre pcre-devel expat-devel perl zlib zlib-devel

2.2、安装Nginx服务

在安装前需要创建nginx的用户,以便更准确的控制其访问权限,增加灵活性,降低安全风险

useradd -M -s /sbin/nologin nginx

上传nginx安装包到opt目录下

也可以去官网下载:http://nginx.org/

tar -zxvf nginx-1.15.9.tar.gz   #对其进行解压

进入到源码文件中,对其进行编译

cd nginx-1.15.9/

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

prefix代表工作目录,决定软件在哪个工作目录

user 管理软件的用户

group 管理软件的组

--with 开启或集成 -http_stub_status_module   集成http协议请求的一些状态统计模块

这样就编译完成了

解释安装

make && make install #解释安装

这样就成功了

我们进入到/usr/local下看一下

先不要启动,为了便于日后更好的允许,我们需要为其创建软连接,或者复制到/usr/local/sbin

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

打开服务进行验证

到此nginx就安装成功了。

将nginx添加为系统服务

vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx                                        ####描述
After=network.target                                     ####描述服务类别
[Service]
Type=forking                                              ###后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid                   ###PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx                     ###启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID             ###根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID                ###根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target

然后我们测试一下

但是在开启以前一定要前(nginx -s stop)

systemctl start nginx

就OK了

2.3、安装MySQL服务

安装mysql的环境依赖包

yum -y install \ ncurses \ #字符终端工具包 UTF-8 ncurses-devel \ bison \ #函数库 cmake

yum -y install  ncurses  ncurses-devel  bison cmake

创建运行用户(注意:不要加-M)

useradd -s /sbin/nologin mysql

上传mysql安装包

解压编译安装

cd mysql-5.7.20/ #进入源码包

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

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \      #指定安装路径(目录)
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \    #指定通信文件,连接数据库,通讯协议的载体⭐⭐⭐
-DSYSCONFDIR=/etc \                                #配置文件目录指向/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql \           #指定pid目录文件
-DDEFAULT_CHARSET=utf8 \                       #字符集设定
-DDEFAULT_COLLATION=utf8_general_ci \          #字符集设定
-DWITH_INNOBASE_STORAGE_ENGINE=1 \             #以下三行均为存储引擎ENGINE
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \            #指定数据存放位置
-DWITH_BOOST=boost \                           #底层C++运营库 独立的表空间结构
-DWITH_SYSTEMD=1                               #守护进程id 守护进程
——》跑在后台的一个支持服务正常运行的一个特殊进程

make && make install

整个过程会挺慢的,需要耐心等待

对数据库权限进行调整

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

调整配置文件

vi /etc/my.cnf

将原有内容删除,替换下面内容

#删除原有内容,添加以下内容
[client]                    #client 用户程序
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock[mysql]                        #mysql 软件内容
port = 3306                    #端口
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock[mysqld]                   #以后对mysql配置时 更多的会针对于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 #PID文件目录
socket = /usr/local/mysql/mysql.sock   #通讯文件
server-id = 1              #服务id,在之后的mysql集群中用于标识mysql服务器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

#更改一下文件属性

chown mysql:mysql /etc/my.cnf

设置环境变量

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

echo 'export PATH' >> /etc/profile

source /etc/profile

初始化数据库

cd /usr/local/mysql

#进入目录

bin/mysqld \

--initialize-insecure \

--user=mysql \

--basedir=/usr/local/mysql \

--datadir=/usr/local/mysql/data

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

#将mysql称为系统服务,这样就能使用systemctl去启动了

重启数据库密码

mysqladmin -u root -p password

登陆数据库查看一下

这样数据库就装完了

2.4、安装php中间件

取php安装包

解压安装包

tar -jxvf php-7.1.10.tar.bz2

第一步还是安装一些依赖软件

yum -y install \

libjpeg \ libjpeg-devel \

libpng libpng-devel \

freetype freetype-devel \

libxml2 \

libxml2-devel \

zlib zlib-devel \

curl curl-devel \

openssl openssl-devel

#各个依赖功能
libjpeg \                       #jpg图片依赖
libjpeg-devel \
libpng libpng-devel \           #png图片依赖
freetype freetype-devel \       #字体
libxml2 \                       #支持xml
libxml2-devel \
zlib zlib-devel \               #压缩格式
curl curl-devel \               #识别url
openssl openssl-devel
##xml 支持扩展性标记语言,用于承载数据url 网址 openssl 安全性访问/加密访问

编译安装

cd php-7.1.10/

#进行编译

./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

安装

make && make install

扩展配置文件

还是在/opt中php的源码文件中将php.ini-development复制到/usr/local/php/lib下

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

vim /usr/local/php/lib/php.ini #将下面的话复制进去

/1170行 mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai

 

验证一下安装的模块

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

这样就添加成功了

配置及优化FPM模块

#复制主配置文件及php-fpm配置文件

cd /usr/local/php/etc/

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

cd /usr/local/php/etc/php-fpm.d/

cp www.conf.default www.conf

vim /usr/local/php/etc/php-fpm.conf

pid = run/php-fpm.pid  #开启pid支持(可运行)

开启php服务

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini #启动php   这里的-c代表conf

netstat -anpt | grep 9000

这样就开启了

配置nginx让nginx支持PHP功能

cd /usr/local/nginx/conf/

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;
}
#注意下面的location也要添加

在去html目录下去创建一个.php的文件

vim /usr/local/nginx/html/index.php

<?php
phpinfo();
?>

然后重启,去查看这个网页

出现这个页面就是连接成功了

测试数据库工作是否正常

mysql -u root -p

这样就成功进入数据库内了

CREATE DATABASE bbs;

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

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

flush privileges;

更改nginx中index.php中内容

vim /usr/local/nginx/html/index.php ###原来的测试页内容更改如下

<?php
$link=mysqli_connect('192.168.130.156','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

再去测试一下

这样就说明与数据库连接成功了。

2.6、LNMP应用部署

将应用包放到opt下

解压

unzip Discuz_X3.4_SC_UTF8.zip -d /tmp #解压到tmp目录下

cd /tmp/dir_SC_UTF8/

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

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

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/

然后访问一下

192.168.130.156/bbs/install/index.php #这是安装页面

出现这个界面就是应用成功了

点击我同意进行下一步

继续下一步

这样就安装完成了,点击右下角访问

我们就会跳转到这个页面

登陆管理员界面

登陆后页面出不来,我们只需要去删除这个软件

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

mv install/ install.lock

chmod 600 install.lock/

然后我们刷新一下页面

到此配置完成

2.7、LNMP部署完成进行验证

管理后台的页面

192.168.130.156/bbs/admin.php #这是后台管理页面

论坛主页面

192.168.130.156/bbs/index.php

安装时的报错!!!

错误1:

在安装的时候会报错

-- Configuring incomplete, errors occurred!
See also "/opt/mysql-5.7.20/CMakeFiles/CMakeOutput.log".
See also "/opt/mysql-5.7.20/CMakeFiles/CMakeError.log".

这是因为我们缺少一些编译软件,所以在安装时一定要将依赖的环境软件安装全

yum -y install  ncurses ncurses-devel  bison  cmake  gcc  gcc-c++

再次进入源码包暗处缓存文件就行

cd mysql-5.7.20/ #进入源码包

rm -rf CMakeCache.txt

然后再次编译就行

问题解决!

错误2:

当我们初始化数据库的时候,可能会报这个错

这个问题很好解决

我们进入MySQL的文件

将data文件删除,再次初始化问题就能得到解决

LNMP架构搭建以及部署DISCUZ!社区论坛应用相关推荐

  1. LNMP 架构部署(附:部署 Discuz 社区论坛 Web 应用)

    文章目录 前言 一.安装 Nginx 服务 二.安装 MySQL 服务 三.安装配置 PHP 解析环境 四.部署 Discuz 社区论坛 Web 应用 前言 LAMP 中的"A"对 ...

  2. LNMP架构搭建以及一键部署

    LNMP架构搭建以及一键部署 前言 一.数据流向 1.1 Nginx服务安装 1.1.1 关闭防火墙 1.1.2 将所需软件包拖入/opt目录下 1.1.3 安装依赖包 1.1.4 创建运行用户.组 ...

  3. LNMP架构搭建(一键部署)

    目录 LNMP平台的数据流向 安装前准备 ​编辑 将所需软件包插入/opt目录下 nginx服务的安装 安装依赖包 创建运行用户.组 编译安装Nginx ​编辑 添加 Nginx 系统服务 nginx ...

  4. LNMP架构搭建(源码编译)

    1. LNMP架构介绍 LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构. Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统.代表版本有:d ...

  5. LNMP架构搭建实操

    目录 一.安装Nginx服务 二.安装Mysql服务 三.安装PHP服务 四.使用LNMP架构搭建bbs论坛 LNMP架构是指Linux+Nginx+Mysql+PHP(Perl.Python) 首先 ...

  6. Error !安装Discuz社区论坛没有出现图形化界面

    目录 实验故障 解决方法 实验故障 在上篇博客中,Nginx网站服务中,因为实验环境没变,承接上一个项目导致安装Discuz社区论坛出现如下问题. 解决方法 原因:做基于域名的虚拟主机功能的项目时,修 ...

  7. LNMP架构搭建和一键部署LNMP

    文章目录 一.LNMP工作原理 1.LNMP工作原理 2.LAMP工作原理 3.LAMP和LNMP的区别 二.LNMP部署 1.安装nginx服务 1.1 安装nginx的依赖包 1.2 创建ngin ...

  8. 企业级LNMP架构搭建实例(基于Centos6.x)

    1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNM ...

  9. lnmp架构搭建—源码编译(nginx、mysql、php)

    含义及理解: LNMP = Linux+Nginx+Mysql+PHP:LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写.L指Linux,N指Nginx,M一般指MySQL ...

最新文章

  1. IOS高级开发 runtime(一)
  2. SAP C4C的URL Mashup无法添加到embedded component里去
  3. [恢]hdu 2147
  4. 【HDU - 5475】An easy problem(线段树,思维)
  5. socket编程(六)
  6. 基于better-scroll实现的类似ios选择器
  7. 电子商务入门、实操、行业分析及公司案例等精彩系列问答有哪些?
  8. Go语言之 下载安装及第一个代码
  9. C# 连接本地数据库
  10. 微信小程序怎么做店铺_微信小程序如何开通店铺
  11. 多位大咖谏言,助力锂电企业交出市场考验的满意答卷
  12. POI Excel列宽设置
  13. 解决ImportError: /lib64/libm.so.6: version `GLIBC_2.23‘ not found (required by /root/anaconda3/lib/pyt
  14. DAP数据分析平台介绍
  15. ISTQB基础级考试心得
  16. 如何解除word文档保护的方法
  17. HLS直播(M3U8)回看和下载功能的实现
  18. 二极管的分类及常用方法
  19. Kelvin's Oracle on centOS6.5
  20. 与小米一起“星辰大海,云端漫步”

热门文章

  1. 南京长江隧道发生连环追尾事故 没有人员伤亡-南京-隧道-追尾
  2. map函数作用c语言,c语言中map的用法:map基本用法
  3. mysql drop temporary_mysql存储过程----临时表 temporary
  4. python篇-基础知识2
  5. MySQL缓冲池-Buffer Pull
  6. 【pySerial3.4官方文档】1、pySerial
  7. 嵌入式linux开发uboot启动过程源码分析(一)
  8. 小菜鸟Python历险记:(第二集)
  9. php+mysql一个简单的图书管理系统设计思路
  10. 成功解决matplotlib.units.ConversionError: Failed to convert value(s) to axis units: ‘LiR‘