没有不值得去解决的问题,也没有不值得去学习的技术!

PHP message PHP Fatal error require() Failed opening required ‘mcloudwwwcmcp-apivendorcomposer..myclabsdeep-copysrcDeepCopydeep_copy.php’ 的分析解决

查看 Nginx 的错误日志:PHP message: PHP Fatal error: require(): Failed opening required '/mcloud/www/cmcp-api/vendor/composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php'。

1、查看 Nginx 的错误日志:PHP message: PHP Fatal error: require(): Failed opening required ‘/mcloud/www/cmcp-api/vendor/composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php’。如图1

查看 Nginx 的错误日志:PHP message: PHP Fatal error:  require(): Failed opening required '/mcloud/www/cmcp-api/vendor/composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php'。
图1

2、查看 Gitlab 上的文件,发现目录:/vendor/composer/../myclabs/deep-copy 为空目录。如图2

查看 Gitlab 上的文件,发现目录:/vendor/composer/../myclabs/deep-copy 为空目录。
图2

3、删除 \vendor\myclabs\deep-copy\.git 目录。如图3

删除 \vendor\myclabs\deep-copy\.git 目录。
图3

4、选择相应的文件,添加。如图4

选择相应的文件,添加。
图4

5、提交。如图5

提交。
图5

6、全部 – 提交 – 推送。如图6

全部 - 提交 - 推送。
图6

7、查看 Gitlab 上的文件,发现目录:/vendor/composer/../myclabs/deep-copy 下已经存在相应的文件。如图7

查看 Gitlab 上的文件,发现目录:/vendor/composer/../myclabs/deep-copy 下已经存在相应的文件。
图7

8、构建镜像时报错:Step 4/7 : COPY code /mcloud/www/cmcp-api。Error processing tar file(exit status 1): open /vendor/myclabs/deep-copy/fixtures/f005/Foo.php: no such file or directory。如图8

构建镜像时报错:Step 4/7 : COPY code /mcloud/www/cmcp-api。Error processing tar file(exit status 1): open /vendor/myclabs/deep-copy/fixtures/f005/Foo.php: no such file or directory。
图8

9、查看 Gitlab 上的文件,发现文件:/vendor/myclabs/deep-copy/fixtures/f005/Foo.php 是存在的。如图9

查看 Gitlab 上的文件,发现文件:/vendor/myclabs/deep-copy/fixtures/f005/Foo.php 是存在的。
图9

10、再次构建,构建成功。如图10

再次构建,构建成功。
图10

11、后续还存在类似的问题。如下:

12、在目录 /vendor 中搜索:.git,发现存在数十个 .git。最终决定删除 /vendor,然后 composer install,重新安装,再删除每个目录中的 .git。重新提交推送。如图11

在目录 /vendor 中搜索:.git,发现存在数十个 .git。最终决定删除 /vendor,然后 composer install,重新安装,再删除每个目录中的 .git。重新提交推送。
图11
Plaintext

PHP message: PHP Fatal error:  require(): Failed opening required '/mcloud/www/cmcp-api/vendor/composer/../paragonie/random_compat/lib/random.php'

PHP message: PHP Fatal error:  require(): Failed opening required '/mcloud/www/cmcp-api/vendor/composer/../guzzlehttp/promises/src/functions_include.php'

13、查看 Nginx 的错误日志,未再报错。符合预期。

14、参考我应该提交 vendor 目录中的依赖包吗?:https://docs.phpcomposer.com/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.html 。我是采用的第 3 种方案。实际上感觉采用第 4 种方案,工作量会相对更小一些。如图12

参考我应该提交 vendor 目录中的依赖包吗?:https://docs.phpcomposer.com/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.html 。我是采用的第 3 种方案。实际上感觉采用第 4 种方案,工作量会相对更小一些。
图12

关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系