Laravel部署到Plesk服务器后smalot/pdfparser类找不到的解决方法
解决Plesk服务器上Laravel项目中Smalot/PdfParser类找不到的问题
1. 重新在服务器上安装依赖
不要直接复制本地的vendor目录,必须在Plesk服务器上重新执行composer安装:
- 登录Plesk终端或通过SSH连接服务器,进入Laravel项目根目录
- 运行命令:
其中composer install --no-dev --optimize-autoloader--no-dev确保只安装生产环境依赖,--optimize-autoloader生成优化的自动加载文件,避免类路径解析错误。
2. 检查composer自动加载配置
确认项目根目录的composer.json中,autoload部分包含正确的PSR-4映射:
"autoload": { "psr-4": { "App\\": "app/", "Smalot\\PdfParser\\": "vendor/smalot/pdfparser/src/Smalot/PdfParser/" } },
如果缺少该映射,添加后运行composer dump-autoload --optimize更新自动加载缓存。
3. 修正类调用路径
报错中出现的src\Smalot\PdfParser\Parser是错误路径,确保控制器中的调用使用正确的完全限定类名:
// 正确调用方式 $parser = new \Smalot\PdfParser\Parser();
4. 调整文件权限
- 确保
vendor目录及其子目录权限设置正确(通常目录为755,文件为644) - 避免用root用户执行composer命令,使用Plesk分配的网站用户运行安装,防止权限冲突。
5. 清理Laravel缓存
如果旧的类缓存导致路径残留,运行以下命令清理:
php artisan cache:clear php artisan config:clear php artisan optimize:clear
内容的提问来源于stack exchange,提问作者Aniket Kannaujiya
相关产品推荐
相关产品推荐

