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

如何在Apache上部署非静态SvelteKit应用且无需反向代理到NodeJS

可行方案说明

你可以使用 svelte-adapter-apache 实现直接部署,该适配器会将SvelteKit应用的服务端逻辑编译为Apache可直接执行的CGI/FCGI程序,完全不需要单独运行Node.js服务,也无需配置路径拆分的反向代理规则,符合你的需求。

具体操作步骤

  • 安装适配依赖
    在项目根目录执行安装命令:
    npm install --save-dev svelte-adapter-apache

  • 修改SvelteKit配置
    编辑项目根目录的 svelte.config.js 文件,替换适配器配置:

import { vitePreprocess } from '@sveltejs/kit/vite';
import adapter from 'svelte-adapter-apache';

const config = {
  preprocess: vitePreprocess(),
  kit: {
    adapter: adapter({
      // 可选:开启后将使用PHP作为CGI wrapper,无需额外启用Apache的mod_cgi模块
      usePhp: false,
      // 可选:自定义编译输出目录,默认值为build
      out: 'build'
    })
  }
};

export default config;
  • 编译项目
    执行构建命令生成可部署文件:
    npm run build

构建完成后,build 目录下的所有文件即为可直接部署到Apache的资源包,适配器会自动生成适配路由的 .htaccess 规则。

  • 部署到Apache
    首先确认Apache环境满足对应要求:
    • 若配置中 usePhp = false:需提前启用 mod_cgi 或 mod_fcgid 模块,且站点目录开放CGI执行权限
    • 若配置中 usePhp = true:仅需环境支持PHP运行即可
      将 build 目录下的所有文件上传到Apache的站点根目录,直接访问站点域名即可正常使用,无需额外的反向代理配置。

常见注意事项

  • 若应用存在执行时间较长的服务端逻辑(如大文件处理、复杂数据库查询等),需提前调整Apache的CGI执行超时、内存限制等参数,避免逻辑被强制中断
  • 部分共享虚拟主机会默认关闭CGI执行权限,部署前可先确认主机商的权限规则
  • 若应用需要自定义HTTP响应头,可直接在站点目录的 .htaccess 文件中添加对应配置即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:06:04