Lamp和友点CMS一键部署脚本(Rocky linux)

先上传youdiancms9.3.0.zip包,可以去官网下载

#!/bin/bash
#function:install apache mysql php for youdiancms9.3.0ip=$(hostname -I | awk '{print $1}')
yh=youdian
password=youdian@123#检查是否为root用户 
if [ "$USER" != "root" ]; thenecho "错误:非root用户,权限不足!"exit 0
fi#关闭防火墙和SElinux
systemctl stop firewalld && systemctl disable firewalld && echo "防火墙已经关闭"
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config && setenforce 0 && echo "关闭selinux"
sleep 5#安装Apache
dnf install -y httpd
if [ $? = 0 ]; thenecho "Apache服务安装成功"
elseecho "Apache服务安装失败,10秒后退出"sleep 10exit 0
fi
sleep 5#启动并设置开机自启
systemctl start httpd
systemctl enable httpd#启用EPEL和CRB源
dnf install -y epel-release
dnf config-manager --set-enabled crb#安装Remi源以获取PHP 7.4
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf module reset php -y
dnf module enable php:remi-7.4 -y#安装PHP及友点CMS所需扩展
dnf install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-curl php-opcache php-json php-pdo php-zip php-bcmath php-intl php-pecl-redis php-mcrypt php-pecl-memcached
if [ $? = 0 ]; thenecho "安装PHP及常用扩展完成"
elseecho "安装PHP及常用扩展失败,5秒后退出"sleep 5exit 0
fi
sleep 5#配置PHP-FPM使用TCP端口
if [ -f /etc/php-fpm.d/www.conf ]; then# 确保PHP-FPM使用TCP端口并设置正确的权限sed -i 's|listen = /run/php-fpm/www.sock|listen = 127.0.0.1:9000|g' /etc/php-fpm.d/www.confsed -i 's|listen.owner = apache|;listen.owner = apache|g' /etc/php-fpm.d/www.confsed -i 's|listen.group = apache|;listen.group = apache|g' /etc/php-fpm.d/www.confsed -i 's|listen.mode = 0660|;listen.mode = 0660|g' /etc/php-fpm.d/www.conf# 如果没有找到listen配置行,则添加它if ! grep -q "listen = 127.0.0.1:9000" /etc/php-fpm.d/www.conf; thensed -i '/\[www\]/a listen = 127.0.0.1:9000' /etc/php-fpm.d/www.conffi# 确保php-fpm以apache用户运行sed -i 's|user = apache|user = apache|g' /etc/php-fpm.d/www.confsed -i 's|group = apache|group = apache|g' /etc/php-fpm.d/www.conf
fi# 配置Apache使用TCP端口连接PHP-FPM
cat > /etc/httpd/conf.d/php.conf << EOF
<FilesMatch "\.php$">SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
EOF#PHP配置文件调整
sed -i 's/default_charset = .*/default_charset = "UTF-8"/g'  /etc/php.ini
sed -i 's/mbstring.internal_encoding = .*/mbstring.internal_encoding = "UTF-8"/g'  /etc/php.ini
sed -i 's/mbstring.http_output = .*/mbstring.http_output = "UTF-8"/g'  /etc/php.ini#启动PHP-FPM
systemctl start php-fpm
systemctl enable php-fpm#重启Apache使PHP生效
systemctl restart httpd#安装MariaDB
dnf install -y mariadb-server mariadb
if [ $? = 0 ]; thenecho "MariaDB安装成功"
elseecho "MariaDB安装失败,10秒后退出"sleep 10exit 0
fi
sleep 5#启动并设置开机自启
systemctl start mariadb
systemctl enable mariadb#设置MySQL root密码
read -ep "设置root密码:" mm
mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$mm';"
#mysql -u root -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$mm');"   #适用于旧MariaDB版本
mysql -u root -p"$mm" -e "DELETE FROM mysql.user WHERE User='';"
mysql -u root -p"$mm" -e "DROP DATABASE IF EXISTS test;"
mysql -u root -p"$mm" -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -u root -p"$mm" -e "FLUSH PRIVILEGES;"#登录MySQL创建新用户并授权
mysql -u root -p"$mm" -e "CREATE DATABASE $yh CHARACTER SET utf8mb4;"
mysql -u root -p"$mm" -e "CREATE USER '$yh'@'%' IDENTIFIED BY '$password';"
mysql -u root -p"$mm" -e "GRANT ALL PRIVILEGES ON $yh.* TO '$yh'@'%';"
mysql -u root -p"$mm" -e "FLUSH PRIVILEGES;"#解压友点CMS包
rm -rf /var/www/html/*
unzip ./youdiancms9.3.0.zip -d /var/www/html/ && rm -rf youdiancms9.3.0.zip
if [ $? = 0 ]; thenecho "解压成功,安装完成!"echo "通过如下地址访问友点CMS  http://$ip/Install/index.php 数据库默认已创建用户$yh,密码为$password "
elseecho "解压失败,请先上传youdiancms9.3.0.zip到当前目录,10秒后退出"sleep 10exit 0
fi
chown -R apache:apache /var/www/html/
chmod -R 777 /var/www/html/
sed -i 's/^/#/' /etc/httpd/conf.d/welcome.conf
sed -i 's@    DirectoryIndex.*@    DirectoryIndex index.php index.html@g' /etc/httpd/conf/httpd.conf
systemctl restart httpd php-fpm mariadb

 运行后如图

游览器访问,输入数据库用户名和密码

安装成功后

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

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

相关文章

Arm架构下麒麟V10桌面版安装MySQL

Arm架构下麒麟V10桌面版安装MySQL 文章目录 Arm架构下麒麟V10桌面版安装MySQL基础环境下载安装包安装步骤**一、准备工作****二、解压并配置 MySQL****三、初始化 MySQL****四、启动 MySQL 服务****五、设置环境变量****六、配置 MySQL****七、验证安装****常见问题****总结** …

Science Advances:皮肤附着触觉贴片,实现多功能和增强的触觉交互

可穿戴触觉界面可以通过向皮肤添加触觉刺激以及传递给用户的视觉和听觉信息来增强虚拟/增强现实系统中的沉浸式体验。研究人员介绍了一种平锥介电弹性体致动器&#xff08;FCDEA&#xff09;阵列&#xff0c;该阵列薄而柔软&#xff0c;能够响应大面积皮肤上的电压信号产生时空…

Ntfs!LfsGetLbcb函数分析之nt!CcPreparePinWrite

Ntfs!LfsGetLbcb函数分析之nt!CcPreparePinWrite 第一部分&#xff1a; 1: kd> p Ntfs!LfsPrepareLfcbForLogRecord0x78: f7179d72 e891210000 call Ntfs!LfsGetLbcb (f717bf08) 1: kd> t Ntfs!LfsGetLbcb: f717bf08 6a40 push 40h 1: kd> kc …

面试150 整数转罗马数字

思路 建立数字和字符的字典映射表&#xff0c;遍历映射表做差&#xff0c;将字符添加到结果中&#xff0c;当差为0的时候&#xff0c;break退出循环。返回最后的结果output class Solution:def intToRoman(self, num: int) -> str:if num<1:return num_to_map[(1000,M)…

大模型推理-高通qnn基础

一、高通ai 软件的介绍 QualcommAI Engine Direct SDK(qnn) 提供较低级别、高度可定制的统一API&#xff0c;通过单独的库加速所有AI加速器核心上的AI模型, 可以直接用于针对特定的加速器核心或从流行的运行时&#xff08;包括Qualcomm Neural Processing SDK、TensorFlow Li…

UE5 - 制作《塞尔达传说》中林克的技能 - 14 - 技能面板

让我们继续《塞尔达传说》中林克技能的制作&#xff01;&#xff01;&#xff01; UE版本&#xff1a;5.6.0 VS版本&#xff1a;2022 本章节的核心目标&#xff1a;技能面板 先让我们看一下完成后的效果&#xff1a; 第14章效果 本章节项目链接&#xff1a; 通过网盘分享的文件…

用Tensorflow进行线性回归和逻辑回归(八)

新的TensorFlow概念 创建简单的机器学习系统需要学习一些新的概念。 优化器 上两节介绍的元素已经提示了TensorFlow是如何完成机器学习的。你已学习了如何用张量操作来定义损失函数。缺少的是你不知道如何用TensorFlow进行梯度下降。尽管可以用TensorFlow元素直接用 Python定…

基于python代码的通过爬虫方式实现TK下载视频(2025年6月)

Tk的视频页面通常需要登录才能获取完整数据,但通过构造匿名游客的请求,我们可以绕过登录限制,提取视频的元信息(如标题、ID和播放地址)。核心思路如下: 构造匿名Cookie:通过模拟浏览器的请求,获取Tk服务器分配的游客Cookie。解析网页:利用BeautifulSoup解析HTML,定位…

火山 RTC 引擎14 设置CB

一、火山RTC引擎集成时,设置CB 1、统一设置 void NRTCEngine::SetByteRtcCBS() {UserPublishStreamCallback callback = [this](const std::string& roomId, const std::string& uid, bytertc::MediaStreamType type) {this->OnSigUserPublishStream(roomId, uid, …

BUUCTF在线评测-练习场-WebCTF习题[极客大挑战 2019]PHP1-flag获取、解析

解题思路 打开靶场&#xff0c;提示备份 常见的备份后缀名有.bak&#xff0c;.backup&#xff0c;.zip等等 这里肯定是要扫目录了&#xff0c;不知道是我的问题还是目录扫描工具的问题还是BUUCTF的问题&#xff0c;每次要扫目录能扫出一堆东西来&#xff0c;不管你用什么后缀…

对话云蝠智能:大模型如何让企业呼叫系统从 “成本中心” 变身 “价值枢纽”?

在人工智能重塑企业服务的浪潮中&#xff0c;云蝠智能&#xff08;南京星蝠科技有限公司旗下品牌&#xff09;以深厚的技术积累和行业实践&#xff0c;逐步成长为国内智能外呼领域的标杆企业。其发展路径揭示了技术自主创新与场景深度结合的必然性。 一、技术架构&#xff1a;全…

Python-文件管理

1. Open方法 Python 中的文件操作主要通过内置的 open() 函数来完成&#xff0c;该函数用于打开文件&#xff0c;并返回一个文件对象。通过文件对象&#xff0c;可以进行各种文件操作&#xff0c;如读取、写入、关闭等。 使用 open() 方法一定要保证关闭文件对象&#xff0c;即…

高速DIC技术之推进剂样品在霍普金森杆的高速冲击下的变形监测与不同材质头盔在不同冲击位置下的变形测试-VIC-3D HS非接触全场动态应变测量系统

工程领域对材料与结构在极端动态载荷下复杂变形行为的测量有强烈的需求&#xff0c;且这种测量必须是精确、全域、非接触式的&#xff0c;高速DIC技术应运而生并不断得到发展。 常见动态应用包括&#xff08;但不限于&#xff09;&#xff1a;碰撞测试、爆炸试验、冲击试验、跌…

微算法科技融合Grover算法与统一哈希函数的混合经典-量子算法技术,可在多领域高效提升文本处理效率

随着数据规模的不断扩大&#xff0c;尤其是在大数据和人工智能驱动的应用中&#xff0c;这些经典算法的线性复杂度逐渐成为瓶颈。面对数十亿级别的文本数据&#xff0c;线性时间的算法仍然难以满足实时性的要求。此外&#xff0c;经典算法在处理无序或随机文本时&#xff0c;性…

Spring Boot Security Core

依赖配置&#xff08;Maven&#xff09; xml 复制 下载 运行 <!-- Spring Security Core --> <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>6.2.5<…

【赵渝强老师】OceanBase云平台OCP

OCP的全称是OceanBase Cloud Platform&#xff0c;即&#xff1a;OceanBase云平台。OCP面向有OceanBase管理需求的中小型用户&#xff0c;提供了基础的主机管理、OceanBase 集群和租户运维等能力。在OCP中主要包含两个组成部分&#xff0c;它们分别是&#xff1a;MetaDB和OCP S…

快速定位Swagger文档请求地址‘/v2/api-docs‘,发生未知异常.NullPointerException:精准定位+根治方案

问题现场&#xff1a;访问 http://localhost:8080/v2/api-docs 时日志报错&#xff1a; 请求地址/v2/api-docs,发生未知异常. java.lang.NullPointerException: nullat springfox.documentation.swagger2.mappers.RequestParameterMapper.bodyParameter(RequestParameterMappe…

图像处理解决方案

证件照小工具微信小程序系统是基于微擎开源生态开发的多功能图像处理平台&#xff0c;专为用户提供便捷的证件照制作及图片编辑服务。微擎系统作为一款基于 PHP 开发的开源应用生态系统&#xff0c;具备快速搭建多端应用的能力&#xff0c;其模块化架构与跨平台兼容性为证件照工…

Qt联合Halcon开发四:【详细图解】海康相机配置并链接测试

1. 下载与安装海康 MVS SDK 首先&#xff0c;访问海康机器人官网的下载中心&#xff0c;选择 “Machine Vision” 模块下的 MVS 软件包。 1. 打开浏览器&#xff0c;进入&#xff1a;https://www.hikrobotics.com/cn/ 2. 下载最新版的 MVS 安装包&#xff08;通常以 MVS_x.x.…

vue3打包后,图片丢失

前言&#xff1a; 在 webpack 中使用 require() 来引入静态图片&#xff0c;但在 vite 中就不行。 代码实现 <template><div><img :src"empty"></div> </template><script setup> // 引入本地图片(注意改成您的路径) import em…