【问题标题】:sudo composer install vs. composer installsudo composer install 与 composer install
【发布时间】:2017-08-24 16:58:06
【问题描述】:

我运行sudo composer install 我收到了这个警告

不要以 root/超级用户身份运行 Composer!详情见https://getcomposer.org/root

我试过composer install我得到了这个错误

[错误异常] file_put_contents(/Applications/MAMP/htdocs/code/bheng/vendor/composer/installed.json):失败 d 打开流:权限被拒绝

这是我的 Laravel 文件夹上当前设置的权限

total 1872
-rw-r--r--   1 bheng  staff     777 Feb 27 20:18 phpunit.xml
-rw-r--r--   1 bheng  staff      87 Feb 27 20:18 phpspec.yml
-rw-r--r--   1 bheng  staff     481 Feb 27 20:18 package.json
drwxr-xr-x   3 bheng  staff     102 Feb 27 20:18 note
-rw-r--r--   1 bheng  staff     967 Feb 27 20:18 md-bheng-readme.txt
-rw-r--r--   1 bheng  staff     503 Feb 27 20:18 gulpfile.js
-rw-r--r--   1 bheng  staff      26 Feb 27 20:18 contributors.txt
-rw-r--r--   1 bheng  staff    1635 Feb 27 20:18 artisan
-rw-r--r--   1 bheng  staff      43 Feb 27 20:18 Procfile
-rw-r--r--   1 bheng  staff    5634 Feb 27 20:18 Gruntfile.js
drwxr-xr-x   4 bheng  staff     136 Feb 27 20:18 tests
drwxr-xr-x   5 bheng  staff     170 Feb 27 20:18 storage
drwxr-xr-x   4 bheng  staff     136 Feb 27 20:18 sql
-rw-r--r--   1 bheng  staff     560 Feb 27 20:18 server.php
drwxr-xr-x   5 bheng  staff     170 Feb 27 20:18 resources
-rw-r--r--   1 bheng  staff     105 Feb 27 20:18 pull.sh
drwxr-xr-x   7 bheng  staff     238 Mar  1 14:46 bootstrap
-rw-r--r--@  1 bheng  staff       0 Mar  1 14:46 Icon?
drwxr-xr-x  22 bheng  staff     748 Mar  2 11:47 app
drwxrwxrwx@ 27 bheng  staff     918 Mar  3 14:55 public
drwxr-xr-x   8 bheng  staff     272 Mar  6 13:25 database
-rw-------@  1 bheng  staff     405 Mar 14 09:29 id_rsa.pub
-rw-------   1 bheng  staff    1766 Mar 14 09:29 id_rsa
-rw-r--r--   1 bheng  staff  126713 Mar 14 10:00 composer.lock
drwxr-xr-x  18 bheng  staff     612 Mar 28 21:24 config
-rw-r--r--   1 bheng  staff    1022 Mar 30 12:21 composer.json
drwxr-xr-x  32 bheng  staff    1088 Mar 30 12:21 vendor

这是我的 composer.json 里面的内容

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "laravel/framework": "5.1.0",
    "intervention/image": "^2.3",
    "laravelcollective/remote": "5.1.*",
    "doctrine/dbal": "^2.3",
    "league/flysystem-sftp": "^1.0"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
        },
        "autoload": {
            "classmap": [ "database" ],

            "psr-4": {
                "App\\": "app/"
            }
            },
            "autoload-dev": {
                "classmap": [
                "tests/TestCase.php"
                ]
                },
                "scripts": {
                    "post-install-cmd": [
                    "php artisan clear-compiled",
                    "php artisan optimize"
                    ],
                    "post-update-cmd": [
                    "php artisan clear-compiled",
                    "php artisan optimize"
                    ],
                    "post-create-project-cmd": [
                    "php -r \"copy('.env.example', '.env');\"",
                    "php artisan key:generate"
                    ]
                    },
                    "config": {
                        "preferred-install": "dist"
                    }
                }

我该如何解决这个问题?我需要 chmod 任何文件夹吗?

【问题讨论】:

  • 删除您的供应商目录并再次运行composer install
  • 感谢您的建议 - 我同意了。
  • 就我个人而言,sudo --user=www-data composer install 以 apache 用户身份运行。

标签: php laravel laravel-5 composer-php laravel-5.1


【解决方案1】:

删除您的供应商目录并再次运行composer install

您收到权限被拒绝错误,因为 vendor/composer/installed.json 文件是在您运行 sudo composer install 时由 root 用户创建的,所以现在当您运行 composer install 时,您的用户没有编辑该文件的权限。

更新:

如果您在实时文档根目录下工作(您不应该 - 在atomic deployment 上阅读),那么您可以在供应商目录及其内容上尝试chown,以避免在删除和重新-运行composer install:

$ sudo chown -R myuser: vendor/

myuser 替换为您的用户名。

【讨论】:

  • 解决办法是什么?
  • @Aziz 解决方案是这个答案的第一句话。始终运行 composer install without sudo
  • 我的意思是如果我已经用 sudo 开始了一次。如何在不从服务器中删除所有内容的情况下解决它?
  • @Aziz 您不应该对实时文档根目录进行这样的更改。看看原子部署
猜你喜欢
  • 1970-01-01
  • 2019-01-01
  • 2018-03-28
  • 2020-04-10
  • 2018-08-08
  • 2017-02-12
  • 2015-07-07
  • 2016-06-11
  • 2016-07-22
相关资源
最近更新 更多