源码编译安装 PHP,请教关于./configure 的问题
背景
- 昨天想转slim框架为lumen 5.3.1版做API开发,lumen官网上标明PHP版本需要>=5.6.4,查了一下PHP官网的稳定版本,主要是5.6.22和7.0.11,于是就下载了PHP 7.0.11的源码版本
- 在
./configure [option]
的时候,以前都是一成不变的复制粘贴,从来没有思考过 ./configure 后面选项的意义,趁这次重新编译安装,正好弄清楚一下
laravel-china官网上目前标明的lumen 5.3.1对PHP版本的要求>=5.5.9是不正确的,php artisan的时候,会无法识别php里面的可变参数
...
语法。昨晚已私聊管理员龙哥,大家也可以注意一下这个PHP新语法
安装细节
我在测试安装php的openssl模块的时候,分别使用了以下方式:
./configure
./configure --with-openssl
./configure --with-openssl=/usr/local
./configure --with-openssl=/usr/local/xxx
结果出现了不同的结果
- 第一种不会安装openssl模块
- 第二种可以正常安装openssl模块
- 第三种可以正常安装openssl模块 ( 我的电脑存在/usr/local/include/openssl/evp.h )
- 第四种会报错:
configure: error: Cannot find OpenSSL's evp.h
(我的电脑/usr/local/xxx是空目录)
问题
由于第二种和第三种都可以安装成功。
- 假设指定了路径是用于调用系统自带的函数库,那为什么我检查./configure文件的源码,源码会判断只有
./configure --with-openssl=shared
和./configure --with-openssl=shared[,path]
才算是调用系统自带的函数库呢? - 假设指定了路径是用于创建不依赖于系统的独立函数库,那为什么第四种方式还是会报错呢?
- ./configure源码里面进行了四种判断,还麻烦大神系统地分析一下这四种情况分别对应什么需求,非常感谢^_^
./configure源码四种判断:
./configure --with-openssl=shared
./configure --with-openssl=shared[,path]
./configure
./configure --with-openssl
附录
./configure文件源码片段:
推荐文章: