前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于使用 box-project/box 打包项目为 phar 后遇到的 crc32 mismatch on file… 的问题以及解决方案

关于使用 box-project/box 打包项目为 phar 后遇到的 crc32 mismatch on file… 的问题以及解决方案

作者头像
iVampireSP.com
发布2023-10-21 10:32:06
2170
发布2023-10-21 10:32:06
举报
文章被收录于专栏:iVampireSPの物语

之前在弄 Laravel Zero + Gateway Worker 的。Laravel Zero 有个开箱即用的打包单文件运行功能。

但是遇到以下错误。

代码语言:javascript
复制
ErrorException: include(phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/composer/../workerman/workerman/Connection/AsyncTcpConnection.php): Failed to open stream: phar error: internal corruption of phar "/Users/ivampiresp/Projects/forbiddenforest/builds/application" (crc32 mismatch on file "vendor/workerman/workerman/Connection/AsyncTcpConnection.php") in phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/.box/vendor/composer/ClassLoader.php:571
Stack trace:
#0 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/laravel-zero/foundation/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(254): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'include(phar://...', 'phar:///Users/i...', 571)
#1 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/.box/vendor/composer/ClassLoader.php(571): Illuminate\Foundation\Bootstrap\HandleExceptions->Illuminate\Foundation\Bootstrap\{closure}(2, 'include(phar://...', 'phar:///Users/i...', 571)
#2 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/.box/vendor/composer/ClassLoader.php(571): include('phar:///Users/i...')
#3 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/.box/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('phar:///Users/i...')
#4 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/workerman/gateway-worker/src/BusinessWorker.php(278): Composer\Autoload\ClassLoader->loadClass('Workerman\\Conne...')
#5 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/workerman/gateway-worker/src/BusinessWorker.php(205): GatewayWorker\BusinessWorker->connectToRegister()
#6 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/workerman/workerman/Worker.php(2488): GatewayWorker\BusinessWorker->onWorkerStart(Object(GatewayWorker\BusinessWorker))
#7 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/workerman/gateway-worker/src/BusinessWorker.php(184): Workerman\Worker->run()
#8 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/workerman/workerman/Worker.php(1627): GatewayWorker\BusinessWorker->run()
#9 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/workerman/workerman/Worker.php(1423): Workerman\Worker::forkOneWorkerForLinux(Object(GatewayWorker\BusinessWorker))
#10 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/workerman/workerman/Worker.php(1397): Workerman\Worker::forkWorkersForLinux()
#11 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/workerman/workerman/Worker.php(560): Workerman\Worker::forkWorkers()
#12 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/app/Commands/WorkerCommand.php(58): Workerman\Worker::runAll()
#13 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/app/Commands/WorkerCommand.php(43): App\Commands\WorkerCommand->startBusinessWorker()
#14 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/illuminate/container/BoundMethod.php(36): App\Commands\WorkerCommand->handle()
#15 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/illuminate/container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#16 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/illuminate/container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#17 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/illuminate/container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod(Object(LaravelZero\Framework\Application), Array, Object(Closure))
#18 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/illuminate/container/Container.php(662): Illuminate\Container\BoundMethod::call(Object(LaravelZero\Framework\Application), Array, Array, NULL)
#19 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/illuminate/console/Command.php(208): Illuminate\Container\Container->call(Array)
#20 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/symfony/console/Command/Command.php(312): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#21 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/illuminate/console/Command.php(177): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#22 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/symfony/console/Application.php(1040): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/symfony/console/Application.php(314): Symfony\Component\Console\Application->doRunCommand(Object(App\Commands\WorkerCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/symfony/console/Application.php(168): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/laravel-zero/foundation/src/Illuminate/Foundation/Console/Kernel.php(200): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/vendor/laravel-zero/framework/src/Kernel.php(96): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 phar:///Users/ivampiresp/Projects/forbiddenforest/builds/application/application(34): LaravelZero\Framework\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 /Users/ivampiresp/Projects/forbiddenforest/builds/application(14): require('phar:///Users/i...')
#29 {main}
worker[BusinessWorker:22648] exit with status 64000
^CWorkerman[application] stopping ...
Workerman[application] has been stopped

定位到错误是 crc32 mismatch on file。 现在发现错误了,让我们开始解决错误吧。

不过,依靠搜索引擎,我发现了个在 SMProxy 下的 Issue

解决方案

我们只需要到 box.json 中,将 compression 的值改成 NONE 即可。

现在再次打包并运行 Workerman,成功。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-5-26 2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档