php dependency/package manager Composer不会安装软件包

php dependency/package manager Composer不会安装软件包,php,nginx,composer-php,slim,Php,Nginx,Composer Php,Slim,我正在用PHP框架作为模板框架构建一个网站,它建议使用composer作为包管理器。所以我现在第一次使用composer,在64位Ubuntu 16.04上本地开发,composer没有在我的项目中安装任何东西 我已经完全按照Slim Framework&Composer网站上的安装说明进行了操作 基本上,这是我所做工作的顺序: 已将composer安装到/var/www/html目录[1.] 使用Slim Skeleton作为基础创建了Slim项目 php composer.phar创建项目s

我正在用PHP框架作为模板框架构建一个网站,它建议使用composer作为包管理器。所以我现在第一次使用composer,在64位Ubuntu 16.04上本地开发,composer没有在我的项目中安装任何东西

我已经完全按照Slim Framework&Composer网站上的安装说明进行了操作

基本上,这是我所做工作的顺序:

  • 已将composer安装到
    /var/www/html
    目录[1.]

  • 使用Slim Skeleton作为基础创建了Slim项目

    php composer.phar创建项目slim/slim骨架slimlitletest

  • 注意:
    php composer.phar create project slim/slim skeleton
    命令会自动创建一个
    composer.json
    文件,我将在我的问题中进一步说明该文件的内容

  • 切换到该目录并运行
    php composer.phar安装

  • 没有安装任何东西

  • 如果我尝试运行
    php-S localhost:8080-t public public/index.php
    (从Slim framework网站主页教程),我会得到以下错误:

    [Tue Sep  5 18:55:04 2017] PHP Fatal error:  require(): Failed opening required '/var/www/html/slimLittleTest/public/../vendor/autoload.php' (include_path='.:/usr/share/php') in /var/www/html/slimLittleTest/public/index.php on line 12
    [Tue Sep  5 18:55:05 2017] PHP Warning:  
    require(/var/www/html/slimLittleTest/public/../vendor/autoload.php): failed to open stream: No such file or directory in /var/www/html/slimLittleTest/public/index.php on line 12
    
    这个错误当然是有道理的,因为没有安装任何东西!没有
    供应商/autoload.php
    ,因为Composer没有安装任何东西。(默认情况下,Composer将依赖项安装到项目根目录中的
    供应商
    文件夹中)

    9月7日问题更新

    从下面的一些评论中,我注意到命令
    composer create project
    一定出了问题,我的解决方案不需要重新要求所有包。经过进一步检查,在运行命令
    php composer.phar create project slim/slim skeleton projectName
    时,我确实遇到了一些错误。下面是运行该命令后从控制台获得的输出:

    php composer.phar create-project slim/slim-skeleton tester
    Installing slim/slim-skeleton (3.1.2)
      - Installing slim/slim-skeleton (3.1.2): Loading from cache
     Created project in tester
     Loading composer repositories with package information
     Updating dependencies (including require-dev)
     Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - phpunit/phpunit 5.7.9 requires ext-dom * -> the requested PHP extension dom is missing from your system.
        - phpunit/phpunit 5.7.8 requires ext-dom * -> the requested PHP extension dom is missing from your system.
        - phpunit/phpunit 5.7.7 requires ext-dom * -> the requested PHP extension dom is missing from your system.
       [.......]
    
     To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/7.0/cli/php.ini
    - /etc/php/7.0/cli/conf.d/10-mysqlnd.ini
    - /etc/php/7.0/cli/conf.d/10-opcache.ini
    - /etc/php/7.0/cli/conf.d/10-pdo.ini
    - /etc/php/7.0/cli/conf.d/20-calendar.ini
    - /etc/php/7.0/cli/conf.d/20-ctype.ini
    - /etc/php/7.0/cli/conf.d/20-curl.ini
    - /etc/php/7.0/cli/conf.d/20-exif.ini
    - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.0/cli/conf.d/20-ftp.ini
    - /etc/php/7.0/cli/conf.d/20-gettext.ini
    - /etc/php/7.0/cli/conf.d/20-iconv.ini
    - /etc/php/7.0/cli/conf.d/20-imagick.ini
    - /etc/php/7.0/cli/conf.d/20-json.ini
    - /etc/php/7.0/cli/conf.d/20-mbstring.ini
    - /etc/php/7.0/cli/conf.d/20-mcrypt.ini
    - /etc/php/7.0/cli/conf.d/20-mysqli.ini
    - /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini
    - /etc/php/7.0/cli/conf.d/20-phar.ini
    - /etc/php/7.0/cli/conf.d/20-posix.ini
    - /etc/php/7.0/cli/conf.d/20-readline.ini
    - /etc/php/7.0/cli/conf.d/20-shmop.ini
    - /etc/php/7.0/cli/conf.d/20-sockets.ini
    - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
    You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
    

    .ini扩展
    问题还是
    问题1 php unit Required ext dom
    问题是我问题的主要根源?

    我运气好,偶然发现了一个适合我的情况的答案

    我只需要为每个包名运行
    php composer.phar require[package_name]
    ,如果它不在composer.json中,那么就会安装依赖项。所以我需要做的是删除composer.json文件,然后返回并从中获取每个包。其他功能都不起作用,例如
    php composer.phar更新
    ,或
    php composer.phar安装

    因此,我从命令行运行了
    php composer.phar require slim/php
    php composer.phar require php
    ,并正确安装了所有内容

    这可能是入门文档的一个失败,它不一定“错误”,因为它可能在某些/大多数情况下都有效,但它们至少应该解决我遇到的问题的潜在问题,以及避免问题的解决方案或方法

    更好的解决方案

    事实证明,我在这里遇到的主要错误是缺少extdom。谢谢你,我知道我可以通过下载php7.0-xml获得缺少的extdom

    sudo apt-get update
    sudo apt-get install php7.0-xml
    

    轰!现在,当我运行
    php composer.phar create project slim/slim skeleton projectName
    时,所有供应商的软件包都已成功安装,它的工作非常出色。问题解决了。

    我很幸运,偶然发现了一个适合我的情况的答案

    我只需要为每个包名运行
    php composer.phar require[package_name]
    ,如果它不在composer.json中,那么就会安装依赖项。所以我需要做的是删除composer.json文件,然后返回并从中获取每个包。其他功能都不起作用,例如
    php composer.phar更新
    ,或
    php composer.phar安装

    因此,我从命令行运行了
    php composer.phar require slim/php
    php composer.phar require php
    ,并正确安装了所有内容

    这可能是入门文档的一个失败,它不一定“错误”,因为它可能在某些/大多数情况下都有效,但它们至少应该解决我遇到的问题的潜在问题,以及避免问题的解决方案或方法

    更好的解决方案

    事实证明,我在这里遇到的主要错误是缺少extdom。谢谢你,我知道我可以通过下载php7.0-xml获得缺少的extdom

    sudo apt-get update
    sudo apt-get install php7.0-xml
    

    轰!现在,当我运行
    php composer.phar create project slim/slim skeleton projectName
    时,所有供应商的软件包都已成功安装,它的工作非常出色。问题已解决。

    是否创建了
    composer.json
    文件来声明项目的依赖项?是的。有一个由
    create project slim/slim skeleton[project\u name]
    命令自动创建。我将编辑这个问题,使之更清楚!安装时,请尝试
    composer-vvv install
    以获取(高度详细的)状态。另外,在您的目录中运行
    composer info
    ,查看提供了什么,当有疑问时,还有非常有用的
    composer-help
    嘿,谢谢,伙计,刚才找到了一个解决方案@Yvesleborg您是否创建了
    composer.json
    文件来声明项目的依赖项?是的。有一个由
    create project slim/slim skeleton[project\u name]
    命令自动创建。我将编辑这个问题,使之更清楚!安装时,请尝试
    composer-vvv install
    以获取(高度详细的)状态。同时在目录中运行
    composer info
    ,查看给出的内容,然后