编译php ./configure命令enable和with有什么区别

分享于:2019-01-16 11:43:18
./configure --enable-curl
./configure --with-curl


1.enable和with参数命令有什么区别?

2.如何将扩展编译进php,而不是以.so动态扩展形式存在?

3.哪些扩展是php官方支持的呢?是php源码包ext目录下的就是php官方支持的么?可以编译进php的?

4.使用什么命令将官方支持的扩展编译进php?


回答:


1)enable 是启用 PHP 源码包自带,但是默认不启用的扩展,比如 ftp 和 exif 扩展。with 是指定扩展依赖的资源库的位置,如果是默认位置,就可以留空。


2)php 的扩展分为静态编译和动态编译两种,静态编译就是随着PHP的源码一起编译安装,也就是 --enable 和 --with 启用的扩展。动态编译就是在一个已经可以使用的 PHP 环境下,使用 phpize 命令来给 php 增加扩展的方式,这种方式就是生成的 so 文件。所以想要把扩展编译进 php 内核,就需要和 php 一起编译安装。


3)是的,php源码包ext目录下的就是官方默认支持的扩展,还有一部分就是 pecl 库里的扩展,pecl 的一部分扩展也是官方支持的,另一部分是第三方开发者支持的。

1.png

4)把扩展跟随php一起编译安装,也就是 configure 命令。


第一个问题 enable和with都是编译时候的一些选项,而enable更多的情况下是启用某个扩展http://php.net/manual/en/configure.about.php

第二个问题 php官方支持的扩展可以在源码编译的时候编译进php,而第三方的扩展则必须以so的形式引入

来源:https://segmentfault.com/q/1010000009174725/a-1020000009175172