IT-小编络络的爱恨江湖
用心记录,真心分享!

 

一、编译配置选项

配置帮助表:

–help

显示帮助信息

–version

显示版本

–quiet, –silent

不显示checking……信息

–cache-file=FILE

在指定文件中存储测试结果

–no-create

configure脚本运行结束后不输出结果文件,常用于正式编译前的测试。

安装目录:

–srcdir=DIR

源文件库所在目录

–prefix=PREFIX

体系无关文件的顶级安装目录PREFIX ,也就PHP的安装目录

–exec-prefix=EPREFIX

体系相关文件的顶级安装目录EPREFIX ,把体系相关的文件安装到不同的位置可以方便地在不同主机之间共享体系相关的文件

–bindir=DIR

用户可执行目录DIR。用于存放PHP的支持程序

–sbindir=DIR

系统管理员可执行目录DIR ,用于存放运行PHP服务器所必须的服务程序

–libexecdir=DIR

程序可执行目录DIR ,也就是动态加载模块目录

–sysconfdir=DIR

只读的单一机器数据目录DIR ,用于存放php.ini之类的服务器配置文件

–sharedstatedir=DIR

可改写的体系无关数据目录DIR

–localstatedir=DIR

可改写的单一机器数据目录DIR

–libdir=DIR

对象代码库目录DIR

–includedir=DIR

PHPC头文件目录DIR

–oldincludedir=DIR

gccC头文件目录DIR

–datadir=DIR

PHP服务器只读的体系无关数据目录DIR

–infodir=DIR

信息文档目录DIR

–localedir=DIR

地区相关数据DIR

–mandir=DIR

手册文档目录DIR

–program-prefix=PREFIX

在安装的程序名前面加上前缀

–program-suffix=SUFFIX

在安装的程序名前面加上后缀

-program-transform-name=PROGRAM

在运行的时候要运行sed程序脚本

交叉编译选项:

–build=BUILD

指定编译工具所在系统的系统类型BUILD

–host=HOST

指定Apache HTTP服务器将要进行交叉编译时运行的目标系统类型HOST

–target=TARGET

指定交叉编译所产生的目标代码类型

特征选项:

--disable-FEATURE

关闭特征选项

--enable-FEATURE[=ARG]

启用特征选项

--with-PACKAGE[=ARG]

使用封装

--without-PACKAGE

禁用封装

–x-includes=DIR

在目录中包含X头文件

–x-libraries=DIR

在目录中包含X库文件

--with-libdir=NAME

库文件查找路径设置…/XXX/lib/

--disable-rpath

禁用传递其他运行库搜索路径,关闭额外的运行库文件 

SAPI模块设置

--with-aolserver=DIR

指定AOLserver网站服务器的安装路径

--with-apxs[=FILE]

编译出共享的apache 1.x版本的共享模块所存放的路径

--with-apache[=DIR]

编译Apache1.x版本的模块,目录是apache的软件根目录。

--enable-mod-charset

apachemod_charset模块启用传输表模式。(俄文的apache使用)

--with-apxs2filter[=FILE]

实验性:编译apache2.0的共享过滤模块。参数是apache apxs工具的路径文件

--with-apxs2[=FILE]

编译共享的apache2.0处理程序的模块。参数是apache apxs工具的路径文件

--with-apache-hooks[=FILE]

实验性:编译共享的apache1.0hooks模块。参数是apache apxs工具的路径文件

--with-apache-hooks-static[=DIR]

实验性:编译apache1.0hooks模块。参数是apache apxs工具的路径文件

--enable-mod-charset

apachemod_charset模块启用传输表模式。

--with-caudium[=DIR]

Caudium服务器编译Pick模块。参数为Caudium软件的目录。

--disable-cli

编译禁用CLIPHP版本。这个参数需要--without-pear (this forces --without-pear)

--with-continuity=DIR

编译php为连续服务模块。参数为安装Continuity Server的根目录。

--enable-embed[=TYPE]

实验性:建立内嵌的SAPI库。参数为sharedstatic

--with-isapi[=DIR]

Zeus web服务器建立ISAPI模块。

--with-milter[=DIR]

编译PHPMilter应用程序

--with-nsapi=DIR

Netscape/iPlanet/Sun Web服务器编译PHPNSAPI模块。

--with-phttpd=DIR

编译PHPphttpd模块

--with-pi3web[=DIR]

编译PHPPi3web模块

--with-roxen=DIR

编译PHPPike模块。参数为ROXEN软件的路径。

--enable-roxen-zts

编译Roxen的模块,使用Zend线程安全模式。

--with-thttpd=SRCDIR

编译PHPthttpd模块

--with-tux=MODULEDIR

编译PHPTUX模块(仅适用于linux下)

--with-webjames=SRCDIR

编译PHPWebJames模块(仅适用于RISC系统)

--disable-cgi

编译禁用CGIPHP版本

--enable-fastcgi

CGI二进制中启用FastCGI

--enable-force-cgi-redirect

若使用 CGI VERSION 模式来执行 PHP 的设,打开本选项会增加安全性。例如用户读 http://my.host/cgi-bin/php/secret/doc.html 遇到比较了解 PHP 系统的黑客级用户可能会自已输入以下网址 http://my.host/secret/doc.html 来读取相关信息。若 PHP 和 Apache 编译在一起,让 PHP 变成 Apache 的一部份,则不需要加入本选项。

--enable-discard-path

打开这个选项,用户就不能透过浏览器读取.htaccess 等和系统安全相关的文件。

--disable-path-info-check

禁用url参数。如果此项启用,则如/info.php/test?a=b将不工作。

普通参数设置

--enable-gcov

请用GCOV代码覆盖率(仅用于开发人员使用)

--enable-debug

带调试符号的编译

--with-layout=TYPE

显示安装文件的布局。参数为PHPGNU

--with-config-file-path=PATH

php.ini文件位置

--with-config-file-scan-dir=PATH

扫描配置文件的路径

--enable-safe-mode

启用安全模式(默认开启)

--with-exec-dir[=DIR]

在安全模式目录下仅允许可执行文件有时为了系统的安全性,会指定 PHP 程序一定要在哪个目录执行。

--enable-sigchild

使用PHP自带的SIGCHLD处理器

--enable-magic-quotes

默认激活magic quotes。可让程序在执行时自动加入反斜线的引入字符。

--enable-libgcc

启用libgcc的精确链接

--disable-short-tags

默认禁用短形式的<?作为php代码的开始标记

--enable-dmalloc

启用dmallocdmallocLinux C编程侦测记忆体溢出工具)

--disable-ipv6

禁用IPv6支持

--enable-fd-setsize

设置描述集的大小

扩展参数:

语法:--with-EXTENSION=[shared[,PATH]](注:并非所有模块都可编译成共享方式)

--disable-all

关闭默认为启用的所有扩展功能

--disable-libxml

禁用LIBXML支持

--with-libxml-dir[=DIR]

libxml安装目录,打开libxml2库的支持

--with-openssl[=DIR]

启用openssl支持,加密传输时用到的

--with-kerberos[=DIR]

包含kerberos支持

--without-pcre-regex

禁用pcreperl兼容正则表达式)支持。

--with-zlib[=DIR]

启用zlib支持

--with-zlib-dir=<DIR>

定义zlib安装所在的目录

--enable-bcmath

打开高精确度函数。必须要先安装本函数库,本选项方有效。

--with-bz2[=DIR]

包含BZip2支持

--enable-calendar

启用日历转换支持

--disable-ctype

禁用ctype功能

--with-curl[=DIR]

启用cURL支持

--with-curlwrappers

使用cURL作为网址流

--enable-dba

构架捆绑模块的DBA。要建立扩展的共享模块使用--enable-dba=shared参数。

--with-qdbm[=DIR]

启用QDBM支持

--with-gdbm[=DIR]

启用GDBM支持

--with-ndbm[=DIR]

启用NDBM支持

--with-db4[=DIR]

启用Berkeley DB4支持

--with-db3[=DIR]

启用Berkeley DB3支持

--with-db2[=DIR]

启用Berkeley DB2支持

--with-db1[=DIR]

启用Berkeley DB1支持/仿真

--with-dbm[=DIR]

启用DBM支持

--without-cdb[=DIR]

启用CDB支持(捆绑方式)

--disable-inifile

启用INI支持(捆绑方式)

--disable-flatfile

启用QDBM支持(捆绑方式)

--enable-dbase

启用捆绑的dbase

--disable-dom

禁用DOM支持

--with-libxml-dir[=DIR]

启用libxml2并指定其安装目录

--enable-exif

启用EXIF支持(从图片中获取元数据)

--with-fbsql[=DIR]

包含FrontBase支持

--with-fdftk[=DIR]

包含FDF支持

--disable-filter

禁用输入过滤支持

--with-pcre-dir

perl的正则库案安装位置

--enable-ftp

启用ftp支持

--with-openssl-dir[=DIR]

指定openssl的安装目录

--with-gd[=DIR]

启用GD支持并指定GD库的安装目录

--with-jpeg-dir[=DIR]

指定libjpeg的安装目录

--with-png-dir[=DIR]

指定libpng的安装目录

--with-zlib-dir[=DIR]

指定libz的安装目录

--with-xpm-dir[=DIR]

指定libXpm的安装目录

--with-ttf[=DIR]

指定FreeType 1.x的安装目录

--with-freetype-dir[=DIR]

指定FreeType2的安装目录

--with-t1lib[=DIR]

指定T1lib支持

--enable-gd-native-ttf

启用TureType字符功能

--enable-gd-jis-conv

启用JIS-mapped日语字体支持

--with-gettext[=DIR]

包含GNU gettext支持

--with-gmp[=DIR]

启用GNU MP支持

--disable-hash

禁用hash支持

--without-iconv[=DIR]

禁用iconv支持

--with-imap[=DIR]

包含IMAP支持。指定c-client安装目录

--with-kerberos[=DIR]

启用kerberos支持并指定其目录

--with-imap-ssl[=DIR]

启用ssl支持并指定openssl目录

--with-interbase[=DIR]

启用interbase支持并指定其目录

--disable-json

禁用JavaScript对象顺序话支持

--with-ldap[=DIR]

包含LDAP支持

--with-ldap-sasl[=DIR]

包含Cyrus SASL支持

--enable-mbstring

启用多字节字符串的支持

--disable-mbregex

禁用多字节正则表达式的支持

--disable-mbregex-backtrack

禁用多字节正则表达式回溯检查

--with-libmbfl[=DIR]

使用外部的libmbfl并制定其目录

--with-mcrypt[=DIR]

启用编解码功能,需安装 mcrypt 函数库。

--with-mhash[=DIR]

包含mhash支持

--with-mime-magic[=FILE]

启用mime_magic支持(不推荐使用!)

--with-ming[=DIR]

包含MING支持

--with-msql[=DIR]

包含mSQL支持

--with-mssql[=DIR]

包含MSSQL-DB支持,并指定FreeTDS软件目录

--with-mysql[=DIR]

包含MySQL支持

--with-mysql-sock[=DIR]

定位mysqlunix 套接字指针。如果未指定,则按默认位置搜索。

--with-zlib-dir[=DIR]

设置zlib的安装目录。

--with-mysqli[=FILE]

包含MySQLi支持。参数为mysql_config的位置。

--enable-embedded-mysqli

启用embedded支持。

--with-ncurses[=DIR]

包含ncurses支持。

--with-oci8[=DIR]

包含Oracle支持。如果使用Oracle客户端安装则使用--with-oci8=instantclient,/path/to/oic /lib

--with-adabas[=DIR]

包含Adabas D支持

--with-sapdb[=DIR]

包含SAP DB支持

--with-solid[=DIR]

包含Solid支持

--with-ibm-db2[=DIR]

包含IBM DB2支持

--with-ODBCRouter[=DIR]

包含ODBCRouter支持。

--with-empress[=DIR]

包含empress支持

--with-empress-bcs[=DIR]

包含Empress本地访问支持。

--with-birdstep[=DIR]

包含Birdstep支持

--with-custom-odbc[=DIR]

包括用户自定义的ODBC的支持。目录是ODBC安装的主目录。确定定义了CUSTOM_ODBC_LIBS并且在include目录下有 odbc.h的头文件你要在QNX上为Sybase SQL Anywhere定义如下:运行此之前,配置脚本

CPPFLAGS=”-DODBC_QNX -DSQLANY_BUG”
LDFLAGS=-lunix
CUSTOM_ODBC_LIBS=”-ldblib -lodbc”

--with-iodbc[=DIR]

包含iODBC支持

--with-esoob[=DIR]

包含Easysoft OOB支持

--with-unixODBC[=DIR]

包含unixODBC支持

--with-dbmaker[=DIR]

包含DBMaker支持

--enable-pcntl

启用pcntl支持。

--disable-pdo

禁用PHP数据对象支持。

--with-pdo-dblib[=DIR]

启用DBLIB-DB支持。目录为FreeTDS主目录。

--with-pdo-firebird[=DIR]

启用Firebird支持。

--with-pdo-mysql[=DIR]

启用PDOmysql支持。

--with-zlib-dir[=DIR]

设置PDOMySQLzlib支持

--with-pdo-oci[=DIR]

设置PDOOracle OCI支持。为Oracle安装客户端SDK使用--with-pdo-oci=instantclient,prefix,version参数

--with-pdo-odbc=flavour,dir

启用“flavour”ODBC支持。在dir目录的includelib目录下查找。“flavour”参数值可以是ibm-db2, unixODBC, generic。如果dir省略,则使用默认值。如果你试图通过generic使用一个如若不支持的驱动程序。为generic ODBC提供的语法格式如下:--with-pdo-odbc=generic,dir,libname,ldflags,cflags。作为共享的编译 后的扩展文件的名一般为pdo_odbc.so

--with-pdo-pgsql[=DIR]

启用PDOPostgreSQL支持。

--without-pdo-sqlite[=DIR]

启用SQLite 3支持。

--with-pgsql[=DIR]

启用PostgreSQL支持并指定其软件根目录或者pg_config的路径

--disable-posix

禁用POSIX-like支持

--with-pspell[=DIR]

包含PSPELL支持GNU

--with-libedit[=DIR]

包含libedit readline更换(仅用于CLICGI

--with-readline[=DIR]

(CLI/CGI only)包含readline支持(仅用于CLICGI

--with-recode[=DIR]

包含recode支持

--disable-reflection

禁用reflection支持。

--disable-session

禁用session支持

--with-mm[=DIR]

session存储启用mm支持。

--enable-shmop

启用shmop支持

--disable-simplexml

禁用simpleXML支持

--with-libxml-dir=DIR

启用simpleXMLlibXML2支持。

--with-snmp[=DIR]

包含SNMP支持。

--with-openssl-dir[=DIR]

包含SNMPopenssl支持

--enable-ucd-snmp-hack

包含UCD

--enable-soap

启用SOAP支持

--with-libxml-dir=DIR

启用SOAPLIBXML2支持。

--enable-sockets

启用sockets支持

--disable-spl

禁用标准PHP

--without-sqlite=DIR

不包含sqlite支持。

--enable-sqlite-utf8

启用SQLiteUTF-8支持。

--with-regex=TYPE

正则表达式库类型。

--with-sybase[=DIR]

包含Sybase-DB支持。

--with-sybase-ct[=DIR]

包含Sybase-CT支持。

--enable-sysvmsg

启用sysvmsg支持。

--enable-sysvsem

启用系统V信号支持

--enable-sysvshm

启用系统V共享内存支持。

--with-tidy[=DIR]

包含tidy支持。

--disable-tokenizer

禁用tokenizer支持

--enable-wddx

启用WDDX支持

--with-libxml-dir=DIR

包含WDDXlibxml2支持。

--with-libexpat-dir=DIR

XMLRPC-EPI启用libexpat(不推荐)

--disable-xml

禁用XML支持。

--with-libxml-dir=DIR

启用libxml2支持

--with-libexpat-dir=DIR

启用libexpat支持(不推荐)

--disable-xmlreader

禁用XMLreader支持。

--with-libxml-dir=DIR

启用XMLreaderlibxml2支持。

--with-xmlrpc[=DIR]

打开xml-rpcc语言支付

--with-libxml-dir=DIR

启用XMLRPC-EPIlibxml2支持

--with-libexpat-dir=DIR

启用XMLRPC-EPIlibexpat支持(不推荐)

--with-iconv-dir=DIR

启用XMLRPC-EPIiconv支持

--disable-xmlwriter

禁用XMLWriter支持

--with-libxml-dir=DIR

启用XMLReaderlibxml2支持。

--with-xsl[=DIR]

启用XSL支持

--enable-zip

包含zip读写支持

--with-zlib-dir[=DIR]

启用zipzlib支持

PEAR相关选项

--with-pear=DIR

在目录中安装pear

--without-pear

禁用pear

ZEND相关选项

--with-zend-vm=TYPE

设置虚拟机调度方法,参数为CALL, SWITCHGOTO

--enable-maintainer-zts

启用线程安全模式(仅用于代码维护人员使用)

--disable-inline-optimization

如果编译zend_execute.lo失败,则使用此参数

--enable-zend-multibyte

编译zend多字节支持。

TSRM线程安全资源管理器相关配置

--with-tsrm-pth[=pth-config]

使用GNU方式管理线程

--with-tsrm-st

使用SGI静态线程方式管理线程

--with-tsrm-pthreads

使用POSIX线程方式管理线程

Libtool相关配置

 

--enable-shared[=PKGS]

编译共享模块

--enable-static[=PKGS]

编译静态模块

--enable-fast-install[=PKGS]

启用快速安装优化方式

--with-gnu-ld

假设C编译器使用GNU ld

--disable-libtool-lock

避免锁死(可能破坏并联的编译)

--with-pic

尝试仅使用PICnon-PIC对象

--with-tags[=TAGS]

包括额外的配置

CGI方式安装相关参数

--enable-fpm

CGI方式安装的启动程序

--enable-fastCGI

支持fastcgi方式启动PHP

--enable-force-CGI-redirect

重定向方式启动PHP

--with-ncurses

支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库

 

 

 

 

 

 

如果是生产模式,pearshmopftp等,都不推荐使用。不熟悉的类库和不常用的库,也不推荐使用。magic-quote、 session.auto_startPHP服务器信息、PHP报错信息等在编译完成后,应该第一时间关闭,避免暴露服务器信息。
PHP对应的Web Server模式,Modulefastcgifpm只需要一种即可。指定了--with-apxs2=/usr/local/apache/bin/apxs以后,就不要再激活--enable-fpm--enable-fastCGIapxs是以php module的模式加载PHP的。


二、安装PHP

1、环境准备

系统:Centos6.4最小安装+开发工具包

PHP相关软件:pcre

使用yum一键安装所有依赖库文件:

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gd gd-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

2、安装libiconv

tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure
make && make install

3、安装libmcrypt

tar zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make && make install
cd libltdl
./configure --enable-ltdl-install
make && make install

4、安装mhash

下载地址:http://downloads.sourceforge.net/mhash/

tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make && make install

5、/usr/local/lib加入动态链接库

# vi /etc/ld.so.conf 添加一行:/usr/local/lib

# ldconfig重新加载动态链接库

6、安装mcrypt

下载地址:http://downloads.sourceforge.net/mcrypt/

# tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make && make install

7、安装php

# ldconfig再次重新加载动态链接库

常用配置项:

./configure \

--prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc \

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-iconv-dir \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-gd \

--enable-gd-native-ttf \

--with-zlib \

--with-libxml-dir \

--disable-rpath \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curl \

--enable-mbregex \

--enable-mbstring \

--with-mcrypt \

--with-mhash \

--with-openssl \

--enable-zip \

--enable-soap \

--enable-sockets \

--enable-fpm 

make ZEND_EXTRA_LIBS='-liconv' 
make install 

如果是与Apache一起安装需要加入以下配置(要求apache 打开SO模块

--with-apxs2=/usr/local/apache/bin/apxs

如果是与Nginx一起安装需要加入以下配置

--enable-fpm 

8、配置文件

# cp php.ini-development /usr/local/php/etc/php.ini

# vi /usr/local/php/etc/php.ini

设置date.timezone = PRC

8、Apache整合

httpd.conf文件<IfModule mime_module><\IfModule>之间插入行:AddType application/x-httpd-php .php

10、与Nginx整合

如果不存在nginx用户则创建

useradd nginx -M -s /sbin/nologin

复制配置文件

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

# vi php-fpm.conf

设置user = nginx

设置 group = nginx

加入服务列表

cp /soft/local/src/php-5.5.3/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm    

chmod +x /etc/init.d/php-fpm        

# chkconfig --add php-fpm

然后就可以使用service php-fpm startstoprestart启动关闭或重启php-fpm服务

# service php-fpm start

检查服务是否启动成功

# netstat -tunpl | grep php-fpm

 


三、扩展模块安装

Memcache安装

下载地址:http://pecl.php.net/package/memcache

tar zxvf memcache-2.2.7.tgz
cd memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

完成之后会显示扩展文件的安装路径,类似:/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/

编辑php.ini

确保extension_dir的路径为make install之后显示的路径

加入extension = memcache.so

 

Memcached安装

软件准备:libmemcachedmemcached

libmemcached下载地址:https://launchpad.net/libmemcached/+download

memcached下载地址:http://pecl.php.net/package/memcached

#安装libmemcached

tar zxvf libmemcached-1.0.17.tar.gz
cd libmemcached-1.0.17

./configure --prefix=/usr/local/libmemcached --with-memcached

make && make install

#安装memcached
tar zxvf memcached-2.1.0.tgz
cd memcached-2.1.0
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached
make && make install

#完成之后会显示扩展文件的安装路径,类似:/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/

编辑php.ini

确保extension_dir的路径为make install之后显示的路径

加入extension = memcached.so

posted on 2014-04-21 16:59  小编络络  阅读(2114)  评论(0编辑  收藏  举报