要记住教训,由于在配置环境前没有和相关人员沟通好使用什么模块 ,所以开始了我的杯具添加扩展历程:
一、添加FTP扩展
1、找到原来的源码包解压一下
如:php-5.2.13
进入到到FTP的扩展目录/home/redhat/php-5.2.13/ext/ftp
2、调用phpize程序生成编译配置文件
root@dns ftp]# /usr/local/php5/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
3. 编译扩展库,分别执行下面的configure和make命令。
#./configure --with-php-config=/usr/local/php5/bin/php-config
#configure这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
#make
#make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,
[root@dns ftp]# cd modules/
[root@dns modules]# ls
ftp.la ftp.so
4、编辑php.ini文档,找到extension_dir的目录,将编译好的扩展文件复制到extension下面
找到第491行看到 extension_dir = "/usr/local/php5/lib/php/extension"
[root@dns modules]#cp ftp.so /usr/local/php5/lib/php/extension
5、在php.ini的添加扩展库位置,设置要添加的扩展库。
在612处添加 extension=ftp.so
6、重启一下apache 就可以得到ftp的支持了
==================================================================
二、添加zlib扩展
1、[root@dns zlib]# pwd
/home/redhat/php-5.2.13/ext/zlib
2、[root@dns zlib]#mv config0.m4 config.m4
3、[root@dns zlib]#/usr/local/php5/bin/phpize
4、[root@dns zlib]#./configure --with-php-config=/usr/local/php5/bin/php-config
5、[root@dns zlib]#make
6、[root@dns zlib]# cp modules/zlib.so /usr/local/php5/lib/php/extension/
7、[root@dns zlib]#vi /usr/local/php5/lib/php.ini
添加extension=zlib.so
8、重启apache就可以了
下面转载了网友的几篇添加php扩展到文章;
Linux下为PHP添加扩展库 - [php]
用源码安装好mysql5之后,发现原来在Linux想为php添加新扩展,不像在windows上面,去掉分号注释就行了的~
在网上查询了很多资料,终于搞定,特写日记以示祝贺。
添加扩展的基本步骤:
1、进入php源代码目录:# cd /usr/ChenShao/php-5.3.1/
2、再进入要添加的mysql扩展源码目录:# cd ext/mysql/
2、调用已经编译好的php里面的phpize:# /usr/local/php5/bin/phpize
3、然后configure:# ./configure --with-php-config=/usr/local/php5/bin/php-config --with-mysql=/usr/local/mysql
(/usr/local/mysql 为mysql的安装目录)
4、make && make install
5、编译之后,自动把mysql.so放到了默认的php扩展目录下(phpinfo可查看,我的为 /usr/local/php5/lib/php/extensions/no-debug-zts-20090626),再修改php.ini,去掉;extension=php_mysql.so前 面的分号。
不过有一点需要注意的是,生成的模块名叫mysql.so, 跟php.ini里面的php_mysql.so名字不 一致,必须把mysql.so改名为php_mysql.so,切记切记~!
6、重启apache:# service httpd restart
特别注意:如果第3步通过了,但第4步报错,很有可能是源代码的 问题,我是从php.net新下载了一份之后,再来编译才通过的。