无法在Windows 7上使用Composer创建项目

时间:2015-07-10 01:57:12

标签: laravel laravel-5 composer-php

我试图在Windows 7上使用composer安装Laravel并遇到错误。这是我正在运行的命令:

composer global require "laravel/installer=~1.1"

这是我得到的错误:

file_put_contents(C:\Users\myUser\AppData\Roaming\Composer/vendor/composer/installed.json): failed to open stream: No such file or directory

说safe.json文件不存在是正确的,甚至连供应商文件夹中都没有作曲家文件夹。不知道为什么会丢失。我使用Windows安装程序安装了composer。

似乎是与作曲家相关的问题,而不是laravel。我刚刚尝试安装yii,并且遇到类似的错误:

composer create-project --prefer-dist yiisoft/yii2-app-basic MyApp

对于这个,我在成功创建文件夹之后得到了这个,并且似乎加载了大多数文件:

file_put_contents(C:\wwwroot\MyApp/vendor/composer/installed.json): failed to open stream: No such file or directory

似乎问题是我的供应商文件夹中从未有过composer文件夹。

更新

我可以通过添加COMPOSER_HOME环境变量来全局安装laravel。但是在那之后设置Laravel项目时我仍然遇到类似的错误

更新2

一些其他信息,当我使用Windows Installer时,composer安装在c:\ ProgramData \ ComposerSetup \ bin中。如果我将COMPOSER_HOME环境变量设置为this,则可以全局安装laravel。但是尝试使用" laravel new MyApp"来安装项目。抛出以下错误:

Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in C:\wwwroot\MyApp\artisan on line 31

我怀疑是因为我有PHP 5.4而laravel的最新版本是5.6及以上,但我想安装5.0,即5.4及以上版本。我尝试使用" composer create-project laravel / laravel MyApp 5.0 --prefer-dist"代替。我收到以下错误:

file_put_contents(c:\wwwroot\MyApp/vendor/composer/installed.json): failed to open stream: No such file or directory

似乎那里有一些奇怪的路径,我无法理解这些路径。

更新3

我现在已经卸载了作曲家,并按照作曲家网站上提供的说明手动重新安装了作曲家。我现在正尝试使用c:\​​ wwwroot:

中的以下命令创建项目
composer create-project laravel/laravel c:\wwwroot\MyApp --prefer-dist

它设法安装了一些东西,但似乎我在它尝试安装的任何软件包之前得到了这个错误:

Installing laravel/laravel (v5.1.4)
Loading from cache
Failed to download laravel/laravel from dist: RecursiveDirectoryIterator::__construct(C:\wwwroot/vendor/composer/,C:\wwwroot/vendor/composer/): The system cannot find the path specified. (code: 3)

同样,似乎无法出于某种原因为供应商/作曲家创建目录。我尝试运行相同的命令,但是从空的c:\ wwroot \ MyApp文件夹中,除了错误中的路径之外,相同的结果会相应地更改。

我找到了以下内容:https://getcomposer.org/doc/articles/troubleshooting.md#-the-system-cannot-find-the-path-specified-windows-

但我检查了我的注册表,我没有这些条目。所以仍然没有任何线索。

3 个答案:

答案 0 :(得分:0)

您的作曲家似乎无法全局访问。尝试将C:\ Users {UserName} \ AppData \ Roaming \ Composer \ vendor \ bin添加到您的环境变量,然后重新启动Shell或命令提示符,以便加载更新的Path变量。现在尝试再次安装laravel。

以下是详细说明:

  1. 转到“控制面板”>系统和安全性>系统>高级系统设置然后导航到环境变量,然后向下滚动并找到PATH,然后在PATH字符串的末尾添加一个分号(;)。这意味着您要声明一个新变量。然后在添加(;)之后粘贴C:\ Users {UserName} \ AppData \ Roaming \ Composer \ vendor \ bin,重新启动命令提示符并尝试再次安装laravel。

答案 1 :(得分:0)

卸载composer并重新安装,但这次启用shell菜单。右键单击要创建项目的位置(目录),选择“在这里使用composer”,然后"composer create-project laravel/laravel projectName --prefer-dist"应创建laravel项目,默认为最新版本(5.1)。

指定您喜欢的版本:

"composer create-project laravel/laravel 4.2 projectName --prefer-dist"

答案 2 :(得分:0)

我建议你安装Homestead(http://blog.teamtreehouse.com/laravel-homestead-on-windows)并在那里进行所有的重装。

您只需要homestead ssh实际连接到您的计算机,然后执行所有操作。

Windows在这种情况下以及一般的Web开发中都是不可预测的。