【问题标题】:Installing PHP Project Dependencies with Composer使用 Composer 安装 PHP 项目依赖项
【发布时间】:2015-07-14 03:34:57
【问题描述】:

我正在尝试使用 Composer(在 XAMPP 上)安装 Nette2.3.1。在 c:\x\php 文件夹中,我运行以下命令:

composer create-project nette/sandbox myprojectname

当我这样做时,出现以下错误:

[Seld\JsonLint\ParsingException] "c:\x\php\php.exe" 不包含 第 1 行的有效 JSON 解析错误:MZÉ ♥ ♦    ╕ ^ 预期以下之一: 'STRING'、'NUMBER'、'NULL'、'TRUE'、'FALSE'、'{'、'['

我尝试了所有这些选项都无济于事:

  1. 删除项目目录并尝试
  2. 在 htdocs 文件夹中运行此命令
  3. 通过 PHP JetBrains 控制台运行它
  4. 确保 Composer 版本是最新版本

出了什么问题?

这就是问题所在:

  1. 我在运行防病毒软件时安装了 xampp - 我收到警告但选择忽略它。因此 php.exe 被损坏并为我搞砸了整个事情。

  2. 我的用户下的 PATH 变量没有更新为 php.exe 路径。尽管系统变量已更新,但对我来说这仍然是个谜。

我是如何纠正这个问题的:

完全删除了 xampp,清除了 composer 缓存,这次安装了 wamp,并为 nette 沙箱创建了项目。这工作得很好。平心而论,如果我在禁用 av 并正确更新 PATH 变量的情况下安装它,xampp 也会正常工作。

【问题讨论】:

  • 这个命令对我来说很好用......也许你的 Composer 安装有问题。您运行的是最新版本 (composer --version) 吗?试试composer selfupdate。或者尝试从 getcomposer.org/download 获取新版本或使用独立的 phar 作曲家...
  • @Ondra 我如何使用独立的 phar 作曲家?
  • 您可以从getcomposer.org/download 下载phar - 手动下载部分。下载文件并将其保存在某处。然后在命令行中导航到文件 (cd c:\somewhere\elsewhere) 并像普通 PHP 文件一样运行它,即php composer.phar --version。如果您的 PATH 损坏或设置错误,您可能需要使用 PHP 的完整路径,即c:\x\php\php.exe composer.phar --version

标签: php xampp composer-php nette


【解决方案1】:

我认为您的 composer PATH 或快捷方式/批处理文件有点损坏,因为它试图将 php.exe 文件作为 JSON 文件读取。

尝试完全删除 composer 并从全新安装开始

  1. 使用automated installer 下载并安装composer。它为您设置了 PATH,因此您可以从任何地方调用 composer。
  2. 关闭命令行终端并启动一个新终端(重要)。
  3. 尝试在任意目录下运行composer create-project nette/sandbox myprojectname命令

Documentation - windows installation of composer

【讨论】:

  • 谢谢塞缪尔。是的,显然 php.exe 也已损坏。在安装 xampp 时,我选择忽略安装期间正在运行防病毒软件的警告,这可能会在以后产生问题。现在,我卸载了 xampp,禁用了 av 并再次运行 xampp 安装 >> 添加了路径变量。 PHP 和 Composer 在命令行上运行良好。现在我必须为 nette 创建 composer.json 文件并将其放在哪里?在 htdocs(或 wamp 中的 www)下的项目文件夹中?在这种情况下,我应该将命令行的目录更改为项目文件夹并运行“composer create project”命令?
  • 如果你想尝试nette沙箱,你不需要自己创建composer.json文件。只需转到 htdocs 目录并运行 composer create-project nette/sandbox myprojectname 命令,它将创建一个名为 myprojectname 的新子目录,并且将有一个 nette 沙箱及其所有依赖项的副本。 composer.json 和 composer.lock 已经在那里(json 是从 repo github.com/nette/sandbox 获取的,并且在 create-project 命令期间生成锁定文件)。你完成了,检查localhost/myprojectname/www
  • 是的,现在它工作正常 - 我删除了 xampp 并安装了 wamp。运行 composer create-project nette/sandbox myproject ,现在很好。非常感谢大家。
  • 我正在尝试(使用 Nette\Application\UI;)不带括号来访问 Presenter.php - UI 下的库文件之一。我使用此表达式的项目文件位于项目根文件夹中。但是我收到了无法分析使用的错误。给定的路径没有被解析。然后我将项目文件放在 (vendor\nette\application\src) 中无济于事。我做错了什么?
猜你喜欢
  • 2015-01-24
  • 2017-06-28
  • 1970-01-01
  • 2017-09-18
  • 2018-09-11
  • 2017-10-31
  • 2017-03-06
  • 2013-11-04
  • 2015-10-27
相关资源
最近更新 更多