我试图在我的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
我错过了什么?
答案 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
通常这可能是:
现在(最终陷阱!)不要忘记重新启动Apache AND FPM
sudo服务apache2重新启动
sudo服务php7.2-fpm重新启动
现在,您可以使用php -m与CLI进行检查,并且应该可以看到stats模块已激活。对于FPM,只需检查您的phpinfo();
我希望这会有所帮助!