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
其他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,有漏洞,最小化原则,可以减少被攻击的风险!