You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在cPanel或CyberPanel上运行Kotlin Spring Boot应用?

在cPanel部署Kotlin Spring Boot应用及PostgreSQL方案

一、cPanel部署步骤及难度

先明确:主流cPanel主机基本都支持PostgreSQL,不用纠结这个,先把数据库搞定:

  • 登录cPanel,找到PostgreSQL Databases或PostgreSQL Database Wizard,按引导创建数据库、数据库用户,给用户分配目标数据库的全部权限,记下数据库名、用户名、密码、本地连接地址(一般是localhost,端口默认5432)。

部署Spring Boot应用的两种方式

方式1:打包成WAR包用Tomcat部署

如果你的应用适合WAR包部署(比如需要和其他Web应用共享Tomcat):

  1. 修改项目的build.gradle.kts,添加war插件,同时让主类继承SpringBootServletInitializer:
    plugins {
        id("org.springframework.boot") version "3.2.0"
        id("io.spring.dependency-management") version "1.1.4"
        kotlin("jvm") version "1.9.20"
        kotlin("plugin.spring") version "1.9.20"
        war // 启用WAR包插件
    }
    
    // 主类调整
    class YourAppApplication : SpringBootServletInitializer() {
        override fun configure(builder: SpringApplicationBuilder): SpringApplicationBuilder {
            return builder.sources(YourAppApplication::class.java)
        }
    
        companion object {
            @JvmStatic
            fun main(args: Array<String>) {
                runApplication<YourAppApplication>(*args)
            }
        }
    }
    
  2. 执行./gradlew war生成WAR包,通过cPanel的File Manager上传到Tomcat的webapps目录(一般在/usr/local/tomcat/webapps/,如果找不到可以通过cPanel的Tomcat Manager入口上传)。
  3. Tomcat会自动解压部署,访问路径一般是你的域名/包名(比如yourdomain.com/yourapp)。

方式2:打包成可执行JAR包用Passenger部署

Passenger是cPanel现在常用的应用托管模块,支持直接运行JAR包,更方便:

  1. 执行./gradlew bootJar生成可执行JAR包。
  2. 在cPanel的File Manager里,进入你的域名根目录(比如public_html),创建一个子目录(比如api),把JAR包上传进去。
  3. 在该目录下创建一个启动脚本start.sh,内容如下(替换成你的JAR包名和端口,端口选8080-9000之间的非特权端口):
    #!/bin/bash
    java -jar your-app.jar --server.port=8081
    
  4. 给脚本加执行权限:chmod +x start.sh(如果cPanel的File Manager支持权限修改,直接勾选执行权限即可)。
  5. 找到cPanel的Passenger模块,设置刚才创建的api目录为应用根目录,指定启动命令为./start.sh。
  6. 最后用cPanel的Proxy Manager,把你的域名路径(比如yourdomain.com/api)反向代理到http://localhost:8081,这样就能通过域名访问了。

难度评估

cPanel部署难度中等,只要主机预装了PostgreSQL和Passenger,跟着步骤走就能搞定。如果主机没开Passenger,联系主机商开启就行;要是连SSH权限都没有,可能只能用WAR包+Tomcat的方式。整体比无面板部署省心,不用记太多Linux命令。

二、无面板Linux服务器部署方案

如果cPanel的限制让你难受(比如不能自定义JDK版本、端口受限),直接上无面板Linux更灵活:

步骤概览

  1. 环境配置:
    • 安装对应版本的OpenJDK(比如Kotlin 1.9推荐OpenJDK 17):sudo apt install openjdk-17-jdk(Ubuntu)或sudo dnf install java-17-openjdk(CentOS)。
    • 安装PostgreSQL:sudo apt install postgresql postgresql-contrib,然后创建数据库、用户,配置权限(用psql命令操作,和cPanel逻辑一致)。
    • 安装Nginx做反向代理:sudo apt install nginx。
  2. 部署应用:
    • 用scp或SFTP把JAR包传到服务器的某个目录(比如/opt/yourapp/)。
    • 创建systemd服务文件/etc/systemd/system/yourapp.service,让应用后台运行并开机自启:
      [Unit]
      Description=Kotlin Spring Boot API Service
      After=postgresql.target network.target
      
      [Service]
      User=ubuntu
      WorkingDirectory=/opt/yourapp/
      ExecStart=/usr/bin/java -jar your-app.jar --spring.profiles.active=prod
      Restart=always
      RestartSec=5
      
      [Install]
      WantedBy=multi-user.target
      
    • 启动服务并设置开机自启:
      sudo systemctl daemon-reload
      sudo systemctl start yourapp
      sudo systemctl enable yourapp
      
  3. 配置Nginx反向代理:
    • 创建Nginx配置文件/etc/nginx/sites-available/yourapp.conf:
      server {
          listen 80;
          server_name yourdomain.com;
      
          location / {
              proxy_pass http://localhost:8080;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
      }
      
    • 启用配置并重启Nginx:
      sudo ln -s /etc/nginx/sites-available/yourapp.conf /etc/nginx/sites-enabled/
      sudo nginx -t
      sudo systemctl restart nginx
      
  4. 配置SSL(可选):用Certbot申请免费SSL证书,让应用通过HTTPS访问。

难度评估

无面板部署难度稍高,需要掌握基础Linux命令、systemd服务配置、Nginx反向代理的知识,但胜在完全可控,想怎么配置就怎么配置,适合需要自定义优化的场景。

三、方案选择建议

  • 如果你用的是带cPanel的主机,且主机支持PostgreSQL和Passenger,优先选cPanel,可视化操作多,不用折腾太多命令,节省时间。
  • 如果cPanel限制太多(比如不能开特定端口、Passenger未启用),或者你需要灵活调整环境(比如自定义PostgreSQL参数、升级JDK),直接用无面板Linux服务器更合适。
  • CyberPanel确实官方不支持PostgreSQL,直接排除即可。

内容的提问来源于stack exchange,提问作者propeace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:45:10