CentOS下php加扩展功能

110 篇文章 1 订阅
首先使mcrypt软件能够运行,然后安装php扩展模块,并在php.ini配置。

这里注意的是mcrypt软件依赖libmcrypt和mhash两个库,所以安装配置顺序从右至左

I 下载安装mcrypt

1.先去http://www.sourceforge.net 下载Libmcrypt,mhash,mcrypt安装包 ,下面是我找到的链接

Libmcrypt(libmcrypt-2.5.8.tar.gz ):http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459

mcrypt(mcrypt-2.6.8.tar.gz ):

http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101

mhash(mhash-0.9.9.9.tar.gz ):http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636

2 .先安装Libmcrypt

#tar -zxvf libmcrypt-2.5.8.tar.gz

#cd libmcrypt-2.5.8

#./configure

#make

#make install

说明:libmcript默认安装在/usr/local/lib

3.安装mhash

#tar -zxvf mhash-0.9.9.9.tar.gz

#cd mhash-0.9.9.9

#./configure

#make

#make install

4.安装mcrypt

#tar -zxvf mcrypt-2.6.8.tar.gz

#cd mcrypt-2.6.8

#LD_LIBRARY_PATH=/usr/local/lib ./configure

#make

#make install

说明:由于在配置Mcrypt时,会找不到libmcrypt的链接库,导致无法编译,因为Libmcrypt的链接库在/usr/local/lib/文件夹 下。因些在配置mcrypt时要加入LD_LIBRARY_PATH=/usr/local/lib导入键接库

II. 安装PHP扩展模块

接着就要为PHP添加mcrypt模块了

1. 静态编译

在任意PHP文件中加入函数 phpinfo(),即可取得目前PHP的配置
在这些配置后面新增需要加入的配置:’–with-mcrypt=/usr/local/include’
然后进入php源代码目录,执行这条完整的configure命令

配置完成,下面进行源码包的制作和安装

make clean (一定需要)
make
make install

2. 动态加载【推荐】
使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,于是可以采 用phpize。方法是:

要有与现有php完全相同的php压缩包 。 我用的是php-5.2.6.tar.gz。 展开后进入里面的ext/mcrypt目录 (里面是mcrypt的php扩展),然后执行/usr/local/php/bin/phpize。phpize是安装php时安装好的一个工具,如果 你的机器没有安装phpize工具,那么可能还是要make,make install php,这仅仅为了得到phpize.

执行完后,会发现当前目录下多了一些configure文件, 如果没报错,则根据提示运行

./configure –with-php-config=/usr/local/php/bin/php-config

注意要先确保/usr/local/php/bin/php-config存在。

make

make install

make install 之后 系统会提示你mcrypt.so文件所在的目录。根据php.ini中指示的extension_dir指向的目录中, 将其复制过去 (或把=后面的路径改为make install结果提示的那个路径 如:/usr/local/services/php-5.3.5/lib/php/extensions/no-debug-non-zts-20090626/)。修改php.ini,在最后添加一句extension=mcrypt.so

最后重启apache服务chakan PHPINFO即可


我在安装magento的时候遇到了系统需要的扩展没有安装

1、mcrypt
2、pdo_mysql
3、curl
.....
其实,基本上大部分扩展 在php的源码安装包里面都是有的(在ext/里面的).
添加扩展的基本步骤:
1、进入到安装包文件夹你要添加的扩展ext/../里面.比如要添加mcrypt扩展,就进入ext/mcrypt里面。example:[root@localhost ~]# cd /usr/local/src/php-5-2-13/mcrypt/
2、调用你已经编译好的php里面的phpize.example:[root@localhost mcrypt]# /usr/local/php/bin/phpize
3、然后configure. example:[root@localhost mcrypt]# ./configure --with-php-config=/usr/local/php/bin/php-config
4、make ,make install
5、 修改 php.ini
加入 extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/扩展名
     example: extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/mcrypt.so
6、重启apache (apache/bin/apachectl -k restart)

大功告成!


注:pdo_mysql扩展安装的配置参数
./configure –with-php-config=/usr/local/php5/bin/php-config –with-pdo-mysql=/usr/local/mysql

还有另一种方法

本次编译只是单独编译php的扩展库,然后将编译好的php扩展库加到现在运行的php中,不对现在运行的php重新编译,所以对现在运行的php没有任何影响。

假如原先编译的php目录在/usr/local/php4目录下;apache在/usr/local/apache2目录下;php源代码在/home/php-4.4.7目录下。如果实际目录与假定的目录不一致,则在下面的命令中做调整。

1. 找到当前运行的php版本的源代码目录,如 php-4.4.7。进入curl扩展库目录。
$cd /home/php-4.4.7/ext/curl

2. 调用phpize程序生成编译配置文件。
$/usr/local/php4/bin/phpize

3. 编译扩展库,分别执行下面的configure和make命令。
$./configure -with-php-config=/usr/local/php4/bin/php-config
##configure这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
$make
##make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,
    如 /home/php-4.4.7/ext/curl/modules/curl.so

4. 配置php.ini文件
##将编译好的扩展库文件复制到apache2 modules目录下。
$cp /home/php-4.4.7/ext/curl/modules/curl.so /usr/local/apache2/modules/.
##可以通过查看phpinfo信息来确定php.ini文件位置,然后编辑。
##在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下。
   extension_dir = “/usr/local/apache2/modules/”
##在php.ini的添加扩展库位置,设置要添加的扩展库。
   extension=curl.so
##以后如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copy到apache2 modules目录下,
##然后再在这个位置,添加一行将编译后的扩展库文件名加上即可。

5. 重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值