【问题标题】:I've used composer to install drupal - why do I still have unresolved php dependencies?我已经使用 composer 安装了 drupal - 为什么我仍然有未解决的 php 依赖项?
【发布时间】:2019-05-25 13:00:12
【问题描述】:

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

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

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

然而,当我启动我的apache 服务器时,我收到一堆关于缺少库、函数等的错误。我可以通过谷歌搜索每个库并安装所需的 php 库来解决这些问题——但作曲家不应该这样做这是给我的?根据the composer docs;

Composer 是 PHP 中用于依赖管理的工具。它允许您 声明您的项目所依赖的库,它将管理 (安装/更新)它们。

当我导航到mysite/vendor 目录时,我看到一堆与drupal 相关的包,但据我所知,这些只是drupal 依赖项,而不是php 依赖项。我在这里遗漏了什么吗?

【问题讨论】:

    标签: php drupal composer-php


    【解决方案1】:

    我认为这里的混淆来自“库”这个词。

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

    PHP 本身依赖于脚本引擎(最初是 Zend,但也有 Facebook 的 HHVM 等替代方案),它作为编译器和运行时引擎工作,它需要“库” - 将其视为 模块或扩展。这些模块大部分是用 C 编写的,有些是用 C++ 编写的。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-26
      • 2020-12-27
      • 1970-01-01
      • 2023-01-12
      • 2018-07-01
      • 2015-01-24
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多