环境:
- CentOS Linux release 7.4.1708
- php-7.2.13
操作步骤
源码编译PHP,添加OpenSSL支持
先看一下:
1 | ./configure -h | grep openssl |
好几个配置项,看起来很迷糊,不知道该用哪个。打印help全文看下上下文
1 | ./configure -h |
FTP,SNMP两个模块都需要OpenSSL代码,所以在各自的模块命令下分别又列了一遍,其实没有本质区别
那么,with-openssl=DIR 和 with-openssl-dir=DIR 的区别是什么,到底该用那个。经测试发现:
with-openssl=DIR的作用有两个:
- 标志编译OpenSSL
- 指定OpenSSL目录
with-openssl-dir=DIR 的作用只有一个:
- 指定OpenSSL目录
由此可知, with-openssl-dir 用于指定代码目录,比如只编译FTP不编译OpenSSL时就只用 with-openssl-dir,而当需要编译OpenSSL模块时,需要 with-openssl。
为什么不指定路径,OpenSSL模块也可以编译成功,比如1
./configure --with-openssl
查看 ./configure 文件,原来文件里提供了默认的 OpenSSL 路径1
93237 PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
所以在命令行中不提供目录,只要目录默认安装也可编译成功,也算是”源码之前,了无秘密”。