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信息:
虽然是最小化安装的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论坛:
从环境检测的要求来看,我们需要在编译php的时候,增加--with-curl启用curl模块和--with-gd 启动GD模块,discuz还需要连接数据库,所以还得增加--with-mysql=mysqlnd
例如phpmyadmin:
从官方文档可以看出,需要的php模块有session,hash,ctype,json,mbstring,zip,gd2,openssl,xml,libxml,curl等,其中session,hash,ctype,json,xml,libxml最小化安装的php就有,不用额外指定编译参数
例如:zabbix
总结:php的模块,就像qq游戏大厅里的游戏,可以随意的添加,但是建议,php编译参数,不要盲目的去指定一大堆用不上的参数,满足项目需要即可!只要是程序都可能有bug,有漏洞,最小化原则,可以减少被攻击的风险!