检测服务器环境,实现快速部署。适用于CRMEB_PRO/多店

运行效果如图:

241b4202311271112504772.png

最近被好多人问,本来运行的好好的,突然swoole就启动不了了。

本工具为爱发电,如果工具正好解决了您的需求。我会很开心

代码如下:

"""本脚本为爱发电by:网前雨刮器
"""
import subprocess
import redef check_php_environment():def check_php_version():try:output = subprocess.check_output(['php', '-v'], stderr=subprocess.STDOUT)result = output.decode('utf-8')php_version_str = result.split('\n')[0]php_version = php_version_str.lower().split(' ')[1]if php_version.startswith('7.'):major_version, minor_version, patch_version = map(int, php_version.split('.'))if 7 <= major_version <= 7 and 1 <= minor_version <= 4:print(f"\033[32mPHP版本通过 (当前版本:{php_version})\033[0m")else:print(f"\033[31mPHP版本不通过 (当前版本:{php_version})\033[0m")else:print(f"\033[31mPHP版本不通过 (当前版本:{php_version})\033[0m")except subprocess.CalledProcessError as e:return Nonedef check_php_extension(extension_name, expected_version=None):try:output = subprocess.check_output(['php', '-m'], stderr=subprocess.STDOUT)result = output.decode('utf-8')installed_extensions = result.split()if extension_name in installed_extensions:print(f"\033[32m{extension_name} 已安装\033[0m")if expected_version is not None:output = subprocess.check_output(['php', '--ri', extension_name], stderr=subprocess.STDOUT)result = output.decode('utf-8')match = re.search(r"Version => (.+)", result)if match:version = match.group(1).strip()print(f"\033[32m{extension_name} 版本号为 {version}\033[0m")if not re.match(expected_version.replace("*", r"\d+"), version):return None# print(f"报错:{extension_name} 扩展的版本号不满足要求")else:return None#print(f"无法获取 {extension_name} 扩展的版本信息")else:print(f"\033[31m{extension_name} 扩展未安装\033[0m")except subprocess.CalledProcessError as e:print(f"无法执行命令: {e.output}")def check_proc_open():try:output = subprocess.check_output(['php', '-i'], stderr=subprocess.STDOUT)result = output.decode('utf-8')if 'disable_functions' in result:disable_functions = result.split('disable_functions => ')[1].split(' =>')[0]if 'proc_open' in disable_functions:print("\033[31mproc_open 函数已被禁用\033[0m")else:print("\033[32mproc_open 函数未被禁用\033[0m")else:print("无法获取禁用函数列表")except subprocess.CalledProcessError as e:print(f"无法执行命令: {e.output}")def check_mysql_version():try:output = subprocess.check_output(['mysql', '-V'], stderr=subprocess.STDOUT)result = output.decode('utf-8')version_match = re.search(r"\d+\.\d+\.\d+", result)if version_match:mysql_version = version_match.group(0)if mysql_version.startswith('5.6.') or mysql_version.startswith('5.7.'):print(f"\033[32mMySQL 版本通过 (当前版本:{mysql_version})\033[0m")else:print(f"\033[31mMySQL 版本不通过 (当前版本:{mysql_version})\033[0m")else:print("\033[31m无法获取MySQL 版本号\033[0m")except subprocess.CalledProcessError as e:print(f"无法执行命令: {e.output}")def check_web_server():try:apache_process = subprocess.check_output(['ps', '-ef']).decode('utf-8')if 'apache2' in apache_process or 'httpd' in apache_process:print("\033[32m当前环境为 Apache  (建议使用Nginx)\033[0m")returnnginx_process = subprocess.check_output(['ps', '-ef']).decode('utf-8')if 'nginx' in nginx_process:print("\033[32m当前环境为 Nginx\033[0m")returnprint("\033[31m未检测到 Apache 或 Nginx 进程\033[0m")except subprocess.CalledProcessError as e:print(f"无法执行命令: {e.output}")print('')check_php_version()print('')check_proc_open()print('')check_php_extension('redis')print('')check_php_extension('fileinfo')print('')check_php_extension('swoole')print('')check_php_extension('swoole_loader', '3.0.\d+')print('')check_mysql_version()print('')check_web_server()print('')print('---------------------------------------------------------------------------------')print('')print("\033[33m注:请确定当前PHP命令行版本与你安装的PHP版本一致\033[0m")print("\033[33m注:如果你确定以上扩展已经安装并配置,请重启php、必要时重启服务器\033[0m")print("\033[33m本脚本为爱发电\033[0m")print("\033[33mby:网前雨刮器\033[0m")check_php_environment()

如果您不会使用python 不会配置python环境,可以使用我已经打包好的程序

使用方法如下:

将程序放在服务器下,直接“./文件名” 运行即可。

982b9202311271116187887.png

​​​​​​​ 

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

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

相关文章

四川汇昌联信:拼多多网点怎么开?大概需要多少钱?

想要开一家拼多多网点&#xff0c;你肯定很关心需要准备多少资金。下面&#xff0c;我们就来详细解答这个问题&#xff0c;并从多个角度分析开设网点的要点。 一、 开设拼多多网点&#xff0c;首要任务是确定启动资金。根据不同的经营模式和地区差异&#xff0c;成本会有所不同…

基于SpringBoot + Vue的兼职网站管理系统设计与实现+毕业论文+答辩PPT

系统介绍 本系统包含管理员、用户、企业三个角色。 管理员角色&#xff1a;前台首页、个人中心、用户管理、企业管理、兼职信息管理、职位申请管理、留言板管理、系统管理。 用户角色&#xff1a;前台首页、个人中心、职位申请管理。 企业角色&#xff1a;前台首页、个人中心、…

COMSOL粗略估算计算时间

COMSOL粗略估算模型计算时间 针对反复修改调试的有限元模型&#xff0c;需要大致估算有限元模型的计算时间。经查阅&#xff0c;模型求解的自由度数和求解时间密切相关。 测试条件 测试模型为声-固耦合模型&#xff0c;电脑内存32G&#xff0c;CPU-i7-10700K&#xff0c;核显…

【算法】滑动窗口——最小覆盖子串

本节博客是对“最小覆盖子串”题目由暴力求解到滑动窗口的思路解析&#xff0c;有需要借鉴即可。 目录 1.题目2.滑动窗口解法3.总结 1.题目 题目链接&#xff1a;LINK 这个题目是困难难度&#xff0c;感觉是一个中等题目的感觉。 首先我肯定想到的是暴力求解的方法&#xff…

STM32(GPIO)

GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口 引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V 输出模式下可控制端口输出高低电平&#xff0c;用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 输入模式下可读取端口的高低电…

Java特性之设计模式【享元模式】

一、享元模式 概述 享元模式&#xff08;Flyweight Pattern&#xff09;主要用于减少创建对象的数量&#xff0c;以减少内存占用和提高性能。这种类型的设计模式属于结构型模式&#xff0c;它提供了减少对象数量从而改善应用所需的对象结构的方式 享元模式尝试重用现有的同类对…

OS复习笔记ch5-4-2

引言 承接上文我们介绍了信号量机制和应用信号量机制实现的进程同步和互斥&#xff0c;这一节我们将围绕一些经典问题对信号量机制展开更深入地探讨。 读者/写者问题 读者/写者问题与我们之前遇到的问题类型不同&#xff0c;它描述的是&#xff1a; 有读者和写者两组进程&am…

C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现

标准库中的string&#xff1a;C初阶学习第六弹——string&#xff08;1&#xff09;——标准库中的string类-CSDN博客 前言&#xff1a; 在前面我们已经学习了如何使用标准库中的string类&#xff0c;但作为一个合格的程序员&#xff0c;我们不仅要会用&#xff0c;还要知道如…

网络库-libevent介绍

1.简介 libevent是一个事件驱动的网络库&#xff0c;主要用于构建可扩展的网络服务器。它提供了跨平台的API&#xff0c;支持多种事件通知机制&#xff0c;如select、poll、epoll、kqueue等。 主要组件 event: 表示一个具体的事件&#xff0c;包括事件类型、事件回调等。eve…

房屋出租管理系统需求分析及功能介绍

房屋租赁管理系统适用于写字楼、办公楼、厂区、园区、商城、公寓等商办商业不动产的租赁管理及租赁营销&#xff1b;提供资产管理&#xff0c;合同管理&#xff0c;租赁管理&#xff0c; 物业管理&#xff0c;门禁管理等一体化的运营管理平台&#xff0c;提高项目方管理运营效率…

如何查看centos7是否安装nginx

要查看 CentOS 7 系统上是否安装了 Nginx&#xff0c;您可以使用多种方法来检查。以下是一些常见的方法&#xff1a; 通过 RPM 包管理器查询 在 CentOS 系统上&#xff0c;可以使用 RPM 包管理器来查询已安装的软件包。要查看是否安装了 Nginx&#xff0c;您可以在终端中运行以…

【C++】学习笔记——继承_1

文章目录 十一、模板进阶5. 模板的优缺点 十二、继承1. 继承的概念及定义2. 基类和派生类对象赋值转换3. 继承中的作用域4. 派生类的默认成员函数 未完待续 十一、模板进阶 5. 模板的优缺点 优点&#xff1a; 模板复用了代码&#xff0c;节省资源&#xff0c;更快的迭代开发&a…

某银行软件测试笔试题,满分一百你能得多少分?

时间90分钟&#xff0c;满分100分&#xff09; 考试要求&#xff1a;计算机相关专业试题 一、填空题&#xff08;每空1分&#xff0c;共10分&#xff09; 1. ______验证___是保证软件正确实现特定功能的一系列活动和过程。 2. 按开发阶段分&#xff0c;软件测试可分为&#x…

SSIM(Structural Similarity),结构相似性及MATLAB实现

参考文献 Wang, Zhou; Bovik, A.C.; Sheikh, H.R.; Simoncelli, E.P. (2004-04-01). “Image quality assessment: from error visibility to structural similarity”. IEEE Transactions on Image Processing. 13 (4): 600–612. Bibcode:2004ITIP…13…600W. CiteSeerX 10.…

YOLO数据集制作(二)|json文件转txt验证

以下教程用于验证转成YOLO使用的txt格式&#xff0c;适用场景&#xff1a;矩形框&#xff0c;配合json格式文件转成YOLO使用的txt格式脚本使用。 https://blog.csdn.net/StopAndGoyyy/article/details/138681454 使用方式&#xff1a;将img_path和label_path分别填入对应的图…

Android Studio开发之路(九)创建android library以及生成aar文件

一、需求 我做了一个camerax相机opencv图像处理图片上传服务器功能的android应用&#xff0c;应客户需求要将其改成一个SDK&#xff0c;由客户加到他们自己的app里边。 于是&#xff0c;我需要制作一个library&#xff0c;打包成aar文件&#xff08;jar:只有代码&#xff0c;没…

YOLOv5改进 | 注意力机制 | 用于移动端的高效坐标CA注意力机制

在深度学习目标检测领域&#xff0c;YOLOv5成为了备受关注的模型之一。本文给大家带来的是能用于移动端的高效坐标CA注意力机制。文章在介绍主要的原理后&#xff0c;将手把手教学如何进行模块的代码添加和修改&#xff0c;并将修改后的完整代码放在文章的最后&#xff0c;方便…

打破地域界限,HubSpot海外获客系统引领企业走向国际化

在全球化的浪潮中&#xff0c;企业如何精准把握海外市场、高效获取并转化目标客户&#xff0c;已成为决定其市场地位与未来发展的关键因素。HubSpot海外获客系统以其独特的视角、强大的功能和卓越的性能&#xff0c;正在引领全球营销进入一个新的时代。今天运营坛将深入剖析Hub…

交易复盘-20240513

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 双成药业 (1)|[9:30]|[3566万]|0.34 中通客车 (1)|[9:43]|[7678万]|0.15 嘉华股份 (2)|[9:30]|[36…

基于Springboot的大学生平时成绩量化管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的大学生平时成绩量化管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三…