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

Heroku部署PHP+PHPMailer应用报错:找不到vendor\autoload.php

问题解决:Heroku部署PHP应用后无法加载vendor/autoload.php

核心原因

你本地使用Windows/MAMP环境,路径分隔符用的是反斜杠\,但Heroku运行在Linux系统上,仅识别正斜杠/。代码里的require(vendor\autoload.php)在Linux环境下会被解析成单个文件名,而非vendor目录下的autoload.php文件,因此出现找不到文件的错误。

解决方案

1. 修正路径分隔符

将email.php第11行的代码修改为:

require 'vendor/autoload.php';

如果要兼顾跨平台兼容性(本地和Heroku都能正常运行),可以用更严谨的写法:

require __DIR__ . '/vendor/autoload.php';

__DIR__会获取当前脚本所在的绝对目录路径,避免相对路径带来的定位问题。

2. 确认依赖安装状态(可选)

从你的Heroku构建日志可以看到,Composer已经成功安装PHPMailer并生成了优化的autoload文件,vendor目录确实存在,只需修正路径引用即可。修改代码后重新部署即可恢复邮件功能。

额外提示

  • 跨平台开发时,优先使用正斜杠作为路径分隔符,PHP在Windows和Linux环境下都能识别。
  • 不手动上传vendor目录的做法是正确的,Heroku会通过Composer自动处理依赖安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:25:31