【问题标题】:Install PHP stats library on Ubuntu 16在 Ubuntu 16 上安装 PHP 统计库
【发布时间】:2017-08-15 05:02:21
【问题描述】:

我正在尝试在我的 Ubuntu 16.04 LTS 服务器上安装 PHP 统计数据包,但我卡住了。

首先,配置东西:

$ apache2 -v
 Apache/2.4.18 (Ubuntu)

$ php -v
PHP 7.0.15-0ubuntu0.16.04.4 (cli) ( NTS )

$ pear -V
PEAR Version: 1.10.1

我已经使用 apt-get 以及 php-all-dev 成功添加了梨。

当我尝试使用 pecl 安装 stats 包时,我得到以下信息:

$ pecl install stats
pecl/stats is already installed and is the same as the released version 1.0.5

我还添加了extension=stats.so 到我的php.ini 并重新启动了apache。

但是当我尝试运行任何统计功能时,我收到以下错误:

Fatal error: Uncaught Error: Call to undefined function stats_standard_deviation() in /var/www/html/testing/stats_library.php:14 Stack trace: #0 {main} thrown in /var/www/html/testing/stats_library.php on line 14

我错过了什么?

【问题讨论】:

  • 运行 php -mphpinfo(); 以查看扩展是否实际加载。
  • 另外,您更改了哪个 php.ini?有多个。
  • 统计信息不会显示在php -mphpinfo(); 的输出中。我编辑了/etc/php/7.0/apache2/php.ini。我应该编辑哪一个?
  • phpinfo() 和 php -i 告诉你使用的是哪一个。 (cli 使用与 apache 不同的)
  • phpinfo(); 使用 apache2/php.iniphp -i 使用 /etc/php/7.0/cli/php.ini。我在cli ini中添加了extension=stats.so,但没有成功。

标签: php ubuntu pear pecl ubuntu-server


【解决方案1】:

通过将版本添加到安装命令中,我能够成功添加扩展,如下所示:

$  pecl install stats-2.0.3

然后我将extension=stats.so 添加到我的php.ini 并重新启动了apache。现在一切正常!

【讨论】:

    【解决方案2】:

    所以,首先有 2 个 PHP 版本。

    您的服务器使用的 CLI(命令行)和 FPM。

    php stats 模块是一个 C 库,所以我们需要编译它,通常是使用 PECL 工具来完成。

    1. 检查 PECL 是否工作

    pecl 列表

    1. 安装 stats 模块,如果您使用 PHP7+,您应该指定软件包版本,因为默认情况下它会从 repo 中提取 PHP5 版本。这是回购https://pecl.php.net/package/stats

    pecl 安装 stats-2.0.3

    这将编译和安装统计模块。如果出现错误,请检查是否安装了 php-dev。在ubuntu上

    [可选 - 适应你的 php 版本]

    sudo apt-get install php7.2-dev

    然后再次运行 pecl install ,它应该可以工作了。

    1. 激活扩展。

    现在我们需要激活扩展程序,这就是问题所在。您需要同时编辑 php.ini 以使其在 CLI 和 FPM 上运行

    对于 CLI,只需执行 php -ini 即可轻松找到 .ini 文件的路径。 对于 FPM,请确保您可以在服务器上运行 <?php phpinfo(); ?> 并检查加载的配置文件。

    然后编辑两个文件添加

    extension=stats.so

    通常这可能是:

    • /etc/php/7.2/fpm/php.ini
    • /etc/php/7.2/cli/php.ini

    现在(终极陷阱!)不要忘记重新启动 Apache 和 FPM

    sudo service apache2 重启

    sudo 服务 php7.2-fpm 重启

    现在您可以使用 php -m 检查 CLI,应该会看到 stats 模块已激活。对于 FPM,只需检查您的 phpinfo();

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-04
      • 2017-12-08
      • 2017-08-28
      • 2017-03-22
      • 1970-01-01
      • 2016-11-23
      • 2017-08-29
      • 1970-01-01
      相关资源
      最近更新 更多