在php编译安装好的情况下php扩展编译

php的很多模块都是以php的扩展形式来进行的。所以在php安装好的环境下需要用到之前安装时没有编译安装的php扩展的时候,这个时候编译安装php扩展就显得尤为的重要,因为不可能再次编译安装php环境。


一、在windows下编译安装php扩展:
1、使用phpinfo()函数来查看当前编译php的环境使用的编译器选择合适的扩展包:

Compiler MSVC9 (Visual C++ 2008)

2、查看扩展使用的是TS/NTS  VC9也是选择合适的编的扩展包 

Zend Extension Build API220100525,TS,VC9

3、php的版本信息

4、根据上面3项的信息到官方下载.dll扩展包
5、将下载后的.dll文件复制到php的扩展目录中,这个信息也是可以通过phpinfo()函数来查看的。

extension_dir c:/wamp/bin/php/php5.4.12/ext/ c:/wamp/bin/php/php5.4.12/ext/

6、修改php的配置文件(php.ini)

extension=*.dll
【注意】很多时候,我们修改完配置文件之后重新启动Apache后还是不管用,甚至是删除php的配置文件还是没有出现任何问题,这个时候我们应该想到我们修改的加载的配置文件是不是有问题,因为在安装的时候,配置文件可能会出现修改。这个时候最权威的就是查看php的信息phpinfo();

Loaded Configuration File C:\wamp\bin\apache\apache2.4.4\bin\php.ini

7、以上6部完成之后记得重新启动服务,加载php




二、Linux下编译安装php扩展
1、可以根据上述信息选择合适的源码包,这个要求不是很严格。
2、下载后的扩展包中没有configure文件,这个时候就是要自己用php生成
运行:/usr/local/php/bin/php.ize
这样就会生成comfigure文件
3、配置
因为每个软件的配置都可能不一样,这个时候就需要根据具体的情况来进行配置
./configure --help来获取配置信息,在配置的时候,出现什么问题就用这个命令获取帮助,在进行配置。这个时候基本上也用不上baidu,Google了,实在不行可以Google获取帮助。
注意:一般要配置--with-php-config=/usr/local/php/bin/php.config
4、编译make
5、安装make install(这个时候会出现安装后的.so文件目录)
6、修改配置文件
extension=make insall 安装后的.so文件目录如下面:
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so

7、重新启动服务(如果是nginx记得重新启动php进程)


编译php扩展的更多相关文章

  1. Memcached 笔记与总结(2)编译 php-memcache 扩展

    环境:CentOS 6.6 + Apache 2.2.21 + PHP 5.3.10 php-memcache 是 php 写的 memcached 的客户端,以扩展的形式发布. 对于正在运行的 ph ...

  2. windows平台使用Microsoft Visual C++ Compiler for Python 2.7编译python扩展

    在windows平台上安装python c extension的扩展包是件很痛苦的事情,一般通过安装vc/vs系列来编译C扩展,不过安装包都比较大.或者通过mingw编译,不过有时会在兼容性上出现点问 ...

  3. PHP7 学习笔记(九)phpsize动态编译openssl扩展 (微信公众平台)

    先吐槽,微信公众平台授权出问题了,尽然访问不了 一.问题描述: 使用PHP中的库函数file_get_contents时出现Unable to find the wrapper "https ...

  4. php编译安装扩展redis及swoole

    一.安装redis扩展 下载redis扩展包以及解压 wget https://github.com/edtechd/phpredis/archive/php7.zip unzip php7.zip ...

  5. 编译PHP扩展的方式

    编译的两种方式其实很简单,这里记录只是为了以后遇到这种情况时不加思索地运用上,而不是花费一些时间去回忆. C/C++程序编译有两种方式:动态编译.静态编译.PHP 是使用 C/C++程序开发的一门脚本 ...

  6. Hawk 6. 编译和扩展开发

    Hawk是开源项目,因此任何人都可以为其贡献代码.作者也非常欢迎使用者能够扩展出更有用的插件. 编译 编译需要Visual Stuido,版本建议使用2015, 2010及以上没有经过测试,但应该可以 ...

  7. 用pecl/pear独立编译PHP扩展 vs. 把扩展编译到PHP内核中

    将扩展编译到php内部的方式会提高php运行扩展的效率,但是每次需要新添加扩展时都需要把php以及之前添加的所有扩展重新编译一边,非常麻烦. 独立编译扩展,php外部调用扩展的方式虽然会牺牲一点点的性 ...

  8. windows 下编译php扩展库pecl里的扩展memcache

    Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内 ...

  9. 编译PHP扩展amqp & php消息队列 rabbitmq

    首先介绍下AMQP: AMQP——高级消息队列协议,目前比较有名气的实现大概就是大名鼎鼎的RabbitMQ了. RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统.他遵循Mozilla ...

  10. PHP的安装,编译,扩展工具

    1.基本容易混淆的概念 pecl php的社区贡献扩展库,全称为PHP Extension Community Library, 是php的底层库, 使用C语言编写 pear php的应用扩展库,全称 ...

随机推荐

  1. 利用WPF的ListView进行大数据量异步加载

    原文:利用WPF的ListView进行大数据量异步加载 由于之前利用Winform的ListView进行大数据量加载的时候,诟病良多,所以今天试着用WPF的ListView来做了一下,结果没有让我失望 ...

  2. Andrdoid适当的执行行为拦截的应用----从底部C截距

    前一个概要文章称这项研究我的一些主要细节.这里就不在说.但还需要指出的是.关于三大感谢上帝愿意分享知识(在我看来,人们懂得分享和慎重考虑之神,奥地利不一定是技术牛~~) 第一篇:http://blog ...

  3. BIOS 选项设置的含义

    SATA Mode Section: ADHI: Advanced Host Controller Interface - this is a hardware mechanism that allo ...

  4. Java异常处理错误

    Java异常处理错误 研究发现,在编译阶段的最佳时机错误,序之前.然而,编译期间并不能找出全部的错误,余下的问题必须在执行阶段解决.这就须要错误源通过某种方式把适当的信息传给某个接收者,该接收者知道怎 ...

  5. WPF 窗体显示最前端

    原文:WPF 窗体显示最前端 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/jjx0224/article/details/8782845 如何做一 ...

  6. 微信nodejs开发模块指南

    1.微信消息处理 node-weixin-message wechat 2.微信加密 node-weixin-crypto wechat-crypto 3.微信支付 node-weixin-pay w ...

  7. C# 写CSV文件字符串前面0不显示的解决办法

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...

  8. QT 窗体控件的透明度设置(三种方法)

    整个窗体 当设置QT的窗体(QMainWindow, QDialog)时,直接用 targetForm->setWindowOpacity()   函数即可实现,效果为窗体及窗体内所有控件都透明 ...

  9. centos 6.5 搭建ftp 服务器(vsftpd的配置文件说明)

    0x00 如何快速的搭建简易的资源发布站 开启简易的python http服务器 1 2 cd /home/your_path python -m SimpleHTTPServer 8000 开启防火 ...

  10. linux自动挂载远程网盘到本地

    sudo vim /etc/fstab  添加如下内容 //192.168.1.110/MyFiles /path/to/mount cifs username=adminz,password=pas ...