LinuxShell编程2——shell搭建Discuzz论坛网站
目录
一、环境准备
①准备一台虚拟机
②初始化虚拟机
1、关闭防火墙
2、关闭selinux
3、配置yum源
4、修改主机名
二、搭建LAMP环境
①安装httpd(阿帕奇apache)服务器
查看是否安装过httpd
启动httpd
设置开机启动
查看状态
安装网络工具
测试
②安装mysql5.7
下载mysql安装包
使用MobaXterm软件将mysql5.7的包上传到服务器
安装mysql
启动mysql
查看mysql的临时密码
编辑
登录mysql改密码
创建discuz数据库用于存储discuz的数据
③安装php
下载
查看yum仓库
启用php80的yum源
安装php80
启动php
测试
注意要重启apache
④部署discuz论坛
下载安装包
上传软件包
解压安装包
拷贝discuz相关的文件到/var/www/html/
重启apache服务
打开网页安装论坛
什么是LAMP ?
LAMP是一个架构的组合
LAMP=Linux+Apache+Mysql+PHP
LNMP=Linux+Nginx+Mysql+php
Apache:是世界使用排名第一的Web服务器软件
php:一种专门用于Web开发的编程语言
Mysql:关系型数据库的管理系统,用于存储结构化的数据
一、环境准备
①准备一台虚拟机
192.168.50.166
②初始化虚拟机
1、关闭防火墙
2、关闭selinux
进里面修改SELINUX=disabled
3、配置yum源
配置阿里云的centos源和 epel源
#curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
# yum clean all
# yum makecache fast
4、修改主机名
# hostnamectl set-hostname discuz
二、搭建LAMP环境
AMP的关系
①安装httpd(阿帕奇apache)服务器
查看是否安装过httpd
# rpm -qa |grep httpd
# yum -y install httpd
启动httpd
# systemctl start httpd
设置开机启动
# systemctl enable httpd
查看状态
# systemctl status httpd
安装网络工具
# yum -y install net-tools
# netstat -tunlp |grep 80
测试
# echo "welecome to Apache" > /var/www/html/index.html
# systemctl restart httpd
# curl 192.168.50.166(自己的IP地址)
②安装mysql5.7
下载mysql安装包
使用MobaXterm软件将mysql5.7的包上传到服务器
(需要mysql安装包和MobaXterm软件压缩包的小伙伴们可call我,发你们哇!😄)
安装mysql
安装mysql的rpm包它是有依赖关系的,所以安装是有先后顺序的
过虑你的服务器是否有Mysql
# rpm -qa |grep mysql
# rpm -qa |grep mariadb
# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
# rpm -qa |grep mariadb
必须按照以下顺序安装,它们有依赖关系
# rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm
# rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm
# rpm -ivh mysql-community-libs-compat-5.7.40-1.el7.x86_64.rpm
# rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm
# rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm
启动mysql
# systemctl start mysqld
# systemctl status mysqld
# netstat -tunlp |grep 3306
查看mysql的临时密码
# grep 'temporary password' /var/log/mysqld.log
登录mysql改密码
# mysql -uroot -p'G0Ea,VzsT_4D'
-u是指用户登录
-p是指定密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
刷新权限
mysql> flush privileges;
mysql> exit
创建discuz数据库用于存储discuz的数据
# mysql -uroot -p'MyNewPass4!'
mysql> create database discuz;
mysql> exit
③安装php
PHP: Hypertext Preprocessor
- 配置php的yum源
- 安装php
- 启动php
- 测试
配置阿里云的remi源
阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
下载
# wget https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
# rpm -ivh remi-release-7.rpm
# yum -y install epel-release
# rpm -ivh remi-release-7.rpm
查看yum仓库
# ls /etc/yum.repos.d/
# yum clean all
# yum makecache fast
启用php80的yum源
# yum -y install yum-utils
# yum-config-manager --enable remi-php80
安装php80
# yum -y install php80 php80-php php80-php-xml php80-php-xmlrpc php80-php-pecl-mcrypt php80-php-fpm php80-php-pecl-apcu php80-php-mbstring php80-php-gd php80-php-json php80-php-pecl-json-post php80-php-pdo php80-php-mysqlnd php80-php-pecl-mysql php80-php-opcache php80-php-pear php80-php-soap php80-php-intl php80-php-pear php-pear-MDB2-Driver-mysqli.noarch
启动php
# systemctl start php80-php-fpm
# systemctl status php80-php-fpm
# systemctl enable php80-php-fpm
测试
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# ll /var/www/html/
注意要重启apache
# systemctl restart httpd
http://192.168.50.166/info.php
④部署discuz论坛
- 下载安装包
- 上传包到服务器
- 解压安装包
- 拷贝discuz相关的文件到/var/www/html/
- 重启apache
- 打开网页安装论坛
下载安装包
Discuz! 官方交流社区 - 贰道网络 - Discuz应用中心社区 - 提供模板、插件、技术支持等全方位服务 - Powered by Discuz!
上传软件包
解压安装包
# mkdir discuz
# unzip Discuz_X3.5_SC_UTF8_20231221.zip -d discuz/
# yum -y install unzip
# unzip Discuz_X3.5_SC_UTF8_20240520.zip -d discuz/
# ls discuz/
upload 这个目录下面的所有文件是我们需要上传到服务器上的可用程序文件(仅上传目录里边的文件);
readme 目录为产品介绍、授权、安装、升级、转换以及版本更新日志说明(不要上传);
readme.html 为安装、升级教程(不要上传)。
utility.html 为论坛附带工具下载地址,比如升级程序(不要上传)。
拷贝discuz相关的文件到/var/www/html/
# cp -r discuz/upload/* /var/www/html/
# ll /var/www/html/
重启apache服务
# systemctl restart httpd
访问论坛 http://192.168.50.166/install/
原因是/var/www/html的文件没有写权限
修改/var/www/html/下的主件的权限777
# chmod -R 777 /var/www/html/
# ll /var/www/html/
如果出现下图的报错是因为没有安装mysqli这个模块 php-pear-MDB2-Driver-mysqli.noarch
安装了就不会出现上图的不支持,下面我们进行下一步
打开网页安装论坛
点开页面会发现会有个小bug,因为我们访问是直接输入的IP地址,然后其默认访问路径就是 ip地址/index.html,所以我们需要删除此文件。
至此我们的discuz论坛就搭建完成
相关文章:

LinuxShell编程2——shell搭建Discuzz论坛网站
目录 一、环境准备 ①准备一台虚拟机 ②初始化虚拟机 1、关闭防火墙 2、关闭selinux 3、配置yum源 4、修改主机名 二、搭建LAMP环境 ①安装httpd(阿帕奇apache)服务器 查看是否安装过httpd 启动httpd 设置开机启动 查看状态 安装网络工具 测试 ②安装…...

.NET MAUI开源架构_1.学习资源分享
最近需要开发Android的App,想预研下使用.NET开源架构.NET MAUI来开发App程序。因此网上搜索了下相关资料,现在把我查询的结果记录下,方便后面学习。 1.官方文档 1.1MAUI官方学习网站 .NET Multi-Platform App UI 文档 - .NET MAUI | Micro…...
Unsloth 微调 Llama 3
本文参考: https://colab.research.google.com/drive/135ced7oHytdxu3N2DNe1Z0kqjyYIkDXp 改编自:https://blog.csdn.net/qq_38628046/article/details/138906504 文章目录 一、项目说明安装相关依赖下载模型和数据 二、训练1、加载 model、tokenizer2、…...
热修复的原理
热修复的原理 水一篇哈,完事儿后删掉热修复的原理 水一篇哈,完事儿后删掉 热修复的原理 Java虚拟机 —— JVM 是加载类的class文件的,而Android虚拟机——Dalvik/ART VM 是加载类的dex文件,而他们加载类的时候都需要ClassLoader,…...

【对顶堆 优先队列】2102. 序列顺序查询
本文涉及知识点 对顶堆 优先队列 LeetCode 2102. 序列顺序查询 一个观光景点由它的名字 name 和景点评分 score 组成,其中 name 是所有观光景点中 唯一 的字符串,score 是一个整数。景点按照最好到最坏排序。景点评分 越高 ,这个景点越好。…...
Go 语言中的互斥锁 Mutex
Mutex 是一种互斥锁,名称来自 mutual exclusion,是一种用于控制多线程对共享资源的竞争访问的同步机制。在有的编程语言中,也将其称为锁(lock)。当一个线程获取互斥锁时,它将阻止其他线程对该资源的访问,直到该线程释放锁。这可以防止多个线程对共享资源进行冲突访问,从而…...

CSS 中的 ::before 和 ::after 伪元素
目录 一、CSS 伪元素 二、::before ::after 介绍 1、::before 2、::after 3、content 常用属性值 三、::before ::after 应用场景 1、设置统一字符 2、通过背景添加图片 3、添加装饰线 4、右侧展开箭头 5、对话框小三角 6、插入icon图标 一、CSS 伪元素 CSS伪元…...

JuiceFS缓存特性
缓存 对于一个由对象存储和数据库组合驱动的文件系统,缓存是本地客户端与远端服务之间高效交互的重要纽带。读写的数据可以提前或者异步载入缓存,再由客户端在后台与远端服务交互执行异步上传或预取数据。相比直接与远端服务交互,采用缓存技…...

R语言实现SVM算法——分类与回归
### 11.6 基于支持向量机进行类别预测 ### # 构建数据子集 X <- iris[iris$Species! virginica,2:3] # 自变量:Sepal.Width, Petal.Length y <- iris[iris$Species ! virginica,Species] # 因变量 plot(X,col y,pch as.numeric(y)15,cex 1.5) # 绘制散点图…...
React@16.x(57)Redux@4.x(6)- 实现 bindActionCreators
目录 1,分析1,直接传入函数2,传入对象 2,实现 1,分析 一般情况下,action 并不是一个写死的对象,而是通过函数来获取。 而 bindActionCreators 的作用:为了更方便的使用创建 action…...

【深度学习入门篇 ⑦】PyTorch池化层
【🍊易编橙:一个帮助编程小伙伴少走弯路的终身成长社群🍊】 大家好,我是小森( ﹡ˆoˆ﹡ ) ! 易编橙终身成长社群创始团队嘉宾,橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官…...

【Pytorch】数据集的加载和处理(一)
Pytorch torchvision 包提供了很多常用数据集 数据按照用途一般分为三组:训练(train)、验证(validation)和测试(test)。使用训练数据集来训练模型,使用验证数据集跟踪模型在训练期间…...

论文翻译:Explainability for Large Language Models: A Survey
https://arxiv.org/pdf/2309.01029 目录 可解释性在大型语言模型中:一项调查摘要1 引言2 LLMs的训练范式2.1 传统微调范式2.2 提示范式 3 传统微调范式的解释3.1 局部解释3.1.1 基于特征归因的解释3.1.2 基于注意力的解释3.1.3 基于示例的解释 3.2 全局解释3.2.1 基…...
38 IRF+链路聚合+ACL+NAT组网架构
38 IRF+链路聚合+ACL+NAT组网架构 参考文献 34 IRF的实例-CSDN博客 35 解决单条链路故障问题-华三链路聚合-CSDN博客 36 最经典的ACL控制-CSDN博客 37 公私网转换技术-NAT基础-CSDN博客 32 华三vlan案例+STP-CSDN博客 一 网络架构...
【昇思学习打卡营打卡-第二十八天】MindNLP ChatGLM-6B StreamChat
MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 安装mindnlp pip install mindnlp安装mdtex2html pip install mdtex2html配置网络线路 export HF_ENDPOINThttps://hf-mirror.com代码开发 下载权重大约需要10分钟 from mindnlp.transf…...
前端打包部署后源码安全问题总结
随着现代Web应用越来越依赖于客户端技术,前端安全问题也随之突显。源码泄露是一个严重的安全问题,它不仅暴露了应用的内部逻辑和业务关键信息,还可能导致更广泛的安全风险。本文将详细介绍源码泄露的潜在风险,并提供一系列策略和工…...
扩展你的App:Xcode中App Extensions的深度指南
扩展你的App:Xcode中App Extensions的深度指南 在iOS开发的世界中,App Extensions提供了一种强大的方式,允许你的应用程序与系统和其他应用更紧密地集成。从今天起,我们将探索Xcode中App Extensions的神秘领域,学习如…...

【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(下)
当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 ✔️ 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL1.2.4 CSS1.2.5 JavaScript1.2.6 Node 与 JavaScript 框架1.2.7 Observable 记事…...
Solus Linux简介
以下是学习笔记,具体详实的内容请参考官网:Home | Solus Solus Linux 是一个独立的 Linux 发行版,它以其现代的设计、优化的性能和友好的用户体验而著称。以下是一些关于 Solus Linux 的最新动向和特点: 1. **最新版本发布**&a…...
常见的排序算法,复杂度
稳定 / 非稳定排序:两个相等的数 排序前后 相对位置不变。插入排序(希尔排序): 每一趟将一个待排序记录,按其关键字的大小插入到已排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。稳定&…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...