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 文件的主要内容,如果未能解决你的问题,请参考以下文章
php 在docker 中使用composer 报内存溢出的解决方法