php dependency/package manager Composer不会安装软件包
我正在用PHP框架作为模板框架构建一个网站,它建议使用composer作为包管理器。所以我现在第一次使用composer,在64位Ubuntu 16.04上本地开发,composer没有在我的项目中安装任何东西 我已经完全按照Slim Framework&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
/var/www/html
目录[1.]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
,查看给出的内容,然后