原文链接
http://php.net/downloads.php (相应PHP版本下载),例如我下载的PHP版本是php-5.6.6
1、首先确定LINUX下已安装的PHP版本,因为不同PHP版本对于追加动态模块有兼容性问题(可能路径,配置?其他?),往往报错不能安装,追加的模块必须版本一致。
查看PHP版本有多种方法:
①运行php -v
②在已安装好的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
/php-5.6.6/ext/openssl 进入源码包的OPENSSL模块文件夹
#/usr/local/bin/phpize 注意这个是已安装好的PHP路径
如出现以下错误:Cannot find config.m4.
*****************************************
解决方法:
查看源码包OPENSSL文件夹下是否有config0.m4,如果有可执行,
#mv config0.m4 config.m4
4、进入最后的编译阶段了,我编译时是比较顺利的(有时ERROR如果出现,我也不好做阐述,只能靠自己查看errorlog日志了)
#./configure --with-openssl --with-php-config=/usr/local/bin/php-config(注意:这个参数后的是你本机已安装好的PHP路径)(我的注解,这里我会出现./configure
not recoginized option --with-php-config, 运行./configure
--help之后发现没有--with-php-config这个参数,所以我觉得这里可以去掉--with-php-config=的这个参数)#make
#make test (测试编译结果)
#make install
当成功时会返回成功信息(注意查看,SO文件的所在位置):
Installing shared
extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
这个目录下会生成openssl.so文件
(我自己注明:经过以上操作,并没有生成openssl.so模块文件。
最后进入php的源文件目录/php-5.6.6/ext/openssl/, 然后在这个目录下运行 ./configure , make
, make install ,这次才在/usr/local/lib/php/extensions/no-debug-non-zts-20131226/
下生成了openssl.so模块文件。)
动态模块追加编译已全部完成了。。。。
5, 最后就是要PHP支持加载这些追加的动态模块了,vi编辑PHP下的配置文件php.ini。
#vi /usr/local/lib/php.ini
进入编辑器后可以看到PHP的所有相关配置,查找extension_dir这个配置的选项,
vi后可直接‘/extension_dir '查找,找到后可能是这样的:
extension_dir = "./"
需修改成:
extension_dir
= "/usr/local/lib/php/extensions/no-debug-non-zts-20131226/" (注意是so文件的所在)
extension=openssl.so (so模块文件名)
最后保存退出! :wq!
接着就是重启 apache服务器了!(有说人不用,但也就一个命令,我觉得配置好重启还是安心点!)
可以用命令查看下PHP的运行加载: php -m|grep
openssl(路径啥的我就不说了,就是安装好的PHP路径就是了)
出现的信息可能会出现一些错误,但都是没关系的:类似找不到什么DLL文件啊(openssl.dll之类的),别管他,DLL是WINDOWS主机服务器模块加载的类型,UNIX和LINUX是以SO为模块加载名的!
原文链接:
安装mcrypt模块的过程和上面那个很像,如果用
cd php-5.6.6/ext/mcrypt/
phpize
./configure
会出现错误提示,"checking for mcrypt support... yes, shared
configure: error: mcrypt.h not found. Please reinstall
libmcrypt."
根据上面链接的文章的指导,重新下载安装libmcrypt.
wget
ftp://rpmfind.net/linux/epel/6/i386/libmcrypt-devel-2.5.8-9.el6.i686.rpm
sudo rpm -ivh libmcrypt-devel-2.5.8-9.el6.i686.rpm
cd php-5.6.6/ext/mcrypt/
phpize
sudo ./configure --with-php-config=/usr/local/bin/php-config
sudo make
sudo install
用命令ls /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
可以查看到mcrypt.so模块已经生成在该目录下了。