LINUX下PHP编译添加相应的动态扩展模块so(不需要重新编译PHP,以openssl.so为例)

本文转自:原文链接  http://www.cnblogs.com/doseoer/p/4367536.html

网上我看到有很多相关的文章都是简述这个问题的,但毕竟因为LINUX版本众多,很多LIUNX命令或路径都有所差别,有时同样的命令却不能执行一样的操作。

这篇文章是我在实际运用当中配置成功的实例,希望对大家有所帮助,开源是来自每个人的无私帮助,每个人的成长都是需要别人的扶植!废话就说到这了!

http://php.net/downloads.php  (相应PHP版本下载)

1、首先确定LINUX下已安装的PHP版本,因为不同PHP版本对于追加动态模块有兼容性问题(可能路径,配置?其他?),往往报错不能安装,追加的模块必须版本一致。

查看PHP版本有多种方法:

①运行php -v(但在我的64位LIUNX测试过没作用,原因你知道的了!)

②在已安装好的PHP路径下找到php-config并进行查看,可以vi或cat (关键字:version="XXXXXXX"为PHP版本号)

vi 或cat php-config

2、下载好的PHP源代码包需人工上传到FTP网络服务器上,这时你的tar包可能只是放在WWW下,为了你自己方便查找和使用,建议建立自己的source文件夹进行存放。

建立文件夹:mkdir XXXXXX(文件夹名)

移动或复制文件:mv或cp php.tar /sourece(注意路径,”/“我是在根目录下创建的临时文件夹!)

解压tar包:tar zxfv php.tar(源代码tar包)

3、现在进入正题了,以追加动态模块openssl.so为例,进入PHP源码文件夹后,执行phpize生成configure进行模块追加:

#cd /source/php/ext/openssl    进入源码包的OPENSSL模块文件夹

#/var/www/php/bin/phpize     注意这个是已安装好的PHP路径(有些是版本可能是在/usr/local/******下,每个人的安装习惯不同)

如出现以下错误:Cannot find config.m4. *****************************************

解决方法:

查看源码包OPENSSL文件夹下是否有config0.m4,如果有可执行,
#mv config0.m4 config.m4

4、进入最后的编译阶段了,我编译时是比较顺利的(有时ERROR如果出现,我也不好做阐述,只能靠自己查看errorlog日志了)

#./configure --with-openssl --with-php-config=/var/www/php/bin/php-config(注意:这个参数后的是你本机已安装好的PHP路径)
#make

#make test (测试编译结果)

#make install

当成功时会返回成功信息(注意查看,SO文件的所在位置):

Installing shared extensions:     /usr/lib/20060613/(这路径是我虚拟的,正确请自己查找,会生成openssl.so文件)

一般规范点的话,会把追加的SO模块放在一个指定的文件夹里,就在PHP安装好的目录下的extensions文件夹内

#mv /*****/*****/openssl.so /var/www/php/lib/php/extensions

动态模块追加编译已全部完成了。。。。

最后就是要PHP支持加载这些追加的动态模块了,vi编辑PHP下的配置文件php.ini。

#vi /*******/*******/php.ini

进入编辑器后可以看到PHP的所有相关配置,查找extension_dir这个配置的选项,

vi后可直接‘/extension_dir '查找,找到后可能是这样的:

extension_dir  = "./"

需修改成:

extension_dir  = "/var/www/php/lib/php/extensions/"   (注意是so文件的所在)

extension=openssl.so   (so模块文件名)
最后保存退出! :wq!

接着就是重启 apache服务器了!(有说人不用,但也就一个命令,我觉得配置好重启还是安心点!)

可以用命令查看下PHP的运行加载:    /var/www/php/bin/php -m|grep openssl   (路径啥的我就不说了,就是安装好的PHP路径就是了)

出现的信息可能会出现一些错误,但都是没关系的:类似找不到什么DLL文件啊(openssl.dll之类的),别管他,DLL是WINDOWS主机服务器模块加载的类型,UNIX和LINUX是以SO为模块加载名的!

时间: 2024-11-04 17:40:19

LINUX下PHP编译添加相应的动态扩展模块so(不需要重新编译PHP,以openssl.so为例)的相关文章

linux下查看和添加PATH环境变量

linux下查看和添加PATH环境变量 $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑你的 PATH 声明,其格式为: PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N> 你可以自己加上指定的路径,中间用冒号隔开.环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$ sourc

Linux下为PHP添加扩展库

例子:添加mbstring扩展库 1. 进入PHP源码目录(没有源码的可以先用命令:# php -v 查看版本号,然后上PHP官网下载源码) 2. 进入PHPi源码下的FTP扩展库的目录: # cd [Your PHP Source Folder]/ext/mbstring 3. 使用 phpize 命令生成配置文件: # phpize 4. 执行configure: # ./configure --with-php-config=/usr/local/php/bin/php-config  (

Linux下设置静态IP和获取动态IP的方法

Linux下为机器设置静态IP地址: vim  /etc/sysconfig/network-scripts/ifcfg-eth0 修改这个文件内容如下形式: # Intel Corporation 82541GI Gigabit Ethernet Controller DEVICE=eth0 BOOTPROTO=static    #为静态的 HWADDR=00:15:17:B2:DC:B5 ONBOOT=yes IPADDR=10.20.134.199 #这个是设置的静态IP地址 NETMA

Linux下crontab命令添加Kettle作业定时任务

1. 确保作业 $KETTLE_HOME/kitchen.sh -file=/data1/testdata/testkjb.kjb 或转换 $KETTLE_HOME/pan.sh -file=/data1/testdata/testktr.ktr 能在Linux下正常执行 此步骤在JDK配置正确,(Ps.可选择配置Kettle的环境变量,主要是定位程序所在主目录,不用每次引用绝对路径), 当前用户拥有对应*.sh文件有执行权限的情况下,很少有其它问题. 2.编写执行Kettle作业或转换的exe

Linux 下 Sublime Text 添加 InputHelper 插件输入中文

Linux 下的 Sublime Text 不支持中文输入,我也是醉了. 网上找了一些方法,都没有成功,最后就用 InputHelper 折中一下了,虽然麻烦,但好歹能写中文了. InputHelper 因为是以弹出个窗口方式输入,所以理论上支持系统所使用的所有中文输入法. 安装方法: $ cd ~/.config/sublime-text-3/Packages $ git clone https://github.com/xgenvn/InputHelper.git 或者 去下载 InputH

Linux下查看和添加环境变量

转自:http://blog.sina.com.cn/s/blog_688077cf01013qrk.html $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑你的 PATH 声明,其格式为: PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N> 你可以自己加上指定的路径,中间用冒号隔开.环境变量更改后,

linux下PHP手动添加扩展库

1.进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块: cd curl 执行phpize生成编译文件,phpize在PHP安装目录的bin目录下 /usr/local/php/bin/phpize 运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set c

Linux下将用户添加到sudoers中

Linux默认是没有将用户添加到sudoers列表中的,需要root手动将账户添加到sudoers列表中,才能让普通账户执行sudo命令. root 账户键入visudo即可进入sudo配置,这个命令要比vim /etc/sudoers要好很多,因为使用visudo进行sudo配置,将会得到很多提示. 键入visudo后,在编辑器下键入 /root 寻找root,找到第三个root的那一行 root    ALL=(ALL)       ALL 按yyp键复制并在粘贴在下一行,在这一行的 roo

linux下php5.4添加memcache扩展

一.Memcache简介 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力.它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached管理这些HashTable,所以速度非常快. 二.Memcache和memcached的区别 为什么会有Memcache和memcached两种名称?其实Memcache是