当前位置: 首页>>技术教程>>正文


在ubuntu上安装PECL包

, ,

问题描述

我已经尝试了100次我是Ubuntu的新手,并以一堆我甚至不理解的错误结束,请帮助我吗?

这是我做的:

  1. 我安装了PHP

  2. 我安装了libcurl然后php5-dev

  3. 我尝试安装PECL扩展,它说没有找到PHPIZE

最佳解决方案

首先,您需要通过apt-get安装PEAR,以获得PEARPECL使用的必要包和分配系统。从shell提示符输入:

sudo apt-get install php-pear

系统将提示您确认安装。只需按“y”然后输入即可。如果一切顺利,您应该看到它下载并安装php-pear软件包。

现在您需要安装php5-dev软件包以获取必要的PHP5源文件来编译其他模块。在shell提示符下输入以下内容:

sudo apt-get install php5-dev

如果您没有安装php5-dev软件包并尝试使用“pear install”安装PECL扩展,则会出现以下错误:

sh: phpize: not found
ERROR: `phpize’ failed

PECL_HTTP扩展需要安装其他依赖包。你可以跳过这个以获取其他扩展:

sudo apt-get install libcurl3-openssl-dev

现在我们终于准备好实际安装扩展了。在shell提示符下输入以下命令,但用您正在安装的PECL扩展名替换“pecl_http”:

sudo pecl install pecl_http

安装程序可能会询问您正在安装的扩展的某些特定选项。您可以只输入一次或多次以接受所有默认值,除非您要为实现设置特定选项。如果一切顺利,模块应该下载,构建和安装。

安装完成后,它可能会要求您在php.ini文件中添加“extension=”行。在您喜欢的文本编辑器中打开php.ini文件,并在标有“Dynamic Extensions”的部分下添加该行。在Ubuntu上,php.ini文件似乎位于/etc /php5 /apache2文件夹中:

sudo nano /etc/php5/apache2/php.ini

在此示例中,pecl_http扩展安装要求我添加“extension=http.so”。现在已经更新了php.ini文件,需要重新启动Apache,以便加载新的扩展:

sudo /etc/init.d/apache2 restart 

source

次佳解决方案

除了@ Ask的回答,我还需要做:

sudo apt-get install libpcre3-dev

在运行pecl install pecl_http之前,因为我收到有关pcre.h的错误:

fatal error: pcre.h: No such file or directory compilation terminated.

另外,我没有编辑php.ini文件,而是在php.ini文件所在的conf.d子目录中创建了一个名为pecl-http.ini的新文件(在ubuntu /etc/php5/apache2/conf.d上)

我需要添加三行:

extension=raphf.so
extension=propro.so
extension=http.so

最后,由于该安装的版本2.0.6我不能使用http_get_request_headers功能,但需要改用命名空间的配置,\http\Env::getRequestHeader() see more details here

ps:完成后不要忘记重启apache(service apache2 restart)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6256.html,未经允许,请勿转载。