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

JDK 17 安装与配置指南(图文详解)

JDK 17 安装与配置指南(图文详解)

1. 开篇简介——长期支持与现代化Java开发 1.1 为什么选择JDK 17         JDK 17(Java Development Kit 17)是Oracle在2021年9月发布的长期支持版本(LTS, Long-Term Support),这意味着它将获得至少8年的官方维护与安全更新,直到2029年甚至更久。对于企业级应用和开发者来说,LTS版本意味着更高的稳定性、安全性和长期可维护性,使其成为生产环境的理想选择。         相较于非LTS版本(如JDK 18、19等),JDK 17不仅提供了关键的安全补丁和性能优化,还引入了许多现代化语言特性和API增强,帮助开发者编写更简洁、更高效的代码。         目前SpringBoot的最低支持版本是jdk17 1.2 适用人群 * Java初学者:JDK 17 提供了更直观、更现代化的语法,降低了学习门槛。 * 需要升级环境的开发者:从JDK 8/11迁移?JDK 17 是当前最稳定、最先进的LTS版本。

JDK21的下载与安装(2025.8.2)

目录 * 一、JDK21的下载 * 二、JDK21的安装与环境变量的配置 一、JDK21的下载 通过下面链接进入Oracle官方的Java网站。 Java 软件 | Oracle 中国https://www.oracle.com/cn/java/点击下载Java。 点击JDK21,然后选择Windows。 可以看到,在Prodcut/file description下有:x64 Compressed Archive、x64 Installer、x64 MSI Installer,下面介绍下它们的区别: x64 Compressed Archive:免安装版本,通常是一个压缩包,需要手动配置环境变量来完成jdk的安装。  x64 Installer:可执行的安装程序,在安装过程中一般会自动配置环境变量。  x64 MSI Installer:基于Windows Installer技术的安装包,可通过命令行进行安装、卸载和配置,

数据结构-7.Java. 对象的比较

数据结构-7.Java. 对象的比较

本篇博客给大家带来的是java对象的比较的知识点, 其中包括 用户自定义类型比较, PriorityQueue的比较方式, 三种比较方法...... 文章专栏: Java-数据结构 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 1. PriorityQueue中插入对象 上篇文章我们介绍了优先级队列,优先级队列在插入元素时有个要求:插入的元素不能是null或者元素之间必须要能够 进行比较,为了简单起见,我们只是插入了Integer类型,那优先级队列中能否插入自定义类型对象呢? class Card { public int rank; // 数值 public String suit; // 花色 public Card(int rank, String suit) { this.rank = rank; this.suit = suit; } } public class TestPriorityQueue

Java集成PaddlePaddle OCR:让文字识别变得如此简单

还在为Java项目中需要文字识别功能而烦恼吗?传统方案要么依赖复杂的Python环境,要么调用云端API存在延迟和安全风险。现在,通过SmartJavaAI项目,你可以轻松实现Java环境下的离线OCR识别,无需任何Python依赖! 【免费下载链接】SmartJavaAIJava免费离线AI算法工具箱,支持人脸识别(人脸检测,人脸特征提取,人脸比对,人脸库查询,人脸属性检测:年龄、性别、眼睛状态、口罩、姿态,活体检测)、目标检测(支持 YOLO,resnet50,VGG16等模型)等功能,致力于为开发者提供开箱即用的 AI 能力,无需 Python 环境,Maven 引用即可使用。目前已集成 RetinaFace、SeetaFace6、YOLOv8 等主流模型。 项目地址: https://gitcode.com/geekwenjie/SmartJavaAI 技术解密:PaddlePaddle与Java的完美融合 SmartJavaAI采用DJL(Deep