在Ubuntu 16上安装PHP stats库

时间:2017-03-22 20:57:56

标签: php ubuntu pear pecl ubuntu-server

我试图在我的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添加了pear。

当我尝试使用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

我错过了什么?

2 个答案:

答案 0 :(得分:7)

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

$  pecl install stats-2.0.3

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

答案 1 :(得分:1)

因此,首先有2个PHP版本。

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

php stats模块是一个C库,因此我们需要对其进行编译,通常这是使用PECL工具完成的。

1)检查PECL是否正常工作

  

特殊列表

2)安装stats模块,如果您使用PHP7 +,则应指定软件包版本,因为默认情况下它将从存储库中提取PHP5版本。这是仓库https://pecl.php.net/package/stats

  

pecl安装统计信息2.0.3

这将编译并安装stats模块。如果有错误,请检查是否已安装php-dev。在ubuntu上

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

  

sudo apt-get install php7.2-dev

然后再次运行啄安装,它应该可以工作。

3)激活扩展名。

现在,我们需要激活扩展程序,这就是问题所在。您需要同时编辑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 AND FPM

  

sudo服务apache2重新启动

     

sudo服务php7.2-fpm重新启动

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

我希望这会有所帮助!