文档章节

php不重新编译添加模块 php不重新编译添加模块

j
 jims
发布于 2015/08/16 21:29
字数 645
阅读 81
收藏 0
点赞 0
评论 0
php如何使用第三方软件

本例是: php(mysql_connect()函数)使用mysql(第三方软件). 
 
观察上图,php能使用大量的第三方非php库(典型性是C语言写库), 为了达到此目的,你必须具备两个条件: 
Shell代码
  1. 条件I.  安装第三方库(软件)   
  2. 条件II. 安装了该软件的php扩展  
如果只是安装mysql,满足条件I,但是条件II不满足, 为了满足条件二, 我们需要了解php安装扩展的知识. 
安装php, 大的方面还可以分为两种方式: 
引用
方式1. 将扩展编译到php 
方式2. 将扩展单独编译成动态连接库so文件

方式1的优点是运行速度快,但是为了一个扩展需要重新安装整个php;方式2灵活,但是运行速度稍慢. windows平台下的php程序员大多只熟悉方式2,因为方式2是windows下安装Php扩展的唯一方式. 

之前如果安装了php, 如果没有删除php源码目录,重新进入该目录, 那么此时重新编译运行将 采用增量方式 ,实际上比方式2还更方便些.仍然3步走: 
Shell代码
  1. ./configure --prefix=/my/php --with-mysql   
  2. make   
  3. make install  
有 人质疑: 我安装mysql sdk,./configure命令一个--with-mysql就知道我安装的目录,还是有点神奇,难道他全硬盘搜索.h文件? 不是, 如果你用yum方式安装sdk,那么LD_LIBRARY_PATH系统变量就指示了该sdk相关信息 ,如果你使用源码(tar)安装mysql sdk,你的--with-mysql参数不得不像这样: --with-mysql=/your_mysql_sdk_dir/ 

方式2:

以添加ftp模块为例子

进入源码目次

cd php-5.2.8/ext/ftp
#运行phpize configure

/usr/local/php/bin/phpize

#编译,指定php-config,留意这里的php-config,不是php.ini

./configure --with-php-config='/usr/local/php/bin/php-config'
#上面可以添加--enable-ftp,也可以不消添加

#编译安装     
(留意:假如之前有过添加其他模块肯定 要先 make clean ,不然 编译报错。)

make && make install

#生成一个目录来存放扩展的模块

mkdir /usr/local/php/etc/php/ext

#复制ftp.so到模块目次

cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ftp.so /usr/local/php/etc/ext/

#编辑 php.ini文件,指定PHP到哪个目次读模块

vi /usr/local/php/etc/php.ini

extension_dir="/usr/local/php/etc/ext"
#Load模块
extension=ftp.so
#保存退出

重启apache
再用/usr/local/php/bin/php -m|grep ftp查察 是否有ftp.so

本文转载自:

共有 人打赏支持
j
粉丝 4
博文 109
码字总数 29707
作品 0
合肥
centos6和centos7手动扩展PHP的IMAP模块

一、centos6.7 x64上手动扩展PHP的IMAP模块 1、准备 yum install -y libc-client-devel ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.so ln -s /usr/lib64/libkrb5.so /usr/lib/li......

M四月天
2017/02/10
0
0
Debian5 安装mongodb 以及php的mongodb扩展

debian5 安装mongodb已经相关的php扩展 1 安装编译环境 apt-get install build-essential 2 安装相关头文件 apt-get install libc6-dev 3 在使用php时会发现在当初编译时没有把某个模块编译进...

China_OS
2012/05/28
0
0
不重新编译PHP的情况下独立添加扩展

服务器运行一段时间后,可能突然会需求添加某个扩展,如curl、pdo、xmlrpc等,这就需要在不重新编译PHP的情况下独立添加扩展。 下面以安装curl为例,介绍具体安装步骤。 1.安装crul wget htt...

JasonWung
2016/08/02
15
0
cygwin下编译php和mysql客户端

参考文章: xp下用Cygwin模拟unix编译php和扩展 http://blog.csdn.net/shihongjian001/article/details/5810135 不重新编译php添加扩展模块 http://kerry.blog.51cto.com/172631/291422 (注意......

sdsimple
2011/11/30
1K
0
10. PHP扩展模块安装

[toc] PHP扩展模块安装 下载安装redis redis 在LAMP下,被当作缓存来使用! 1. 下载并切换到指定目录: 2. 生成configure: 有时候安装会出错,缺少一个包autoconf 重新生成configure 3. 编译...

Xavi2017
03/11
0
0
php-7.0.18版本(编译安装)-自定义安装路径

php-7.0.18版本(编译安装)-自定义安装路径 安装路径:/application/php-7.0.18 1.前期准备 安装编译需要的gcc和gcc-c++ yum install -y gcc gcc-c++ php依赖 libxml2-devel、openssl-devel...

CzlunSu
06/26
0
0
FreeBSD下php-mbstring的安装

安装magento,结束了,添加商品时出现Call to undefined function mbconvertencoding()的错误,需要安装php-mbstring模块,位于/usr/port/converters/php5-mbstring;进入这个目录后,直接mak...

SeaJones
2012/03/02
0
0
nginx安装第三方模块

nginx文件非常小,但是性能非常的高效,这方面完胜apache,nginx文件小的一个原因之一是nginx自带的功能相对较少,好在nginx允许第三方模块,第三方模块使得nginx越发的强大. 在安装模块方面,ng...

模范生
2017/02/22
0
0
php添加pcntl扩展(Linux)

pcntl扩展可以支持php的多线程操作(仅限linux) 原本需要重新编译PHP的后面configrue提示加上--enable-pcntl 由于我的php是采用yum安装的,所以不能采用上面的方式 下面介绍一个php动态添加...

Junn
2013/09/02
0
1
Linux系统上把PHP编译进Apache静态内核

一.编译Apache: 进入Apache展开目录; ./configure - -prefix=/usr/local/apache1.3 - -disable-module=all -enable-module=access - -enable-module=log_config -enable-module=dir - -ena......

JavaGG
2009/05/07
464
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring boot中swagger2使用

1.pom.xml中添加 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version>......

说回答
7分钟前
0
0
tomcat虚拟路径的几种配置方法

tomcat虚拟路径的几种配置方法 一般我们都是直接引用webapps下面的web项目,如果我们要部署一个在其它地方的WEB项目,这就要在TOMCAT中设置虚拟路径了,Tomcat的加载web顺序是先加载 $Tomcat_ho...

Helios51
19分钟前
1
0
Mac 安装jupyter notebook的过程

MAC台式机 python:mac下自带Python 2.7.10 1.先升级了pip安装工具:sudo python -m pip install --upgrade --force pip 2.安装setuptools 工具:sudo pip install setuptools==33.1.1 3.安装......

火力全開
25分钟前
0
0
导航守卫解释与例子

“导航”表示路由正在发生改变。 正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。 记住...

tianyawhl
25分钟前
0
0
Java日志框架-logback配置文件多环境日志配置(开发、测试、生产)(原始解决方法)

说明:这种方式应该算是最通用的,原理是通过判断标签实现。 <!-- if-then form --> <if condition="some conditional expression"> <then> ... </then> </if> ......

浮躁的码农
39分钟前
1
0
FTP传输时的两种登录方式和区别

登录方式 匿名登录 用户名为: anonymous。 密码为:任何合法 email 地址。 授权登录 用户名为:用户在远程系统中的用户帐号。 密码为:用户在远程系统中的用户密码。 区别 匿名登录 只能访问...

寰宇01
40分钟前
0
0
plsql developer 配置监听(不安装oracle客户端)

plsql developer 配置监听(不安装oracle客户端)

微小宝
47分钟前
1
0
数据库(分库分表)中间件对比

本人的宗旨就是,能copy的,绝对不手写。 分区:对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm。 根据一定的规则把数据文件(MYD)和索...

奔跑吧代码
51分钟前
2
0
Netty与Reactor模式详解

在学习Reactor模式之前,我们需要对“I/O的四种模型”以及“什么是I/O多路复用”进行简单的介绍,因为Reactor是一个使用了同步非阻塞的I/O多路复用机制的模式。 I/O的四种模型 I/0 操作 主要...

hutaishi
58分钟前
1
0
【2018.07.16学习笔记】【linux高级知识 20.16-20.19】

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

lgsxp
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部