问题描述
我已经尝试了100次我是Ubuntu的新手,并以一堆我甚至不理解的错误结束,请帮助我吗?
这是我做的:
我安装了PHP
我安装了libcurl然后php5-dev
我尝试安装PECL扩展,它说没有找到PHPIZE。
最佳解决方案
首先,您需要通过apt-get安装PEAR,以获得PEAR和PECL使用的必要包和分配系统。从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
次佳解决方案
除了@ 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)
参考资料