1Panel运行时环境:PHP/Node.js/Java/Python/Go支持详解

1Panel运行时环境:PHP/Node.js/Java/Python/Go支持详解

【免费下载链接】1Panel 项目地址: https://gitcode.com/GitHub_Trending/1p/1Panel

在现代Web开发中,一个高效的服务器管理面板需要支持多种编程语言的运行时环境。1Panel作为一款功能全面的服务器管理工具,提供了对PHP、Node.js、Java、Python和Go等主流编程语言的完整支持。本文将详细介绍1Panel如何配置和管理这些运行时环境,帮助开发人员快速搭建适合自己项目的开发和生产环境。

运行时环境概览

1Panel的运行时环境管理模块位于frontend/src/views/website/runtime/目录下,提供了统一的界面来管理各种编程语言的运行环境。通过左侧导航菜单的"运行环境"选项,用户可以快速切换到不同语言的管理页面。

支持的编程语言

1Panel目前支持以下编程语言的运行时环境:

  • PHP
  • Node.js
  • Java
  • Python
  • Go
  • .NET

这些运行时环境的配置和管理功能在core/constant/common.go文件中定义,对应的路由路径如下:

"/websites/runtimes/php": {}, "/websites/runtimes/node": {}, "/websites/runtimes/java": {}, "/websites/runtimes/go": {}, "/websites/runtimes/python": {}, "/websites/runtimes/dotnet": {}, 

PHP运行时环境

PHP作为Web开发的主流语言之一,1Panel对其提供了全面的支持。PHP运行时环境的管理界面位于frontend/src/views/website/runtime/php/index.vue

PHP版本管理

1Panel支持多版本PHP的安装和切换,用户可以根据项目需求选择合适的PHP版本。PHP运行时的核心配置在agent/app/api/v2/runtime.go中实现,提供了创建、删除、更新和查询PHP运行环境的API接口。

PHP扩展管理

1Panel提供了便捷的PHP扩展管理功能,用户可以通过界面一键安装、启用、禁用和卸载PHP扩展。相关功能在agent/app/api/v2/php_extensions.go中实现,主要API包括:

// @Router /runtimes/php/extensions/search [post] // @Router /runtimes/php/extensions [post] // @Router /runtimes/php/extensions/update [post] // @Router /runtimes/php/extensions/del [post] 

PHP配置管理

用户可以通过1Panel修改PHP的配置文件,包括php.ini和php-fpm.conf。相关功能在agent/app/api/v2/runtime.go中实现,提供了获取和更新PHP配置的API接口:

// @Summary Load php runtime conf // @Router /runtimes/php/config/:id [get] // @Summary Update runtime php conf // @Router /runtimes/php/config [post] 

Node.js运行时环境

Node.js作为构建高性能网络应用的JavaScript运行时,在1Panel中也得到了完善的支持。Node.js运行时环境的管理界面位于frontend/src/views/website/runtime/node/index.vue

Node.js版本管理

1Panel支持多个Node.js版本的并行安装和切换,用户可以根据项目需求选择合适的Node.js版本。Node.js运行时的管理功能在agent/app/api/v2/runtime.go中实现。

NPM包管理

1Panel提供了对Node.js项目依赖包的管理功能,用户可以通过界面安装、更新和卸载NPM包。相关功能在agent/app/api/v2/runtime.go中实现,提供了以下API接口:

// @Router /runtimes/node/modules [post] // @Router /runtimes/node/modules/operate [post] // @Router /runtimes/node/package [post] 

Node.js项目部署

对于Node.js项目,1Panel提供了便捷的部署功能。用户只需指定项目目录和启动脚本,1Panel即可自动配置并启动Node.js应用。相关配置界面在frontend/src/views/website/runtime/dir/index.vue中实现,支持代码目录选择和启动脚本配置:

<el-form-item :label="$t('runtime.codeDir')" prop="codeDir"> <el-input v-model.trim="runtime.codeDir" :disabled="mode === 'edit'" @blur="changeDir"> <template #append> <file-ref ref="fileRef" @select="selectDir" @click="fileRef.acceptParams({ path: runtime.codeDir, dir: true, disabled: mode === 'edit' })" :disabled="mode === 'edit'"> <el-button type="primary" size="small" :icon="FolderOpen"></el-button> </file-ref> </template> </el-input> </el-form-item> <el-form-item :label="$t('runtime.runScript')" prop="params.EXEC_SCRIPT"> <el-select v-model="runtime.params['EXEC_SCRIPT']" v-if="runtime.params['CUSTOM_SCRIPT'] == '0'"> <el-option v-for="item in scripts" :key="item.name" :label="item.name" :value="item.name"> </el-option> </el-select> <el-input v-else v-model="runtime.params['EXEC_SCRIPT']"></el-input> <span v-if="runtime.params['CUSTOM_SCRIPT'] == '0'"> {{ $t('runtime.runScriptHelper') }} </span> </el-form-item> 

Java运行时环境

Java作为企业级应用开发的首选语言,1Panel提供了对Java运行时环境的完整支持。Java运行时环境的管理界面位于frontend/src/views/website/runtime/java/index.vue

JDK版本管理

1Panel支持多个JDK版本的安装和切换,用户可以根据项目需求选择合适的JDK版本。Java运行时的管理功能在agent/app/api/v2/runtime.go中实现。

Java应用部署

对于Java应用,1Panel提供了灵活的部署选项,支持WAR包部署和JAR包部署。相关配置界面在frontend/src/views/website/runtime/java/operate/index.vue中实现,提供了代码目录、启动脚本、环境变量和容器挂载等配置选项:

<el-form ref="runtimeForm" :model="runtime" :rules="rules" size="default" label-width="120px"> <el-form-item :label="$t('common.name')" prop="name"> <el-input :disabled="mode === 'edit'" v-model="runtime.name"></el-input> </el-form-item> <AppConfig v-model="runtime" :mode="mode" appKey="java" /> <DirConfig v-model="runtime" :mode="mode" :dirHelper="$t('runtime.javaDirHelper')" :scriptHelper="$t('runtime.javaScriptHelper')" /> <el-form-item :label="$t('runtime.containerName')" prop="params.CONTAINER_NAME"> <el-input v-model.trim="runtime.params['CONTAINER_NAME']"></el-input> </el-form-item> <el-form-item :label="$t('common.remark')" prop="remark"> <el-input type="textarea" :rows="1" clearable v-model="runtime.remark" /> </el-form-item> <el-divider /> <el-form-item> <PortConfig v-model="runtime" :mode="mode" /> </el-form-item> <el-tabs v-model="activeName" type="card"> <el-tab-pane :label="$t('runtime.environment')"> <Environment :environments="runtime.environments" /> </el-tab-pane> <el-tab-pane :label="$t('container.mount')"><Volumes :volumes="runtime.volumes" /></el-tab-pane> </el-tabs> </el-form> 

Spring Boot应用支持

1Panel对Spring Boot应用提供了特别优化,用户可以直接部署Spring Boot的JAR包,1Panel会自动配置合适的启动参数。

Python运行时环境

Python作为一门多用途编程语言,在数据分析、人工智能和Web开发等领域都有广泛应用。1Panel提供了对Python运行时环境的全面支持,管理界面位于frontend/src/views/website/runtime/python/index.vue

Python版本管理

1Panel支持多个Python版本的安装和切换,用户可以根据项目需求选择合适的Python版本。Python运行时的管理功能在agent/app/api/v2/runtime.go中实现。

Python虚拟环境

为了隔离不同项目的依赖,1Panel支持Python虚拟环境的创建和管理。用户可以为每个Python项目创建独立的虚拟环境,避免依赖冲突。

Pip包管理

1Panel提供了对Python项目依赖包的管理功能,用户可以通过界面安装、更新和卸载Pip包。相关功能在agent/app/api/v2/runtime.go中实现。

Go运行时环境

Go语言以其高效的性能和简洁的语法,在云原生应用开发中越来越受欢迎。1Panel提供了对Go运行时环境的支持,管理界面位于frontend/src/views/website/runtime/go/index.vue

Go版本管理

1Panel支持多个Go版本的安装和切换,用户可以根据项目需求选择合适的Go版本。Go运行时的管理功能在agent/app/api/v2/runtime.go中实现。

Go模块管理

1Panel提供了对Go模块的管理功能,用户可以通过界面管理Go项目的依赖。相关功能在agent/app/api/v2/runtime.go中实现。

Go应用部署

对于Go应用,1Panel支持源码编译和二进制部署两种方式。用户可以选择直接部署编译好的二进制文件,或者让1Panel自动编译Go源码并部署。

运行时环境的通用功能

除了各种编程语言特有的功能外,1Panel还提供了一些通用的运行时环境管理功能。

运行状态监控

1Panel提供了对所有运行时环境的状态监控功能,用户可以通过界面实时查看应用的运行状态、CPU使用率、内存占用等信息。相关功能在agent/app/api/v2/runtime.go中实现:

// @Summary Sync runtime status // @Router /runtimes/sync [post] 

容器化部署

1Panel采用容器化技术部署所有运行时环境,确保环境的隔离性和一致性。用户可以通过界面查看和管理运行时环境对应的容器:

// @Router /runtimes/php/container/:id [get] // @Router /runtimes/php/container/update [post] 

日志管理

1Panel提供了对运行时环境日志的集中管理功能,用户可以通过界面查看和下载应用日志。相关功能在frontend/src/views/log/operation/index.vue中实现:

<el-select v-model="searchForm.resourceType" size="small" clearable> <el-option :label="$t('logs.detail.runtimes')" value="runtimes" /> <!-- 其他选项 --> </el-select> 

总结

1Panel提供了对PHP、Node.js、Java、Python和Go等主流编程语言运行时环境的全面支持。通过直观的Web界面,用户可以轻松配置和管理各种编程语言的运行环境,极大地简化了服务器环境的搭建和维护工作。

无论是开发人员还是运维人员,都可以通过1Panel快速部署和管理各种类型的应用,提高工作效率。随着1Panel的不断发展,未来还将支持更多的编程语言和功能,为用户提供更加全面的服务器管理体验。

如果你在使用1Panel的过程中遇到任何问题,可以查阅官方文档docs/README.zh-Hans.md或在社区寻求帮助。

【免费下载链接】1Panel 项目地址: https://gitcode.com/GitHub_Trending/1p/1Panel

Read more

Python字节码逆向工具pycdc:从.pyc文件恢复源代码的完整指南

Python字节码逆向工具pycdc:从.pyc文件恢复源代码的完整指南 【免费下载链接】pycdcC++ python bytecode disassembler and decompiler 项目地址: https://gitcode.com/GitHub_Trending/py/pycdc 当开发人员面对只有.pyc字节码文件而丢失源代码的困境时,pycdc作为一款C++开发的专业逆向工具,能够有效将Python字节码还原为可读源代码。这款工具支持从Python 1.0到3.13的全版本字节码解析,为代码恢复、安全审计和学习研究提供可靠解决方案。 为什么需要字节码逆向工具? 在软件开发过程中,经常会遇到源代码丢失但保留编译后.pyc文件的情况。无论是团队协作中的文件管理疏漏,还是接手 legacy 项目时的文档缺失,都可能导致开发者面对无法修改的二进制字节码束手无策。pycdc通过精准解析字节码结构,能够重建出接近原始状态的Python代码,为开发者节省大量重写成本。 对于安全研究人员而言,分析第三方库的.pyc文件可以揭示潜在的安全风险;而对于Python学习者,观

By Ne0inhk
基于python-django的台球厅管理收费系统

基于python-django的台球厅管理收费系统

目录 * 系统概述 * 核心功能模块 * 技术实现 * 应用价值 * 开发技术路线 * 结论 * 源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 系统概述 基于Python-Django框架的台球厅管理收费系统旨在实现台球厅的自动化运营管理,涵盖会员管理、订单结算、场地预约、设备维护及数据统计等功能。系统采用B/S架构,通过Web界面提供用户友好的操作体验,后端利用Django的ORM高效处理数据。 核心功能模块 会员管理 支持会员注册、登录、积分累计及消费记录查询。通过Django内置认证系统实现权限控制,会员信息加密存储确保数据安全。 收费与订单管理 集成计时计费模块,根据时段和台球桌类型动态生成费用。支持微信/支付宝支付接口对接,订单数据实时同步至数据库,提供日/周/月营收报表。 场地预约与调度 采用可视化日历组件展示台球桌状态,用户可在线预约或调整时间。后台自动冲突检测,避免重复预订。 设备维护管理 记录球杆、台球桌等设备的维护历史,设置定期检修提醒。故障报修功能允许员工快速提交问题并跟踪处理进度。

By Ne0inhk
通用智能系统神经底座:Python+ROS2 全链路闭环实战

通用智能系统神经底座:Python+ROS2 全链路闭环实战

告别玩具Demo:Python+ROS2工业级通信框架|可直接上项目、可直接做毕设、打造通用智能系统的“神经底座”   适用场景:机器人底层开发 | AGV 集群通信 | 具身智能状态同步 | 毕业设计核心模块 核心:提供一套可稳定运行、具备异常容错、可直接二次扩展的工业级通信框架。  一、为什么你需要这套工业级框架? 目前网上绝大多数 ROS2 教程,只教你怎么跑通一个简单 Demo,却很少告诉你如何让系统真正跑稳、跑可靠。 普通教程常见问题: 无 QoS 配置,网络抖动就容易丢包 无异常保护,一个节点出错就导致整个系统崩溃 目录结构不规范,无法用于真实项目与二次开发   本文提供的工业级通信框架,从底层解决以上问题:   高可靠传输,适应复杂现场环境 异常熔断保护,单点故障不影响整体运行 标准工程结构,可直接对接项目、毕设、核心引擎上层系统   这是构建通用智能系统最关键的底层通信底座。 二、环境基准与工程初始化   2.1

By Ne0inhk
rsl_rl——人形运控部署框架汇总:从经典RL框架rsl_rl到宇树开源的unitree_rl_gym(含unitree_sdk2_python)

rsl_rl——人形运控部署框架汇总:从经典RL框架rsl_rl到宇树开源的unitree_rl_gym(含unitree_sdk2_python)

前言 现在人形运控基本都避不开RL了,而对于人形运控本身的部署则是一个完整的工程,而作为经典RL框架rsl_rl,则在本博客里的多篇文章反复被提及,比如 1. 比如Humanplus一文中提到 对于humanplus的整个代码框架,总计包含以下五个部分 Humanoid Shadowing Transformer (HST),此所谓low-level,属于机器人小脑 这个部分的代码是基于仿真的强化学习实现,使用了legged_gym和rsl_rl .. ———— 顺带,该文『详见此文《斯坦福人形HumanPlus的代码解读与复现关键:从HST(含rsl_rl)到HIT、HardWare》』,曾分析过rsl_rl中对PPO的实现 既然本文专门解读rsl_rl,故可以把那部分中对rsl_rl的介绍 也综合到本文之中了 2. 比如NaVILA一文中提到 第二部分 NaVILA/legged-loco中isaaclab_exts/模块的解析:侧重H1人形机器人配置 整体代码库主要分为以下几个部分: isaa

By Ne0inhk