我正在尝试使用以下命令symfony
从composer.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虚拟机上运行它(模仿生产服务器).所以通常一个人会在主机上运行作曲家,而不是客人......
请删除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虚拟机上运行它(模仿生产服务器).所以通常一个人会在主机上运行作曲家,而不是客人......