PHP编译参数configure配置详解,以及php.ini说明

26,619次阅读
没有评论

共计 2268 个字符,预计需要花费 6 分钟才能阅读完成。

人,有了物质才能生存;人,有了理想才谈得上生活。

PHP 编译参数

因为现在都是宝塔、lnmp 这些自动进行配置的,这个知识点平常很少需要用到,但了解一下,确实能让一些问题豁然开朗。

1. 编译参数 - 使用

./configure -h

在源代码目录中,该命令可以查看所有编译参数以及对应的英文解释

2. 编译参数 - 说明

–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 // 轻量目录访问协议

3. 说明

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 的形式引入

5.phpize

php 配置好后有时候需要再额外的添加一些扩展库,但添加扩展库时再重新对 php 进行编译就感觉非常的麻烦,那么这时候我们可以使用 phpize 对 php 进行扩展的添加,而且 phpize 编译的扩展库可以随时启用或停用,非常的灵活。

6. 各种管理器

  • pecl(The PHP Extension Community Library),pecl 是 php 社区扩展库。Pecl 扩展库的包(package)是使用 C、C++ 编写的动态链接库扩展,在编译安装后通过 php.ini 加载,随 PHP 进程被装入内存。比如多线程、异步。
  • pear(PHP Extension and Application Repository)pear PHP 扩展和应用仓库。pear 的扩展使用 php 代码写的,属于应用层的扩展。Pear 仓库代码是以包(package)分区,每一个 Pear package 都是一个独立的项目有着自己独立的开发团队、版本控制、文档和其他包的依赖关系信息。Pear package 以 phar、tar 或 zip 发布。
  • Pear2 是下一代的 Pear 代码仓库,在使用性、速度、安全上都有改进。Pear2 的包管理器 Pyrus 是下一代的 Pear installer,使用 PHP 编写,以 phar 格式发布。
  • Composer 是 PHP 中的应用程序级的包依赖管理器。用来管理(安装 / 更新)你项目中申明的依赖库。Composer 的包信息存储库是 Packagist

7. 获取 php 安装目录

php --ini

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-10发表,共计2268字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)