LNMP架构部署Discuz论坛系统

news2024/11/15 15:35:54

文章目录

  • LNMP架构&部署Discuz论坛系统
    • 部署LNMP架构
        • 环境
        • 前期准备
        • 安装Nginx
        • 安装mariadb
        • 安装php
        • 配置nginx
    • 部署Discuz论坛系统
        • 下载Discuz论坛系统代码包
        • 部署Discuz论坛系统
        • 配置虚拟主机
        • 安装Discuz论坛
        • 访问站点
        • 尝试注册一个账号

LNMP架构&部署Discuz论坛系统

部署LNMP架构

环境
操作系统Nginx版本数据库版本PHP版本
centos-8nginx-1.22.1mariadb-10.3php-8.2.10

前期准备
//配置yum源(推荐使用阿里云源)和epel源
[root@wanf ~]# rm -rf /etc/yum.repos.d/*
[root@wanf ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@wanf ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@wanf ~]# yum clean all
[root@wanf ~]# yum makecache
[root@wanf ~]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
[root@wanf ~]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
[root@wanf ~]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
[root@wanf ~]# yum makecache 

//永久关闭防火墙和selinux
[root@wanf ~]# systemctl disable --now firewalld.service 
[root@wanf ~]# setenforce 0
[root@wanf ~]# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
[root@wanf ~]# reboot

//安装相关依赖
[root@wanf ~]# yum -y install libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel  pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd sqlite-devel libzip libzip-devel gd-devel oniguruma make wget vim  --nobest

[root@wanf ~]# yum -y install http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-2.el8.x86_64.rpm

[root@wanf ~]# yum -y install gcc gcc-c++ --allowerasing
[root@wanf ~]# yum -y groups mark install 'Development Tools'
安装Nginx
//创建nginx系统用户
[root@wanf ~]# useradd -r -M -s /sbin/nologin nginx
[root@wanf ~]# id nginx 
uid=995(nginx) gid=992(nginx) groups=992(nginx)


//创建日志存放目录
[root@wanf ~]# mkdir -p /var/log/nginx
[root@wanf ~]# chown -R nginx.nginx /var/log/nginx

//下载nginx软件包,并安装
[root@wanf ~]# wget http://nginx.org/download/nginx-1.22.1.tar.gz -P /usr/src/

//编译安装
[root@wanf ~]# cd /usr/src/
[root@wanf src]# ls
debug  kernels  nginx-1.22.1.tar.gz
[root@wanf src]# tar -xf nginx-1.22.1.tar.gz 
[root@wanf src]# cd nginx-1.22.1/
[root@wanf nginx-1.22.1]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-debug \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log
(配置过程省略)

[root@wanf nginx-1.22.1]# make -j4 && make install
(编译安装过程省略)

//nginx安装后配置
//配置环境变量
[root@wanf ~]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@wanf ~]# source /etc/profile.d/nginx.sh

//加入systemctl管理
[root@wanf ~]# vim /usr/lib/systemd/system/nginx.service 
[root@wanf ~]# cat /usr/lib/systemd/system/nginx.service 
[Unit]
Description=nginx server daemon
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecReload=/usr/local/nginx/sbin/nginx -s reload

[Install]
WantedBy=multi-user.target
[root@wanf ~]# systemctl daemon-reload  

//启动并设置开机自启
[root@wanf ~]# systemctl enable --now nginx.service 
[root@wanf ~]# ss -anlt
State   Recv-Q  Send-Q    Local Address:Port     Peer Address:Port  Process  
LISTEN  0       511             0.0.0.0:80            0.0.0.0:*              
LISTEN  0       128             0.0.0.0:22            0.0.0.0:*              
LISTEN  0       128                [::]:22               [::]:*              
[root@wanf ~]# 

成功访问nginx主页

在这里插入图片描述


安装mariadb
//安装mariadb
[root@wanf ~]# yum -y install mariadb mariadb-server

//启动mariadb并设置开机自启
[root@wanf ~]# systemctl enable --now mariadb.service 

//设置密码
[root@wanf ~]# mysql
MariaDB [(none)]> set password = password('12345678');   //根据需求设置密码
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> quit
Bye
[root@wanf ~]# 

安装php
//下载php软件包
[root@wanf ~]# wget https://www.php.net/distributions/php-8.2.10.tar.gz -P /usr/src/

//编译安装
[root@wanf ~]# cd /usr/src/
[root@wanf src]# tar -xf php-8.2.10.tar.gz 
[root@wanf src]# cd php-8.2.10/
[root@wanf php-8.2.10]# ./configure --prefix=/usr/local/php8  \
--with-config-file-path=/etc \
--enable-fpm \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-openssl \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-exif  \
--enable-ftp \
--enable-gd  \
--with-jpeg \
--with-zlib-dir \
--with-freetype \
--with-gettext \
--enable-mbstring \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-readline \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--with-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-pcntl \
--enable-posix
(配置过程省略)

[root@wanf php-8.2.10]# make -j4 && make install
(编译安装过程省略)

//安装后配置
[root@wanf php-8.2.10]# echo 'export PATH=/usr/local/php8/bin:$PATH' > /etc/profile.d/php8.sh
[root@wanf php-8.2.10]# source /etc/profile.d/php8.sh
[root@wanf php-8.2.10]# cp php.ini-production /etc/php.ini
cp: overwrite '/etc/php.ini'? y
[root@wanf php-8.2.10]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@wanf php-8.2.10]# chmod +x /etc/rc.d/init.d/php-fpm
[root@wanf php-8.2.10]# cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf
[root@wanf php-8.2.10]# cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf
[root@wanf php-8.2.10]# vim /usr/local/php8/etc/php-fpm.conf
[root@wanf php-8.2.10]# vim /usr/local/php8/etc/php-fpm.conf
[root@wanf php-8.2.10]# tail -4 /usr/local/php8/etc/php-fpm.conf
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8 
[root@wanf php-8.2.10]# 

//加入systemctl管理
[root@wanf ~]# vim /usr/lib/systemd/system/php-fpm.service
[root@wanf ~]# cat /usr/lib/systemd/system/php-fpm.service
[Unit]
Description=php-fpm server daemon
After=network.targe

[Service]
Type=forking
ExecStart=/etc/rc.d/init.d/php-fpm start
ExecStop=/etc/rc.d/init.d/php-fpm stop
ExecReload=/bin/kill -HUP \$MAINPID

[Install]
WantedBy=multi-user.target
[root@wanf ~]# systemctl daemon-reload

//启动并设置开机自启
[root@wanf ~]# systemctl enable --now php-fpm.service 
配置nginx
//创建php测试页面
[root@wanf ~]# cd /usr/local/nginx/html/
[root@wanf html]# vim index.php
[root@wanf html]# cat index.php 
<?php
    phpinfo();
?>
[root@wanf html]# 

//修改nginx主配置文件
[root@wanf html]# vim /usr/local/nginx/conf/nginx.conf
......
server {
        listen       80;
        server_name  www.wanf.com;      //自己的域名
......
        location / {
            root   html;
            index  index.php index.html index.htm;    //加一个index.php
        }
......
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;    //改为fastcgi.conf;
        }
......

//重启服务
[root@wanf html]# systemctl restart nginx.service 

通过IP地址访问测试页面

在这里插入图片描述

部署完成

部署Discuz论坛系统

下载Discuz论坛系统代码包

在这里插入图片描述

Discuz论坛系统下载地址Discuz官网

//我提前下好了,然后传进主机中
[root@wanf ~]# ls
Discuz_X3.5_SC_UTF8_20231001.zip
部署Discuz论坛系统
//创建一个目录存放网站文件
[root@wanf ~]# mkdir /usr/local/nginx/html/Discuz

//解压到刚刚创建的目录
[root@wanf ~]# yum -y install unzip
[root@wanf ~]# unzip Discuz_X3.5_SC_UTF8_20231001.zip -d /usr/local/nginx/html/Discuz/
[root@wanf ~]# cd /usr/local/nginx/html/
[root@wanf html]# ls
50x.html  Discuz  index.html  index.php
[root@wanf html]# cd Discuz/
[root@wanf Discuz]# ls
LICENSE  qqqun.png  readme  readme.html  upload  utility.html
[root@wanf Discuz]# cd upload/
[root@wanf upload]# ls
admin.php  connect.php      group.php   misc.php    source
api        crossdomain.xml  home.php    plugin.php  static
api.php    data             index.php   portal.php  template
archiver   favicon.ico      install     robots.txt  uc_client
config     forum.php        member.php  search.php  uc_server
[root@wanf upload]# 

//修改权限
[root@wanf ~]# cd /usr/local/nginx/html/Discuz/upload/
[root@wanf upload]# chown -R nginx config/
[root@wanf upload]# chown -R nginx data/
[root@wanf upload]# chown -R nginx uc_client/
[root@wanf upload]# chown -R nginx uc_server/
[root@wanf upload]# chmod -R 777 config/
[root@wanf upload]# chmod -R 777 data/
[root@wanf upload]# chmod -R 777 uc_client/
[root@wanf upload]# chmod -R 777 uc_server/

//创建数据库
[root@wanf ~]# mysql -uroot -p12345678 -e "create database Discuz;"

配置虚拟主机
//编辑nginx配置文件,创建一个虚拟主机,可以用域名访问
[root@wanf ~]# vim /usr/local/nginx/conf/nginx.conf
.......
server {
        listen       80;
        server_name  www.wanf1.com;     //自己的域名
        
        
        location / {
            root   html/Discuz/upload;           //改为网站目录
            index  index.php index.html index.htm;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        
        location ~ \.php$ {
            root           html/Discuz/upload;     //改为网站目录
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
    }
......

//重启nginx服务和php-fpm
[root@wanf ~]# systemctl restart nginx.service 
[root@wanf ~]# systemctl restart php-fpm.service 
安装Discuz论坛

第一次安装需要在域名后面接/install才可以到安装界面

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安装完毕


访问站点

在这里插入图片描述

尝试注册一个账号

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1116581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R语言:主成分分析PCA

文章目录 主成分分析处理步骤数据集code 主成分分析 主成分分析&#xff08;或称主分量分析&#xff0c;principal component analysis&#xff09;由皮尔逊&#xff08;Pearson,1901&#xff09;首先引入&#xff0c;后来被霍特林&#xff08;Hotelling,1933&#xff09;发展…

xtrabackup恢复数据时提示“This target seems to be not preared yet.”

测试MySQL数据库备份文件可用性。 备份文件是腾讯云平台备份的MySQL。文件需要xtrabackup恢复。 执行到xtrabackup --prepare --target-dir./mysql时&#xff0c;没有像往常开始执行命令而是给出了一个简短提示。 “This target seems to be not preared yet.” 为了确认前面…

软件工程与计算总结(二十二)软件开发过程模型

&#xff08;自顶向下&#xff0c;逐层细化&#xff09; 目录 一.软件开发的典型阶段 1.需求工程 2.软件设计 3.软件构造 4.软件测试 5.软件交付 6.软件维护 二.软件生命周期模型 三.软件过程模型 四.构建-修复模型 五.瀑布模型 六.增量迭代模型 七.演化模型 八…

Leetcode 第 361 场周赛题解

Leetcode 第 361 场周赛题解 Leetcode 第 361 场周赛题解题目1&#xff1a;2843. 统计对称整数的数目思路代码复杂度分析 题目2&#xff1a;生成特殊数字的最少操作思路代码复杂度分析 题目3&#xff1a;统计趣味子数组的数目思路代码复杂度分析 题目4&#xff1a;边权重均等查…

Git简洁安装方式和使用方式【附安装包资源,Git基础操作,如拉取项目、上传代码、拉取代码】

软件安装包 项目版本管理软件 Git windows版本安装包 安装步骤 双击按照包之后&#xff0c;直接next 安装位置尽量不要选择C盘&#xff0c;如果只有C盘&#xff0c;可以尝试分盘&#xff0c;如果C盘已经很小了&#xff0c;那就没办法了 选择完安装位置之后&#xff0c;直…

网络编程:事件模型关于epoll 边缘触发与水平触发的理解

文章目录 EPOLL事件有两种模型&#xff1a;ET模式LT模式运行区别边缘触发的实际使用代码如下 EPOLL事件有两种模型&#xff1a; Edge Triggered (ET) 边缘触发只有数据到来才触发&#xff0c;不管缓存区中是否还有数据。 Level Triggered (LT) 水平触发只要有数据都会触发。 (…

【USRP】软件无线电基础篇:长波、中波、短波

一、频率和波长 类型频率波长长波30&#xff5e;300千赫&#xff08;KHz&#xff09;10&#xff5e;1千米中波300&#xff5e;3000千赫&#xff08;KHz&#xff09;10&#xff5e;1百米短波3&#xff5e;30兆赫&#xff08;MHz&#xff09;100&#xff5e;10米 二、传输距离 …

SystemVerilog Assertions应用指南 Chapter 11.5SVA检验器的时序窗口

11.5SVA检验器的时序窗口 到目前为止,带延迟的例子使用的都是固定的正延迟。在下面几个例子中,我们将讨论几种不同的描述延迟的方法属性p12检查布尔表达式“a&&b”在任何给定的时钟上升沿为真。如果表达式为真,那么在接下去的1-~3周期内,信号“c”应该至少在一个时钟周…

蓝桥杯每日一题2023.10.20

题目描述 等差数列 - 蓝桥云课 (lanqiao.cn) 知识点&#xff1a; 排序找出最大公约数则为公差 项数: n (第n项值-首项) / 公差 1。 n (an-a1) / d1 #include<bits/stdc.h> using namespace std; typedef long long ll; const int N 2e5 10; int a[N], n; int gcd…

高复杂度,斐波那契数列

n大的时候&#xff0c;值会很大

java中的容器(集合),HashMap底层原理,ArrayList、LinkedList、Vector区别,hashMap加载因子0.75原因

一、java中的容器 集合主要分为Collection和Map两大接口&#xff1b;Collection集合的子接口有List、Set&#xff1b;List集合的实现类有ArrayList底层是数组、LinkedList底层是双向非循环列表、Vector&#xff1b;Set集合的实现类有HashSet、TreeSet&#xff1b;Map集合的实现…

IoT 物联网共享充电桩场景中设备资产定位和地理围栏开发实践

基于经纬度的设备资产定位和地理围栏在物联网场景中应用广泛 01 物联网 GEO 场景架构方案 首先&#xff0c;IoT 终端设备通过卫星定位模块获取当前经纬度&#xff1b;然后&#xff0c;将坐标信息实时上报到物联网平台&#xff1b;最后&#xff0c;存储到 Redis GEO 数据库中。 …

Golang实现逻辑编排解释引擎

作者&#xff1a;井卓 文章简介&#xff1a; 逻辑编排提供一站式集成平台&#xff0c;简化了在集成接口、应用和服务时&#xff0c;所涉及的业务逻辑和流程。本文会介绍如何通过ChatGPT学习Golang、以及表达式解释器的实现和Golang解析引擎的基本设计架构。 Golang实现逻辑编…

openHarmony UI开发

常用组件和布局方式 组件 ArkUI有丰富的内置组件&#xff0c;包括文本、按钮、图片、进度条、输入框、单选框、多选框等。和布局一样&#xff0c;我们也可以将基础组件组合起来&#xff0c;形成自定义组件。 按钮&#xff1a; Button(Ok, { type: ButtonType.Normal, stateEf…

Git 安装和基础命令、IDEA 基础操作

目录 总结命令&#xff1a;1、安装&#xff1a;1、安装2、配置环境变量&#xff1a; 2、Git操作&#xff1a;1、初始化&#xff1a;1、姓名邮箱&#xff1a;2、初始化仓库&#xff1a;3、工作区和暂存区分析 2、提交文件3、查看版本库状态4、安装小乌龟git不显示图标 5、查看提…

Redis常用配置详解

目录 一、Redis查看当前配置命令二、Redis基本配置三、RDB全量持久化配置&#xff08;默认开启&#xff09;四、AOF增量持久化配置五、Redis key过期监听配置六、Redis内存淘汰策略七、总结 一、Redis查看当前配置命令 # Redis查看当前全部配置信息 127.0.0.1:6379> CONFIG…

微信小程序之会议OA首页数据交互,会议状态,会议人数转换,会议室交互,WXS的使用

前言&#xff1a; 本篇博客使用结合了SpringMVC&#xff0c;mybatis&#xff0c;maven&#xff0c;小程序&#xff0c;如果不熟悉使用可以翻看我之前的博客&#xff0c;以便大家可以更好的学习&#xff01;&#xff01;&#xff01; 一&#xff0c;会议OA首页数据的后台交互 这…

18、监测数据采集物联网应用开发步骤(12.3)

阶段性源码下载 监测数据采集物联网应用开发步骤(12.2) 前端web UI开发 demo 核心代码文件&#xff1a; web/index.html web/index.js web/js/common.js web/init.dlls Web/init.js 程序运行之后在浏览器敲入如下内容访问数据接口&#xff1a; http://localhost:9000…

五大经典智能算法实现机器人路径规划,包含简单路径与复杂路径,详细对比实验...

声明&#xff1a;对于作者的原创代码&#xff0c;禁止转售倒卖&#xff0c;违者必究&#xff01; 本期文章采用五大经典的智能优化算法&#xff0c;对机器人路径进行规划。 五大经典算法分别是&#xff1a;粒子群算法(PSO)&#xff0c;遗传算法(GA)&#xff0c;差分进化算法(DE…

马赫数相关函数

1 函数 k是常数&#xff0c;Ma是变量 2应用程序 点击上方资源下载 3 计算 3.1 c语言 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h>#define k 1.4 // k为常数// 定义的函数 double T(double Ma) {return pow((1 (k - 1) / 2 * Ma …