【问题标题】:When trying to install Quickbooks API with Composer I get a "failed to open stream: no such file or directory" error尝试使用 Composer 安装 Quickbooks API 时出现“无法打开流:没有这样的文件或目录”错误
【发布时间】:2017-11-11 19:42:29
【问题描述】:

我正在尝试使用 composer 安装 quickbooks API v3。当我使用命令时:

composer require quickbooks/v3-php-sdk

我拿回来了:

Using version ^3.2 for quickbooks/v3-php-sdk
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing quickbooks/v3-php-sdk (v3.2.3): Downloading (100%)

Installation failed, deleting ./composer.json.
  [ErrorException]
  ZipArchive::extractTo(c:\Dropbox\Projects\Web\Websites\Instamation\wwwincludes/vendor/composer/034a1449/intuit-QuickBooks-V3-PHP-SDK-b501
  2d0\src\XSD2PHP\test\data\expected\ContactCompany\oasis\names\specification\ubl\schema\xsd\CommonAggregateComponents_2/AdditionalItemProp
  erty.php): failed to open stream: No such file or directory

在做了一些研究之后,我尝试运行这些命令而不会对结果产生任何影响:

composer clear-cache

composer dump-autoload

composer dump-autoload -o

composer update

我注意到路径中有正斜杠和反斜杠,这看起来很奇怪。任何想法是什么导致了这个错误?

【问题讨论】:

  • 我遇到了这个问题,你是对的,如果我们在 root 上运行该命令,那么它工作正常。我试过了,你可以看到详细的截图。 Click here to see image

标签: php composer-php quickbooks quickbooks-online package-managers


【解决方案1】:

因为我的第一个遮阳篷坏了, 试试:

作曲家需要'. $_SERVER['DOCUMENT_ROOT'] 。 '/quickbooks/v3-php-sdk';

您还必须将其移动到文档根目录或文档根目录上的文件夹。因为那是 Web 服务器只能访问的地方。

【讨论】:

  • 说得有道理,但是当我把它改成反斜杠时,它似乎再也找不到包了。它告诉我 [InvalidArgumentException] 找不到任何版本的包 quickbooks\v3-php-sdk 以获得最低稳定性(稳定)。检查包装拼写或您的最低稳定性。
  • 您必须记住的一件事是 composer 在 apache 环境中运行。让这样的事情在 Windows 上很痛苦的一件事是路径名称因使用的运行级别环境而异。我将为您提供有关 windows uri 身份问题的示例:标准 UNC:\\laptop\My Documents\FileSchemeURIs.doc 与 file://laptop/My%20Documents/FileSchemeURIs.doc 和 file:// 的路径相同/C:/Documents%20and%20Settings/davris/FileSchemeURIs.doc 用于 C:\Documents and Settings\davris\FileSchemeURIs.doc,具体取决于 Windows 版本。它应该遵守 UNC 规则
【解决方案2】:

看起来像是路径问题。路径太长了。 Composer 抱怨 Windows 上的 PHP 路径太长。 Windows 的最大路径长度 (MAXPATHLEN) 为 260 个字符,此处类似示例:composer/composer#3755。

如果您的年龄不超过 260 (https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath),您也许可以重命名您的项目以作为相对简单的“修复”来绕过限制。

【讨论】:

  • 这就是问题所在。果然。将我网站的路径更改为缩短了大约 8 个字符,并且安装完美!
【解决方案3】:

您的错误代码: ZipArchive::extractTo(c:\Dropbox\Projects\Web\Websites\Instamation\wwwincludes/vendor/composer/034a1449/intuit-QuickBooks-V3-PHP-SDK-b501 2d0\src\XSD2PHP\test\data\expected\ContactCompany\oasis\names\specification\ubl\schema\xsd\CommonAggregateComponents_2/AdditionalItemProp erty.php): failed to open stream: No such file or directory

因为wwwincludes/vendor/composer/034a1449/intuit-QuickBooks-V3-PHP-SDK-b5012d0 是在php/apache 环境中生成的路径,它将指向phpini 文件中的include_path = 语句。

所以我会尝试更改 php.ini 文件中包含路径的斜杠。

如果您正在为 composer 调试它,请安装一个例程,该例程将调用 realpath() 以纠正错误配置的 php 路径导致错误。

【讨论】:

    【解决方案4】:

    在 cmd 提示符下运行此命令 composer require quickbooks/v3-php-sdk 时出现此错误。

    Failed to download quickbooks/v3-php-sdk from dist: The archive may contain identical file names with different capitalization (which fails on case insensitive filesystems): ZipArchive::extractTo(): Full extraction path exceed MAXPATHLEN (260)

    然后我将我的项目名称更改为较小的大小,从项目名称中删除了“-”,最后我成功安装了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 2015-02-25
      • 2019-07-27
      • 2013-12-15
      • 2014-03-02
      • 1970-01-01
      相关资源
      最近更新 更多