php源码目录:/root/php

php编译目录:/usr/local/webserver/php/

curl源码目录:/root/curl

1.curl,主要用于发送http请求,是php的一个扩展包。

2.安装过程:

(1)curl下载:http://curl.haxx.se/download.html
(2)具体安装过程:
  • 解压:tar -zxvf curl.tar.gz
  • cd  /(php源码目录,不是php编译目录)/ext/curl
  • 运行phpize: /(php编译目录)/bin/phpize
  • ./configure --with-php-config=/(php编译目录)/bin/php-config  --with-curl=/(curl源码目录)
  • make && make install
  • 修改php.ini,增加:extension=curl.so(如果没有安装过其他php扩展,则需要同时配置extension_dir="/(php编译后目录)/lib/php/extensions/no-debug-non-zts-20121212/",上一个步骤生成.so文件的时候,会输出extension_dir目录)
(3)检验是否安装成功:
  • /(php编译后目录)/bin/php -m | grep curl ——正常打印curl,则表示安装成功(php -m会打印出已安装的扩展模块)
3.踩过的坑:
(1)直接在curl的源码目录最上层,运行phpize,提示如下错误:
Cannot find config.m4. 
Make sure that you run '/home/zhuyx/local/php-5.5.3/bin/phpize' in the top level source directory of the module
原因:
  phpize扩展安装,源包需要有config.m4这个配置文件;当前扩展的源码包不包含(memcache的就包含)。
 
解决方法:
(1)进入php源码包的 ext/curl 下面运行phpize,再进行安装
(2)./configure --with-php-config=/php编译后目录/bin/php-config  --with-curl=curl源码目录
 
问题扩展:
  安装其他的php扩展的时候,遇到类似问题,都可以采取上述解决方案。
 
(2)关于php.ini
  楼主一开始修改的是 php编译后目录/lib/php.ini 这个文件,修改之后新增模块并不生效。后来才知道,前面这个是默认(编译时候不指定)的扩展配置目录,如果编译的时候指定了php.ini的目录,以后都需要修改指定目录下的php.ini,例如楼主的是 php编译后目录/php.ini 。
 
(3)调用curl()的php脚本,命令行可以运行,浏览器访问提示如下错误:
  Fatal Error:Call to undefined function curl()
 
原因:
  楼主的服务器是nginx,安装了curl扩展后,没有重启php-fpm导致。
 
解决方法:
  重启php-fpm.
  ps aux | grep php-fpm (找到master进程)
  kill -SIGINT master进程
  进入php-5.5.3/sbin,执行  ./php-fpm(启动)

Linux 编译安装 php 扩展包 curl的更多相关文章

  1. Linux下单独编译安装PHP扩展包

    首先进入PHP源码目录,比如这个: root@vultr:~/php-/ext/soap# 运行下PHP目录下的phpize,接着就可以和普通代码一样,配置,编译,安装了(注意:有些库可能可以配置参数 ...

  2. Linux编译安装源码包的流程

    流程: 1.  下载并解压源码包2.  运行:configure3.  编译:make4.  安装:make install 编译时需要注意一个原则:不要在解压的包中直接执行./configure.m ...

  3. (转载)Linux如何编译安装源码包软件

    一.什么是源码包软件: 顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件最常见:在国内源可见的软件几乎绝迹:大多开源软件都是国外出品:在国内较为出名的开源软件有fcitx;l ...

  4. ffmpeg安装之linux编译安装

    转发自白狼栈:查看原文 关于ffmpeg的安装,有的人可能要折腾很久,甚至折腾一个礼拜,究其原因,基本都是编译安装惹的祸. 我们提供4种安装方式,最复杂的莫过于centos7上的编译安装. ffmpe ...

  5. 【转】如何编译安装PHP扩展

    本文参考 一开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装. 安装PHP扩展最简单的办法就是 sudo apt-get install php5-xxx ...

  6. linux 下安装php扩展

    linux下安装php扩展 步骤: 1.在扩展解压包目录执行 phpize 2.执行 ./configure --with-php-config=/usr/local/php/bin/php-conf ...

  7. Linux编译安装Apache+PHP

    Linux编译安装Apache+PHP 来自:自学it网,http://www.zixue.it/. 1]编译安装Apache+PHP 1.安装程序依赖库和开发环境   为了省事把所需要的库文件全都安 ...

  8. 【转】linux 编译安装nginx,配置自启动脚本

    linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...

  9. linux 编译安装nginx,配置自启动脚本

    本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装nginx,记录下安装过程: 参照这篇文章:Linu ...

随机推荐

  1. oracle查看表空间下数据文件

    下面两个数据字典视图就知道了.查看有哪些表空间:select * from dba_tablespaces;查看有哪些数据文件在哪个表空间中:select * from dba_data_files; ...

  2. js 原型 对象篇

    一切皆对象 js中  值类型就不是对象  剩下的都是对象(也就是引用类型) typeof()运算符 判断四种值类型 typeof 10; --> Number  ||   typeof &quo ...

  3. Python 中if的使用

    reference  : https://docs.python.org/3/reference/expressions.html#conditional-expressions 6.11. Cond ...

  4. python---进程与线程

    进程和线程 什么是线程(thread)什么是进程 线程:操作系统能够进行运算调度的最小单位.它被包含在进程中,是进程中的实际运作单位.是一串指令的集合 一个线程指的是进程中一个单一顺序的控制流,一个进 ...

  5. android 页面的切换

    startActivity后加:IntentHelper.jump(mContext, MyBalanceActivity.class);activity.overridePendingTransit ...

  6. 我的踩坑之旅-跨域问题引发bug

    场景: 由于业务原因需要在请求中添加一个信息表明请求的source,经过一轮方案的评审,大家共同决定把这source信息存放在消息header中.前端小伙伴听完之后心里暗自偷笑:就一行的代码的事,请求 ...

  7. js控制滚动条滑动

    window.scrollTo(0,document.body.scrollHeight);或者通过设置Location的hash属性参见:http://www.cnblogs.com/oospace ...

  8. 2.Ray-消息发布器与消息存储器

    消息发布器: Ray是基于Event Sourcing设计的ES/Actor框架,ESGrain状态(State)的修改.ESGrain之间的通信默认使用RabbitMQ通信.消息的发布器主要是Rab ...

  9. Could note find result map com.xxxx.entity.UserAccountDO

    原因: insert语句的标签写错:应该是parameterType,而不应该是resultType

  10. C#基础拾遗系列之一:先看懂IL代码

    一.前言 首先,想说说为什么要写这样系列的文章,有时候在和同事朋友聊天的时候,经常会听到这样的话题: (1)在这家公司没什么长进,代码太烂,学不到东西.(你有没有想想框架为什么这样写,代码还可以怎么去 ...