【发布时间】:2017-09-05 23:59:41
【问题描述】:
我正在使用 PHP 框架 "Slim" 作为我的模板框架构建一个网站,它建议使用 composer 作为包管理器。所以...我现在第一次使用 composer,在 64 位 Ubuntu 16.04 上进行本地开发,并且 composer 没有在我的项目中安装任何东西。
我已按照 Slim Framework 和 Composer 网站上的安装说明进行操作。
基本上这是我所做的顺序:
将composer安装到
/var/www/html目录[1.]-
使用 Slim-Skeleton 作为基础创建 Slim 项目
php composer.phar 创建项目 slim/slim-skeleton slimLittleTest
注意:php composer.phar create-project slim/slim-skeleton 命令会自动创建一个composer.json 文件,我将在我的问题中将该文件的内容放得更远。
进入该目录并运行
php composer.phar install没有安装任何东西!
如果我尝试运行 php -S localhost:8080 -t public public/index.php,就像您现在应该能够的那样(来自 Slim 框架网站主页教程),我会收到以下错误:
[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
这个错误当然是有道理的,因为没有安装任何东西!没有vendor/autoload.php,因为 Composer 没有安装任何东西。 (默认情况下,Composer 将依赖项安装到项目根目录下的 vendor 文件夹中)
9 月 7 日问题更新
从下面的一些 cmets 中,我收到了这样一个事实,即命令 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 extensions 问题或Problem 1 php unit requires ext-dom 问题会是我问题的主要来源吗?
【问题讨论】:
-
您是否创建了
composer.json文件来声明项目的依赖关系? -
是的。
create-project slim/slim-skeleton [project_name]命令会自动创建一个。我将编辑问题以使其更清楚! -
安装时,尝试
composer -vvv install获取(高度详细的)状态。也可以在你的目录中运行composer info,看看给出了什么,如果有疑问,还有非常有用的composer -help -
嘿,谢谢伙计,不过刚刚找到了解决方案。 @YvesLeBorg
标签: php nginx composer-php slim