PHP 编译参数相关说明

PHP 有很多编译参数 ,本文将记录这些编译参数和相关联的组件


PHP 7.3.0

以下编译参数需要的相关 RPM 包安装命令

yum install -y gcc gcc-c++ make libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel bison autoconf
rpm -ivh http://packages.psychotic.ninja/7/plus/x86_64/RPMS//libzip-0.11.2-6.el7.psychotic.x86_64.rpm
rpm -ivh http://packages.psychotic.ninja/7/plus/x86_64/RPMS//libzip-devel-0.11.2-6.el7.psychotic.x86_64.rpm

完整编译参数

./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --bindir=/usr/local/php7/bin --sbindir=/usr/local/php7/sbin --includedir=/usr/local/php7/include --libdir=/usr/local/php7/lib/php --mandir=/usr/local/php7/php/man --with-config-file-path=/usr/local/php7/etc --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mhash --with-openssl --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv  --with-zlib --with-libzip --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-mbregex --enable-mbstring --enable-ftp --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --disable-cgi --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm --enable-fast-install --disable-fileinfo
[[email protected] php-build]# ./configure \
--prefix=/usr/local/php7 \                              [php 安装的根目录]
--exec-prefix=/usr/local/php7 \                         [php 执行文件所在目录]
--bindir=/usr/local/php7/bin \                          [php/bin 目录]
--sbindir=/usr/local/php7/sbin \                        [php/sbin 目录]
--includedir=/usr/local/php7/include \                  [php 包含文件所在目录]
--libdir=/usr/local/php7/lib/php \                      [php/lib 目录]
--mandir=/usr/local/php7/php/man \                      [php/man 目录]
--with-config-file-path=/usr/local/php7/etc \           [php 的配置目录]
--with-mysql-sock=/var/run/mysql/mysql.sock \           [php 与 mysql 的 Unix socket 通信文件]
--with-mhash \                                          [Mhash 是基于离散数学原理的不可逆向的 php 加密方式扩展库,其在默认情况下不开启]
--with-openssl \                                        [OpenSSL 是一个安全套接字层密码库]
--with-mysqli=shared,mysqlnd \                          [php 依赖 mysqli 库]
--with-pdo-mysql=shared,mysqlnd \                       [php 依赖 pdo-mysql 库]
--with-gd \                                             [gd 库]                                               
--with-iconv \                                          [关闭 iconv 函数,种字符集间的转换]                        
--with-zlib \                                           [zlib 是提供数据压缩用的函式库]
--enable-zip \                                          [打开对 zip 的支持]
--enable-inline-optimization \                          [优化线程]
--disable-debug \                                       [关闭调试模式]
--disable-rpath \                                       [关闭额外的运行库文件]
--enable-shared \                                       [启用动态库]
--enable-xml \                                          [开启 xml 扩展]
--enable-bcmath \                                       [打开图片大小调整, 用到 zabbix 监控的时候用到了这个模块]
--enable-shmop \                                        [共享内存]
--enable-sysvsem \                                      [共享内存方案]
--enable-sysvshm \                                      [信号量方案]
--enable-sysvmsg \                                      [进程间通信方案]
--enable-mbregex \                                      [开启多字节正则表达式的字符编码。]
--enable-mbstring \                                     [开启多字节字符串函数]
--enable-ftp \                                          [开启 ftp]
--enable-pcntl \                                        [PHP 的进程控制支持实现了 Unix 方式的多进程创建]     
--enable-sockets \                                      [开启套节字]
--with-xmlrpc \                                         [打开 xml-rpc 的 c 语言]
--enable-soap \                                         [开启简单对象访问协议简单对象访问协议]
--without-pear \                                        [开启 php 扩展与应用库]
--with-gettext \                                        [开户 php 在当前域中查找消息]
--enable-session \                                      [允许 php 会话 session]
--with-curl \                                           [允许 curl 扩展]
--with-jpeg-dir \                                       [指定 jpeg 安装目录 yum 安装过后不用再次指定会自动找到]
--with-freetype-dir \                                   [指定 freetype 安装目录 yum 安装过后不用再次指定会自动找到]
--enable-opcache \                                      [开启使用 opcache 缓存]
--enable-fpm \                                          [开启 fpm]
--disable-cgi \                                         [关闭 php-cgi]
--with-fpm-user=nginx \                                 [php-fpm 的用户]
--with-fpm-group=nginx \                                [php-fpm 的用户组]
--without-gdbm \                                        [数据库函数使用可扩展散列和类似于标准 UNIX dbm 的工作]
--enable-fast-install \                                 [为快速安装优化]
--disable-fileinfo                                      [解决不足 1GB 内存的机器出现内存不足]

下面还有一些参数,就不是很常见需要的了

--enable-fastcgi \                                      [开启 FastCGI 关联 Apache]
--with-bz2 \                                            [对 bz2 文件的支持]
--with-libxml-dir \                                     [对 libxml2 库的支持]
--enable-gd-jis-conv \                                  [启用 GD 库的 JIS 日文字体支持]
--with-readline \                                       [PHP 的 CLI 模式信息交互模块]

下面是在 PHP7.3 有变动的参数

--with-zlib
[7.3 已变动]
[7.2 会出现警告,内容如下]
configure: WARNING: ========================================================
configure: WARNING: Use of bundled libzip is deprecated and will be removed.
configure: WARNING: Some features such as encryption and bzip2 are not available.
configure: WARNING: Use system library and --with-libzip is recommended.
configure: WARNING: ========================================================
[PHP 将额外调用 libzip 0.11 的模块]
configure: error: system libzip must be upgraded to version >= 0.11
--with-mcrypt
[7.2 已停用][官方建議使用 Sodium 或 OpenSSL 取代][http://php.net/manual/en/intro.mcrypt.php]
[是 php 里面重要的加密支持扩展库,linux 环境下该库在默认情况下不开启]
--with-mysql
[7.2 已停用][已被 mysqli 完全替换]
[php 依赖 mysql 库]
--enable-gd-native-ttf
[7.2 已停用][已被 GD 移除此选项]
[开启 gd 库原有字体]

PHP 5.6.30

以下编译参数需要的相关 RPM 包安装命令

yum install -y libmcrypt libmcrypt-devel libjpeg-devel libpng libpng-devel libxml2-devel freetype-devel glib2-devel bzip2-devel openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel

完整编译参数

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mysql --with-mysqli --with-pdo-mysql --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --disable-fileinfo
点赞