Board logo

标题: [教程] 为php添加模块的方法 [打印本页]

作者: admin    时间: 2012-7-20 09:06     标题: 为php添加模块的方法

默认安装,PHP里只是安装了一些常用或基本的模块,其它的要用时再添加就可以的
这里模块分两种
一种是php自带的模块,也就是源码里就有,不用下载
一种是要另外下载的安装模块,如
http://www.wdlinux.cn/bbs/thread-4-1-1.html

这里只介绍,在PHP自带的模块
比如SOAP

首先,确定之前有下载的一键包,如果没有,先下载(也可以单独下载PHP软件包)
wget http://dl.wdlinux.cn:5180/lanmp_last.tar.gz
tar zxvf lanmp_last.tar.gz
cd lanmp
tar zxvf php-5.2.17.tar.gz
cd php-5.2.17
cd ext/soap
/www/wdlinux/php/bin/phpize

./configure --with-php-config=/www/wdlinux/php/bin/php-config
make
make install


echo 'extension=soap.so' >> /www/wdlinux/etc/php.ini

然后重起下服务
service httpd restart
or
service nginxd restart

其它所有的模块,参考这两个例子即可完成安装
作者: 藤真    时间: 2012-7-20 16:01

看过,等遇到的时候再来弄!!
作者: workgang    时间: 2012-9-18 17:51

本帖最后由 workgang 于 2012-9-18 17:52 编辑

您好

echo 'soap.so' >> /www/wdlinux/etc/php.ini

您这句话,错了吧。应该是:  echo 'extension=soap.so' >> /www/wdlinux/etc/php.ini

另外: 我看 php.ini 里面 extension_dir = './';   请问这个路径是指什么地方?

我编译好的扩展应该放到哪个目录呢?

谢谢管理员。
作者: admin    时间: 2012-9-18 23:43

是错了
这个才是对的
echo 'extension=soap.so' >> /www/wdlinux/etc/php.ini

PHP模块的默认目录
/www/wdlinux/php/lib/php/extensions
作者: workgang    时间: 2012-9-19 21:04

管理员
PHP模块的默认目录
/www/wdlinux/php/lib/php/extensions
里面默认就是  no-debug-non-zts-20060613  no-debug-zts-20060613 这2个文件夹。
编译后的模块保存在 no-debug-non-zts-20060613 里面
可是重启web后, 会提示无法加载 模块。

Starting php_fpm PHP Warning:  PHP Startup: Unable to load dynamic library './pcntl.so' - ./pcntl.so: cannot open shared object file: No such file or directory in Unknown on line 0
done
作者: workgang    时间: 2012-9-19 21:14

我自己修改 php.ini 指定一个目录。然后将 XXX.so 放进去。 是可以正常工作的。
我想知道 wdlinux 是如何设置 ? 如何运作的。 谢谢您。
作者: admin    时间: 2012-9-19 23:46

回复 5# workgang


   确定有这个*.so文件?
作者: admin    时间: 2012-9-19 23:46

回复 6# workgang


   这个是PHP的,本身都一样的,wdlinux和其它linux并无区别
作者: zhao2002yf    时间: 2012-11-23 22:50

这个lamnp_last.tar.gz里面是不是包含php里很多的扩展插件?
作者: happyboy    时间: 2013-3-25 11:56

回复 9# zhao2002yf


    是的,包含了一些附加模块
作者: binq    时间: 2013-6-18 16:46

本帖最后由 binq 于 2013-6-18 16:49 编辑

tar zxvf lanmp_last.tar.gz
cd lanmp
tar zxvf php-5.2.17.tar.gz
cd php-5.2.17
cd ext/soap

这里面 lanmp根本就找不到啊
php-5.2.17里面也没有 ext/soap
是怎么回事呢?
QQ截图20130618164750.png
extensions 里面也没有soap相关的东西

图片附件: QQ截图20130618164750.png (2013-6-18 16:48, 1.82 KB) / 下载次数 16771
http://wdlinux.cn/bbs/attachment.php?aid=3098&k=0dfb72c7c975efafad4c462abd40a001&t=1732526762&sid=6e6847


作者: aGhOsT    时间: 2013-6-25 15:48

[root@localhost soap]# make install
Installing shared extensions:     /www/wdlinux/apache_php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613/
[root@localhost soap]# echo 'extension=soap.so' >> /www/wdlinux/etc/php.ini
[root@localhost soap]# service httpd restart
Stopping httpd: [  OK  ]
Starting httpd: [  OK  ]

这些步骤都正常。可是 phpinfo 就是没有soap 什么情况啊?
作者: admin    时间: 2013-6-25 17:14

在phpinfo里看下,php.ini文件是在哪个路径的
作者: shenyukun    时间: 2014-2-5 23:11

wget http://cn2.php.net/distributions/php-5.3.27.tar.gz

/usr/local/php/bin/
./configure --with-php-config=/usr/local/php/bin/php-config
作者: ahjar    时间: 2014-3-7 15:19

本帖最后由 ahjar 于 2014-3-13 15:25 编辑

刚解决这个问题,与admin老师的方法有两个地方出入,一起探讨:

1、编译命令最后增加 --enable-soap
  1. ./configure --with-php-config=/www/wdlinux/php/bin/php-config --enable-soap
复制代码
2、编辑文件 /www/wdlinux/etc/php.ini
把 extension_dir = "./" 改成
  1. extension_dir = "/www/wdlinux/apache_php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613/"
复制代码

作者: dingxuanhua    时间: 2014-8-21 03:27

找了这么久,擦
作者: tangniyuqi    时间: 2015-8-16 18:48

我怎么始终编译不成功啊,步骤都一模一样
@admin 是不是我因为我是php6呢???
作者: wdcpma    时间: 2015-11-6 17:26

回复 1# admin

好像少了这二个步骤  我亲测 没有这二个 SOAP 模块加载不出来 谢谢
     编辑php.ini文档,设置extension_dir的目录,将编译好的扩展文件复制到extension下面

将extension_dir = "./" 改成  extension_dir = "/www/wdlinux/php/lib/php/extensions"

cp soap.so /www/wdlinux/php/lib/php/extensions




欢迎光临 WDlinux官方论坛 (http://wdlinux.cn/bbs/) Powered by Discuz! 7.2