php编译参数,不用怕!!

2018-01-04 分类:实用技能 阅读(2910) 评论(0)

很多初学者,在编译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

这么长!!!fuck!都是什么鬼!

下面,我们用最小化原则,来为大家解惑!

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

评论已关闭

登录

忘记密码 ?

切换登录

注册