Composer 在 /var/www/html 中找不到 composer.json 文件

Posted

技术标签:

【中文标题】Composer 在 /var/www/html 中找不到 composer.json 文件【英文标题】:Composer could not find a composer.json file in /var/www/html 【发布时间】:2016-04-15 01:33:00 【问题描述】:

我正在尝试在我的虚拟机中设置一个环境,即 Ubuntu 15.10。我已按照以下步骤操作教程:

curl -sS https://getcomposer.org/installer | php
sudo mv ~/composer.phar /usr/local/bin/composer
composer global require "laravel/installer"

然后我做:

sudo nano ~/.profile

然后我将它添加到文件末尾:

PATH="$PATH:~/.composer/vendor/bin"

最后:

composer global update

在这些步骤之后,我尝试:

laravel new project

并得到这个错误:

PHP Warning:  file_put_contents(/var/www/html/laravel_62a1f2f16d54929f3367e5f18f937a47.zip): failed to open stream: Permission denied in /home/alavaros/.composer/vendor/laravel/installer/src/NewCommand.php on line 114
PHP Warning:  ZipArchive::extractTo(): Permission denied in /home/alavaros/.composer/vendor/laravel/installer/src/NewCommand.php on line 132
PHP Warning:  ZipArchive::close(): Invalid or uninitialized Zip object in /home/alavaros/.composer/vendor/laravel/installer/src/NewCommand.php on line 134
Composer could not find a composer.json file in /var/www/html
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section

【问题讨论】:

我建议你使用 Laravel Homestead 作为开发环境,它应该预先配置好你需要的一切。 laravel.com/docs/master/homestead 【参考方案1】:

您的权限似乎存在问题。

ls -l /var/www 的输出是什么? 您应该看到您拥有公开的写入权限 (w),或者您在列出的组中。

例如,您可能会看到

drwxr-xr-x  3 root root 4096 Jul  4  2015 .

这意味着您在不以root 身份写信给/var/www 时会遇到问题。

简单地运行sudo laravel new project 可能会解决您当前的问题,但可能会导致您在工作时不得不使用sudo

更好的解决方案是让自己访问此目录:

sudo chmod o+w /var/www/

运行此命令将授予此计算机上的所有(o其他)用户(包括您)w/var/www

的正式访问权限

【讨论】:

确实是权限问题,但不知道为什么,我的意思是,我用同一个用户安装了 LAMP、Composer 和 Laravel。安装所有东西的方法是什么而没有这种问题?谢谢!!! 您使用什么命令安装 LAMP?您可能使用了类似sudo apt-get install apache mysql php 的命令。 sudo 表示这些是作为 root 用户制作的(即使您以 alavaros 身份登录)。因此,当您尝试laravel new update 时,您的用户 alavaros 正在尝试写入 alavaros 没有写入权限的目录。 使用sudo安装东西不是坏事。你只需要了解如何以及何时调整权限,因为它们会影响安全性。更好的解决方案是使用homestead。

以上是关于Composer 在 /var/www/html 中找不到 composer.json 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用外部项目文件夹中的composer

php 在docker 中使用composer 报内存溢出的解决方法

Composer 更新显示 mmap() 失败:[12] 无法分配内存 [重复]

手动安装 Shippo PHP

如何使用 Composer 从供应商外部自动加载类?

centos7安装jitamin进行项目管理