本文先容本人在编译安装PHP7.4.20版本的configure配置参数解释。
configure配置参数./configure --prefix=/usr/local/php --with-config-file-path=/etc \--enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx \--enable-inline-optimization --disable-debug --disable-rpath \--enable-bcmath --enable-mbstring --enable-shared --enable-soap \--enable-session --enable-shmop --enable-simplexml --enable-sockets \--enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-json \--enable-mbregex --enable-pdo --enable-calendar --enable-dom \--enable-exif --enable-fileinfo --enable-filter --enable-ftp \--enable-gd --enable-mysqlnd --with-curl --with-cdb \--with-jpeg --with-freetype --with-webp --with-xpm \--with-gettext --with-gmp --with-mhash --with-xmlrpc --with-openssl \--with-iconv --with-bz2 --with-zlib --with-zip \--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \--enable-mysqlnd-compression-support --with-readline \--with-libxml --with-xsl --enable-opcache --enable-pcntl \--without-gdbm --enable-fast-install --without-pear --disable-phar
参数解释
--prefix=/usr/local/php:指定 php 安装目录 --with-config-file-path=/etc:指定php.ini目录位置--enable-fpm:开启php-fpm功能,此参数适宜nginx平台--with-fpm-user=nginx:设置FPM运行的用户--with-fpm-group=nginx:设置FPM运行的用户组--enable-inline-optimization:优化线程--disable-debug:禁用调试模式--disable-rpath:禁用在搜索路径中通报其他运行库。--enable-bcmath:精度打算,办理数字运算精度问题(支持用字符串的形式表示任意大小和精度的数字)--enable-mbstring:开启多字节、字符串的支持(国际化与字符编码支持) --enable-shared:编译共享库--enable-soap:该扩展可用于编写 SOAP 做事器和客户端--enable-session:开启会话支持。该模块在PHP中是在并发访问时由一个方法来保存某些数据.从而使你能够构建更多的定制程序,从而提高你的 web 网站的吸引力--enable-shmop:许可PHP读取、写入、创建和删除Unix共享内存段的函数集--enable-simplexml:该扩展供应了一个非常大略和易于利用的工具集,能将XML转换成一个带有一样平常属性选择器和数组迭代器的工具。此扩展依赖libxml--enable-sockets:开启sockets支持。该扩展实现了和socket通讯功能的底层接口,它可以和客户端一样当做一个socket做事器--enable-sysvmsg:该扩展用于完成进程间通信的行列步队--enable-sysvsem:利用 SysV 的旗子暗记 (semaphores) 机制,该扩展用于实现进程间旗子暗记量的操作--enable-sysvshm:该扩展用于完成进程间通信共享内存的操作--enable-json:该扩展实现JavaScript工具符号(JSON)数据转换格式--enable-mbregex:开启正则表达式函数中多字节字符的支持--enable-pdo:为PHP访问数据库定义了一个轻量级的同等接口。该扩展实现PDO接口的每个数据库驱动可以公开详细数据库的特性作为标准扩展功能。把稳利用PDO扩展自身并不能实现任何数据库功能;必须利用一个 详细数据库的PDO驱动来访问数据库做事--enable-calendar:开启日历扩展功能,用于在不同历法间进行转换--enable-dom:许可通过DOM API对XML文档进行操作--enable-exif:开启对图片的元数据支持(常日JPEG和TIFF格式的图像文件都包含元数据)--enable-fileinfo:该模块中的函数通过在文件的特定位置查找特定的魔术字节序列来预测文件的内容类型以及编码。虽然不是百分百的精确,但是常日情形下能够很好的事情--enable-filter:该模块通过验证或清理数据来过滤数据。当数据源包含未知(或外部)数据(如用户供应的输入)时,这尤其有用。例如,此数据可能来自HTML表单--enable-ftp:开启ftp的支持,实现通过FTP协议访问文件做事器的客户端--enable-gd:开启gd库的支持,用于创建和处理各种不同图像格式的图像文件,包括 GIF、PNG、JPEG、WBMP 和 XPM--enable-mysqlnd:启用mysqlnd来支持连接MySQL--with-curl:开启curl模块,连接通讯各种做事器、利用各种协议--with-cdb:一个用于创建和读取常量数据库的快速、可靠、轻量级的包。--with-jpeg:开启对jpeg图像的支持,Debian/Ubuntu系统下下需安装libjpeg-dev依赖包;Redhat/CentOS系统下需安装libjpeg、libjpeg-devel依赖包--with-freetype:开启对freetype字体库的支持,Debian/Ubuntu系统下需安装libfreetype6-dev依赖包;Redhat/CentOS系统下需安装freetype、freetype-devel依赖包--with-webp:开启对webp图像的支持,Debian/Ubuntu系统下下需安装libwebp-dev依赖包;Redhat/CentOS系统下需安装libwebp、libwebp-devel依赖包--with-xpm:开启对xpm图像的支持,Debian/Ubuntu系统下下需安装libxpm-dev依赖包;Redhat/CentOS系统下需安装libXpm、libXpm-devel依赖包--with-gettext:实现一个NLS(本机措辞支持)API,用于将PHP运用程序国际化--with-gmp:许可利用GNU MP库处理任意长度的整数--with-mhash:用于创建校验和、择要、验证代码等。Mhash 支持多种散列算法,例如 MD5、SHA1、GOST 等。自PHP 7.0.0起,Mash扩展已完备集成到Hash扩展中。因此,不再可能利用extension_loaded()检测 Mhash 支持;改用function_exists()。--with-xmlrpc:该扩展用于编写XML-RPC做事器和客户端--with-openssl:开启openssl的支持,加密传输时用到的,须要openssl库--with-iconv:此模块包含了iconv字符集转换功能的接口。利用此模块,可以将一个本地字符集表达的字符串转换成另一种字符集--with-bz2:用于透明地读取和写入 bzip2 (.bz2) 压缩文件--with-zlib:开启zlib库的支持,该模块使您能够通过大多数文件系统函数的版本透明地读取和写入gzip (.gz)压缩文件,这些文件系统函数适用于gzip压缩文件(也包括未压缩文件,但不适用于套接字)--with-zip:开启zip的支持,此扩展可以让你透明地读写ZIP压缩文档以及它们里面的文件--with-mysqli=mysqlnd:由PHP源码供应的mysql驱动连接代码,它的目的是代替旧的libmysql驱动--with-pdo-mysql=mysqlnd:由PHP源码供应的mysql驱动连接代码,它的目的是代替旧的libmysql驱动--enable-mysqlnd-compression-support:在 mysqlnd 中启用对 MySQL 压缩协议的支持--with-readline:实现访问GNU Readline库的接口。Debian/Ubuntu系统下需安装libreadline-dev依赖包;Redhat/CentOS系统下需安装readline、readline-devel依赖包。readline扩展并非线程安全的!
特殊解释
因此,在任何真线程安全的SAPI(例如Apache的mod_winnt)中利用这个扩展是非常不推举的!
--with-libxml:某些核心扩展的依赖,如:DOM、libxml、SimpleXML、SOAP、WDDX、XSL、XML、XMLReader、XMLRPC和XMLWriter--with-xsl:该扩展实现了XSL标准,利用libxslt库实行XSLT转换--enable-opcache:启用 opcache,默认为 ZendOptimizer+(ZendOpcache)。OPcache通过将PHP脚本预编译的字节码存储到共享内存中来提升PHP的性能,存储预编译字节码的好处便是省去了每次加载和解析PHP 脚本的开销。--enable-pcntl:实现Unix办法的进程创建、程序实行、旗子暗记处理以及进程的中断。进程掌握不能被运用在Web做事器环境,当其被用于Web做事环境时可能会带来意外的结果--without-gdbm:禁用GNU 数据库管理器--enable-fast-install:为快速安装优化--without-pear:不安装 PEAR。后续单独安装--disable-phar:禁用phar
经本人测试,从PHP 7.4 版本开始,有些配置项发生了变革,比如不支持“--enable-zip,--with-gd,--with-mcrypt,--with-libmbfl,--with-libxml-dir,--with-png,–with-freetype-dir,–with-jpeg-dir”等。 须要根据新的编译解释进行修正。可以参照 ./configure --help查看。
