本文主要是介绍用phpize自编译php模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
用phpize自编译php模块
在用Mac的时候,发现系统自己安装了apache和php,配置文件php.ini和apache2都在 /private/etc 下
在cli下用 php -v 显示warming,显示
PHP Warning: Module 'openssl' already loaded in Unknown on line 0
用phpinfo();打印出来后,显示的信息里说明php的模块都安装了,好奇怪,然后去看一下php的扩展库都安装了什么模块
路径如下:
/usr/lib/php/extensions/no-debug-non-zts-20121212/
发现原来只有
opcache.a opcache.so xdebug.so
三个文件(unix的模块都是.so结尾,win下的都是.dll),于是我以为是模块缺少了。然后行吧,给动态编译一下openssl.so应该总可以了吧
- 先下载一个php的源码包.tar.gz,跟系统的版本号一致
解压后进入 /etc 目录下找到 ./openssl
phpize //命令生成 configure,期间报错,说unfound autoconfig 去下载一个就可以了 brew install autoconfig
./configure --with-openssl --with-php-config=/usr/bin/php-config
//期间会发现各种....no,按照提示,把各种依赖库都给装上,这里折腾了半天,安装了re2c,pkg-configd等等,还有就是mac命令行xcode安装模块编译的时候并不知道openssl命令,老是报错configure: error: Cannot find OpenSSL's <evp.h>,具体的做法是,找到openssl安装目录下的include目录,将其copy到/Library/Developer/CommandLineTools/usr/include下,我是用 brew 进行安装的,软件包所有都安装在了 /usr/local/opt/ 下
完成后显示:
creating libtool
appending configuration tag “CXX” to libtool
configure: creating ./config.status
config.status: creating config.h
编译:
make
安装:
make install
然后再 ./openssl/modules 模块文件夹下发现:
openssl.so
尼玛的终于搞定了,感觉就像合成装备一样。。。。
赶紧放入 /usr/lib/php/extensions/no-debug-non-zts-20121212/ 下
php.ini里的注释去掉;
命令行运行 php 发现:
PHP Warning: Module ‘pdo_mysql’ already loaded in Unknown on line 0
原来php已经安装过了这个模块。好吧,白费了这么久的功夫,不过也还是有收获,玩了一下动态编译php模块,但是工作中快速搭建还是使用mamp之类的集成工具吧
这篇关于用phpize自编译php模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!