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

目录

一、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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第1张图片

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协议请求的一些状态统计模块

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第2张图片

这样就编译完成了

解释安装

make && make install #解释安装

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第3张图片

 这样就成功了

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

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

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

 打开服务进行验证

 LNMP架构搭建以及部署DISCUZ!社区论坛应用_第4张图片

 到此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

 LNMP架构搭建以及部署DISCUZ!社区论坛应用_第5张图片

就OK了 

2.3、安装MySQL服务

安装mysql的环境依赖包

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

yum -y install  ncurses  ncurses-devel  bison cmake

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第6张图片

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

useradd -s /sbin/nologin mysql 

 

上传mysql安装包

 解压编译安装

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第7张图片

 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 

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第8张图片

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第9张图片

对数据库权限进行调整

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第10张图片

调整配置文件

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第11张图片

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

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第12张图片

重启数据库密码

mysqladmin -u root -p password

 登陆数据库查看一下

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第13张图片

这样数据库就装完了

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 安全性访问/加密访问

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第14张图片

编译安装

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第15张图片

安装

make && make install

扩展配置文件

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第16张图片

 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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第17张图片 LNMP架构搭建以及部署DISCUZ!社区论坛应用_第18张图片

  验证一下安装的模块

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第19张图片

 这样就添加成功了

配置及优化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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第20张图片

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

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第21张图片

开启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也要添加

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第22张图片

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

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第23张图片

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第24张图片

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

测试数据库工作是否正常

mysql -u root -p

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第25张图片

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

 CREATE DATABASE bbs;

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

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

flush privileges;

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第26张图片

更改nginx中index.php中内容

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

Success!!";
else echo "Fail!!";
?>

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第27张图片

 再去测试一下

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第28张图片

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

2.6、LNMP应用部署

将应用包放到opt下

 解压

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第29张图片

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/

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第30张图片

然后访问一下

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第31张图片

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

点击我同意进行下一步

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第32张图片

 继续下一步

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第33张图片

 LNMP架构搭建以及部署DISCUZ!社区论坛应用_第34张图片

 LNMP架构搭建以及部署DISCUZ!社区论坛应用_第35张图片

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第36张图片

我们就会跳转到这个页面

登陆管理员界面

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第37张图片

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

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

mv install/ install.lock

chmod 600 install.lock/

 LNMP架构搭建以及部署DISCUZ!社区论坛应用_第38张图片

然后我们刷新一下页面

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第39张图片

 到此配置完成

2.7、LNMP部署完成进行验证

管理后台的页面

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第40张图片

 论坛主页面

192.168.130.156/bbs/index.php

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第41张图片

安装时的报错!!!

错误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".

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第42张图片

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

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

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

cd mysql-5.7.20/ #进入源码包

rm -rf CMakeCache.txt

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第43张图片

 然后再次编译就行

问题解决!

错误2:

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

LNMP架构搭建以及部署DISCUZ!社区论坛应用_第44张图片

 这个问题很好解决

我们进入MySQL的文件

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

你可能感兴趣的:(Linux,linux服务,数据库,mysql,linux,运维,服务器)