我已经使用composer安装了drupal-为什么我仍然有未解决的php依赖关系?

时间:2018-12-27 13:40:09

标签: php drupal composer-php

我正在尝试使用drupal构建一个composer网络服务器,这是正确的方法。

我用来安装drupal的命令是这样的:

composer create-project drupal-composer/drupal-project:8.x-dev --stability dev mysite --no-interaction

但是,当我启动apache服务器时,遇到一堆关于缺少库,函数等的错误。我可以通过对每个库进行搜索并安装所需的php库来解决这些问题-但并不是作曲家为我做这件事?根据{{​​3}};

  

Composer是用于PHP中的依赖项管理的工具。它可以让你   声明您的项目所依赖的库,它将管理   (为您安装/更新)。

当我导航到mysite/vendor目录时,我看到了一堆与drupal相关的软件包,但据我所知,这些仅仅是drupal依赖关系,而不是php依赖关系。我在这里想念东西吗?

1 个答案:

答案 0 :(得分:4)

我认为这里的困惑来自“图书馆”一词。

Composer是用PHP 编写编写的依赖项管理工具。

PHP本身依赖脚本引擎(最初为Zend,但是还有Facebook HHVM等替代品),它可以用作编译器和运行时引擎,并且需要“库”-想想其中的 modules extensions 。这些模块主要用C编写,有些用C ++编写。

Apache启动时出现“缺少库”错误并不意味着Composer错过了任何Drupal依赖关系,这意味着需要使用丢失的模块正确配置或重建PHP。

有3种类型的模块(PHP's extensions membership):

  • 不能通过编译选项保留在PHP二进制文件中的核心模块。
  • 与PHP核心捆绑在一起但不一定启用的核心扩展模块。
  • 未与PHP核心捆绑在一起的外部模块。这些模块可从名为PECL(PHP扩展社区库)的存储库中获得。

例如,如果要通过缓存PHP代码和用户变量来加快Drupal或任何PHP应用程序的速度,则需要使用诸如APC之类的操作码。就是说,如果没有使用PHP编译相应的模块,则将APC设置添加到php.ini将无法正常工作。