XAMPP配置多端口运行Vue打包后的项目

来源:Python编程网作者:孙悟空头衔:草根站长
导读:本期聚焦于孙悟空创作的《XAMPP配置多端口运行Vue打包后的项目》,敬请观看详情。在本地部署前端项目时,通常会遇到需要同时运行多个独立应用的情况。XAMPP作为常用的集成环境,默认仅提供单一端口访问,这给多项目并行测试带来了阻碍。本文将详细讲解如何通过修改Apache配置文件实现多端口监听,并将Vue打包后的静态文件正确映射到不同端口。内容涵盖httpd.conf核心参数调整、虚拟主机规则编写、目录权限控制等关键步骤,同时提供跨域访问和路由刷新404问题的解决方案。通过实际配置示例演示如何让不同端口对应不同项目目录,帮助开发者快速搭建本地多项目测试环境。

在本地开发环境中,经常需要同时运行多个前端项目进行联调测试。XAMPP作为一款集成了Apache、MySQL和PHP的本地开发环境工具,默认配置下通常只监听80端口。当我们将Vue项目打包后,如果希望多个项目能同时通过不同端口访问,就需要对XAMPP的Apache配置进行调整。本文将以实际操作为例,详细讲解如何让XAMPP支持多端口运行不同的Vue打包项目。

XAMPP配置多端口运行Vue打包后的项目

一、修改Apache主配置文件开启多端口监听

要让XAMPP支持多端口访问,首先需要让Apache监听我们指定的端口号。XAMPP的配置文件通常位于安装目录下的apache\conf文件夹中,我们需要找到httpd.conf文件进行修改。默认情况下,Apache只配置了Listen 80这一行,表示监听80端口。我们可以根据需要添加更多端口,比如8081、8082等。

打开httpd.conf文件后,搜索Listen关键字,你会看到类似Listen 80的配置。在这个配置下方,我们可以添加新的端口监听指令。需要注意的是,如果服务器绑定了特定IP,也可以写成Listen 127.0.0.1:8081的形式,这样更加安全,只允许本机访问该端口。添加完端口后,保存文件并重启Apache服务,此时这些端口就已经处于监听状态了。

# httpd.conf 配置示例
Listen 80
Listen 8081
Listen 8082
Listen 8083

修改完成后,建议通过XAMPP控制面板重启Apache服务。如果端口被其他程序占用,Apache将无法启动,此时需要检查系统端口占用情况。在Windows系统中可以通过netstat -ano | findstr :8081命令查看指定端口是否被占用,如果被占用则需要更换端口号或者结束占用该端口的进程。

二、配置虚拟主机映射不同项目目录

仅仅让Apache监听端口是不够的,我们还需要告诉Apache当某个端口收到请求时,应该去哪个目录读取文件。这就需要配置虚拟主机。XAMPP的虚拟主机配置通常在extra/httpd-vhosts.conf文件中,该文件同样位于apache\conf目录下。在修改虚拟主机配置前,需要确保httpd.conf中已经加载了vhosts模块,搜索httpd-vhosts.conf,去掉前面的注释符号即可。

在httpd-vhosts.conf文件中,我们可以为每个端口添加一个VirtualHost配置块。每个配置块需要指定端口号、服务器名称、文档根目录等信息。对于Vue打包后的项目,文档根目录应该指向打包生成的dist文件夹。这里有一个关键点需要注意:Vue项目打包后通常使用history路由模式,这会导致刷新页面时出现404错误,因此需要在虚拟主机配置中添加URL重写规则。

# httpd-vhosts.conf 配置示例
<VirtualHost *:8081>
    ServerName localhost
    DocumentRoot "C:/xampp/htdocs/vue-project-1/dist"
    <Directory "C:/xampp/htdocs/vue-project-1/dist">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        # Vue Router history模式重写规则
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.html$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.html [L]
    </Directory>
</VirtualHost>

<VirtualHost *:8082>
    ServerName localhost
    DocumentRoot "C:/xampp/htdocs/vue-project-2/dist"
    <Directory "C:/xampp/htdocs/vue-project-2/dist">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.html$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.html [L]
    </Directory>
</VirtualHost>

在上面的配置中,我们为8081和8082端口分别指定了不同的文档根目录。每个目录配置块中都启用了AllowOverride All,这允许项目目录下的.htaccess文件覆盖服务器配置。同时添加了RewriteEngine规则,将所有非文件和非目录的请求重写到index.html,这样Vue Router的history模式就能正常工作了。配置完成后,同样需要重启Apache服务使配置生效。

三、解决跨域请求与资源路径问题

当多个Vue项目运行在不同端口时,浏览器会认为它们属于不同的源,这就可能引发跨域问题。如果项目A需要调用项目B的接口,就需要在项目B的Apache配置中添加跨域响应头。可以在对应的Directory配置块中添加Header set Access-Control-Allow-Origin指令,允许特定来源的跨域请求。需要注意的是,生产环境中应该严格限制允许的来源,不要使用通配符星号。

另一个常见问题是资源路径错误。Vue项目打包时默认使用绝对路径,如果部署在非根目录下,可能会导致CSS和JS文件加载失败。解决这个问题的方法是在打包前修改vue.config.js文件中的publicPath配置。如果项目直接部署在端口根目录下,可以设置为斜杠;如果部署在子目录下,则需要设置为对应的子路径。修改完成后重新打包项目,再部署到XAMPP中即可正常访问。

// vue.config.js 配置示例
module.exports = {
  // 部署在端口根目录下使用 '/'
  publicPath: '/',
  // 或者部署在子目录下使用对应路径
  // publicPath: '/my-app/',
  devServer: {
    port: 8080,
    proxy: {
      '/api': {
        target: 'http://localhost:8081',
        changeOrigin: true
      }
    }
  }
}

除了上述配置外,还需要注意XAMPP的防火墙设置。如果在局域网内需要让其他设备访问这些端口,需要在Windows防火墙中添加入站规则,允许Apache程序通过指定端口通信。同时,如果项目使用了HTTPS,还需要配置SSL证书和监听443端口的变体端口。通过以上步骤的完整配置,我们就能在XAMPP中实现多端口运行不同的Vue打包项目,极大提升本地开发和测试的效率。在实际操作过程中,建议每修改一个配置就重启一次Apache并测试,这样更容易定位问题所在。

XAMPP多端口配置Vue项目部署Apache虚拟主机修改时间:2026-08-20 17:26:53

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。