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

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文件删除,再次初始化问题就能得到解决

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340