InvalidArgumentException composer安装symfony

 宝宝2502932575 发布于 2023-02-04 16:58

我正在尝试使用以下命令symfonycomposer.json文件安装2.4.1 :

php composer.phar install

我从包含该composer.json文件的根目录运行此命令(var/www/projectname /)

正确安装了一些软件包.安装Doctrine包时,出现以下错误:

InvalidArgumentException $ from(/ var/www/projectname/bin/doctrine)和$ to()必须是绝对路径.

这是我已经尝试过的:

运行php composer.phar selfupdate(现在最新版本)

运行php composer.phar更新

运行php composer.phar安装

删除整个项目(包括composer.json)并使用composer.phar创建项目运行新安装symfony/framework-standard-edition/var/www/[PROJECTNAME] 2.4.*--prefer-dist

一个加法:我使用虚拟框与Windows 7共享使用vagrant.我正在通过ssh运行命令.

在这里,您将找到错误报告http://pastebin.com/rFk4vfnL

这是php --version的输出:

PHP 5.3.10-1ubuntu3.9 with Suhosin-Patch (cli) (built: Dec 12 2013 04:27:25)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Jasper N. Br.. 7

请删除composer的缓存(~/.composer/cache/)并重试.

也:

你使用的是最新版本吗?(composer.phar selfupdate)

您是否将作曲家作为对内部所有内容具有写权限的用户运行/var/www/projectname/

更新

Composer希望将doctrine脚本符号链接到您的bin目录中,并且findShortestPath()在调用时似乎没有收到正确的路径.我以前从未见过这种情况:(

如果我理解正确,那么您将在Vagrant来宾中的"同步文件夹"中运行作曲家:

    你为什么要在guest上运行composer,而不是在主机上运行?

    你可以尝试在客人的其他地方运行composer(安装你的项目)吗?(不在同步文件夹中)这样你可以排除它是否与Windows 7共享有关.

更新

所以问题是在Windows 7主机上的同步文件夹中运行composer.下一步是获取作曲家的源并调试该LibraryInstaller::installBinaries()方法.首先检查realpath($binPath) 这里是否没有返回false或类似的东西.

但我不得不再问:你为什么这样做?通常会设置一个带有同步文件夹的Vagrant框,以便能够在主机上进行开发,并在guest虚拟机上运行它(模仿生产服务器).所以通常一个人会在主机上运行作曲家,而不是客人......

1 个回答
  • 请删除composer的缓存(~/.composer/cache/)并重试.

    也:

    你使用的是最新版本吗?(composer.phar selfupdate)

    您是否将作曲家作为对内部所有内容具有写权限的用户运行/var/www/projectname/

    更新

    Composer希望将doctrine脚本符号链接到您的bin目录中,并且findShortestPath()在调用时似乎没有收到正确的路径.我以前从未见过这种情况:(

    如果我理解正确,那么您将在Vagrant来宾中的"同步文件夹"中运行作曲家:

      你为什么要在guest上运行composer,而不是在主机上运行?

      你可以尝试在客人的其他地方运行composer(安装你的项目)吗?(不在同步文件夹中)这样你可以排除它是否与Windows 7共享有关.

    更新

    所以问题是在Windows 7主机上的同步文件夹中运行composer.下一步是获取作曲家的源并调试该LibraryInstaller::installBinaries()方法.首先检查realpath($binPath) 这里是否没有返回false或类似的东西.

    但我不得不再问:你为什么这样做?通常会设置一个带有同步文件夹的Vagrant框,以便能够在主机上进行开发,并在guest虚拟机上运行它(模仿生产服务器).所以通常一个人会在主机上运行作曲家,而不是客人......

    2023-02-04 17:00 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有