PHP编译参数configure配置详解,以及php.ini说明
人,有了物质才能生存;人,有了理想才谈得上生活。
PHP编译参数
因为现在都是宝塔、lnmp这些自动进行配置的,这个知识点平常很少需要用到,但了解一下,确实能让一些问题豁然开朗。
一、编译参数-使用
./configure -h
在源代码目录中,该命令可以查看所有编译参数以及对应的英文解释
二、编译参数-说明
--prefix=/opt/php //指定 php 安装目录 --with-apxs2=/usr/local/apache/bin/apxs //整合Apache --with-config-file-path=/opt/php/etc //指定php.ini位置 --with-config-file-scan-dir=/opt/php/etc/php.d //指定额外拓展配置归放处文件夹 --enable-safe-mode //打开安全模式 --enable-ftp //打开ftp的支持 --enable-zip //打开对zip的支持 --with-bz2 //打开对bz2文件的支持 --with-jpeg-dir //打开对jpeg图片的支持 --with-png-dir //打开对png图片的支持 --with-freetype-dir //打开对freetype字体库的支持 --without-iconv //关闭iconv函数,各种字符集间的转换 --with-libXML-dir //打开libxml2库的支持 --with-XMLrpc //打开xml-rpc的c语言 --with-zlib-dir //打开zlib库的支持 --with-gd //打开gd库的支持 --enable-gd-native-ttf //支持TrueType字符串函数库 --with-curl //打开curl浏览工具的支持 --with-curlwrappers //运用curl工具打开url流 --with-ttf //打开freetype1.*的支持,可以不加了 --with-xsl //打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件 --with-gettext //打开gnu 的gettext 支持,编码库用到 --with-pear //打开pear命令的支持,PHP扩展用的 --enable-calendar //打开日历扩展功能 --enable-mbstring //多字节,字符串的支持 --enable-bcmath //精度计算,解决蛋疼的数字运算精度问题 --enable-sockets //打开 sockets 支持 --enable-exif //图片的元数据支持 --enable-magic-quotes //魔术引用的支持 --disable-rpath //关闭额外的运行库文件 --disable-debug //关闭调试模式 --with-ldap-dir //轻量目录访问协议
三、说明
php运行时会扫描--with-config-file-scan-dir所在的目录,并加载目录下额外的配置文件;
enable 是启用 PHP 源码包自带,但是默认不启用的扩展,比如 ftp 和 exif 扩展。with 是指定扩展依赖的资源库的位置,如果是默认位置,就可以留空。
php 的扩展分为静态编译和动态编译两种,静态编译就是随着PHP的源码一起编译安装,也就是 --enable 和 --with 启用的扩展。
动态编译就是在一个已经可以使用的 PHP 环境下,使用 phpize 命令来给 php 增加扩展的方式,这种方式就是生成的 so 文件。所以想要把扩展编译进 php 内核,就需要和 php 一起编译安装。
php源码包ext目录下的就是官方默认支持的扩展,还有一部分就是 pecl 库里的扩展,pecl 的一部分扩展也是官方支持的,另一部分是第三方开发者支持的。
把扩展跟随php一起编译安装,也就是 configure 命令,enable和with都是编译时候的一些选项,而enable更多的情况下是启用某个扩展, php官方支持的扩展可以在源码编译的时候编译进php,而第三方的扩展则必须以so的形式引入
四、phpize
php配置好后有时候需要再额外的添加一些扩展库,但添加扩展库时再重新对php进行编译就感觉非常的麻烦,那么这时候我们可以使用phpize对php进行扩展的添加,而且phpize编译的扩展库可以随时启用或停用,非常的灵活。
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的