php参数详解

php编译参数详解

./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-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql=/usr/local/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-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir

–prefix=/application/php5.3.27 指定php的安装路径为/application/php5.3.27

–with-mysql=/application/mysql/
需要指定mysql的安装路径,安装PHP需要的MySQL相关内容。当然如果没有MySQL软件包,也可以不单独安装,这样的情况可使用–with-mysql=mysqlnd替代–with-mysql=/application/mysql,因为PHP软件里面已经自带连接MySQL的客户端工具。

–with-iconv-dir=/usr/local/libiconv libiconv库,各种字符集间的转换

–with-freetype-dir 打开对freetype字体库支持

–with-jpeg-dir 打开对jpeg图片的支持

–with-png-dir 打开对png图片的支持

–with-zlib 打开zlib库的支持,用于http压缩传输

–with-libxml-dir=/usr 打开libxml2库的支持

–enable-xml

–disable-rpath 关闭额外的运行库文件

–enable-safe-mode 打开安全模式

–enable-bcmath 打开图片大小调整,用zabbix监控时会用到该模块

–enable-shmop

–enable-sysvsem 使用sysv信号机制,则打开此选项

–enable-inline-optimization 优化线程

–with-curl 打开curl浏览工具的支持

–with-curlwrappers 运维curl工具打开url流

–enable-mbregex

–enable-mbstring 支持mbstring

–with-mcrypt 编码函数库

–with-gd 打开gd库的支持

–enable-gd-native-ttf 支持TrueType字符串函数库

–with-openssl openssl的支持,加密传输时用到

–with-mhash mhash算法的扩展

–enable-pcntl freeTDS需要用到,可能是链接mssql

–enable-sockets 打开sockets支持

–with-xmlrpc 打开xml-rpc的c语言

–enable-zip 打开对zip的支持

–enable-soap soap模块的扩展

–enable-short-tags 开始和标记函数

–enable-zend-multibyte 支持zend的多字节

–enable-static 生成静态链接库

–with-xsl 打开XSLT文件支持,扩展libXML2库,需要libxslt软件

–enable-ftp 打开ftp的支持

–enable-fpm 表示激活PHP-FPM方式服务,即FactCGI方式运行PHP服务。

–with-fpm-user=www 指定PHP-FPM进程管理的用户为www,此处最好和Nginx服务用户统一。

–with-fpm-group=www 指定PHP-FPM进程管理用户组为www,此处最好和Nginx服务用户组统一。
其他php编译参数可以很短

./configure --prefix=/usr/local/php --enable-fpm (适合nginx平台)

./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs (适合apache平台)

PS:--prefix指定安装目录,这个不管编译安装什么软件都通用!

这两个平台由于使用php的方式不同,所以编译参数不同,本文主要以nginx平台为主。

下图是最小化编译安装php的info信息:

img

虽然是最小化安装的php,但是默认还是会安装一下php模块

[root@oldboy ~]# /application/php/bin/php -m
[PHP Modules]
Core
ctype
date
dom
ereg
fileinfo
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
[Zend Modules]

只是很多时候,我们的php项目会用到其他很多其他的模块,

例如discuz论坛:

img

从环境检测的要求来看,我们需要在编译php的时候,增加--with-curl启用curl模块和--with-gd 启动GD模块,discuz还需要连接数据库,所以还得增加--with-mysql=mysqlnd

例如phpmyadmin:

img

从官方文档可以看出,需要的php模块有session,hash,ctype,json,mbstring,zip,gd2,openssl,xml,libxml,curl等,其中session,hash,ctype,json,xml,libxml最小化安装的php就有,不用额外指定编译参数

例如:zabbix

img

总结:php的模块,就像qq游戏大厅里的游戏,可以随意的添加,但是建议,php编译参数,不要盲目的去指定一大堆用不上的参数,满足项目需要即可!只要是程序都可能有bug,有漏洞,最小化原则,可以减少被攻击的风险!

posted @ 2021-03-15 00:03  上善若水~小辉  阅读(355)  评论(0编辑  收藏  举报