一.关闭selinux 
vi /etc/sysconfig/selinux  
将SELINUX=enforcing修改为disabled然后重启系统生效 
 
二.配置yum源 

[yum]

name=yum

baseurl=file:///home/yum/

gpgcheck=0

enable=1

三.安装开发包和库文件 
yum -y install gcc gcc-c++ autoconf automake bison flex freetype freetype-devel 
fontconfig-devel gettext-devel libjpeg libjpeg-devel libpng libpng-devel libxml2 libxml2-devel libtool libtool-ltdl libtool-ltdl-devel libtiff-devel libXpm-devel libicu libicu-devel libidn libidn-devel libxslt libxslt-devel gd gd-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel openssl openssl-devel openldap* openldap-devel openldap-clients openldap-servers pcre pcre-devel pam-devel vim-enhanced mysql-devel php-devel libevent libevent-devel  
四.安装nginx 
nginx会有几个依赖包,我们首先安装依赖,不要安装过程中会报错: yum -y install zlib-devel pcre-devel openssl-devel 
一般源代码安装分4个步骤(有人也会省去第一个步骤),解压(tar命令)预编译(执行源码包下的configure),编译(make),编译安装(make install) 首先我们解压源码包: 
tar zxf nginx-1.0.13.tar.gz   //这里解释下加压参数,z代表gzip(也就是后面的.gz文件)x代表加压,v表示显示详细信息,-f使用档案文件或设备(必选参数),然后我们进行预编译,一般预编译会带上一些参数,已达到我们想要安装的效果,比如启用某个功能,禁用某个功能: 进入源码包目录进行预编译: cd nginx-1.0.13 
./configure --prefix=/usr/local/nginx  --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module  --with-pcre 
其中./configure指执行当前目录下的configure文件,预编译完成后我们就可以进行编译和安装: make #编译 执行后make后会有大量输出,等待输出完成后如果没有报错就可以进行安装执行: 
make install #安装 
安装完成后我们可以到相应的目录查看安装的文件: ls /usr/local/nginx/ conf html logs sbin 创建nginx用户及组 
useradd -r -M -s /sbin/nologin nginx   //-r:建立系统账号,-M:不要自动建立用户的登入目录,-s:指定用户登入后所使用的shell,/sbin/nologin只是不允许login系统  
五、nginx配置优化 
worker_processes auto   //nginx要开启的进程数,一般等于cpu的总核数 (设置为“auto”将尝试自动检测它) 
worker_rlimit_nofile 102400   //这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。 
worker_connections 5000   //每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。 keepalive_timeout 60   //keepalive超时时间 
access_log /var/log/nginx/access.log   //设置nginx是否将存储访问日志 error_log /var/log/nginx/error.log   //告诉nginx只能记录严重的错误 
 检测配置文件 
/usr/local/nginx/sbin/nginx -t 好了,下面我们启动nginx: /usr/local/nginx/sbin/nginx 添加开机启动 vi /etc/rc.d/rc.local 
/usr/local/nginx/sbin/nginx 
通过查看端口看nginx是否启动成功,nginx占用TCP的80端口,执行下面命令: netstat -antlp | grep 80 
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5946/nginx 我们查看80端口是开放的 
然后打开浏览器访问http://ip,我们会看到Welcome to nginx(之前的版本是 It’s Work): #平滑重启nginx 
/usr/local/nginx/sbin/nginx -s reload

六、安装数据库mysql

     先下载mysql安装包

打开 http://dev.mysql.com/downloads/mysql/ 

选择 linux - Generic

下载完毕后,得到安装包 mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

此包不再需要make编译源代码(真是扛扛的),之前的mysql-5.6.4.tar.gz包是源码包,需要先cmake,再make & make install

上传到centos6.4的/software目录下(可以改为你需要的目录,这里只是演示)

ssh登录到centos6.4,开始执行以下命令

1.解压tar包


cd /software

tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21

2.添加用户与组


groupadd mysql

useradd -r -g mysql mysql

chown -R mysql:mysql mysql-5.6.21

3.安装数据库


su mysql

cd mysql-5.6.21/scripts

./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data

exit

4.配置文件


cd /software/mysql-5.6.21/support-files

cp my-default.cnf /etc/my.cnf

cp mysql.server /etc/init.d/mysql

vim /etc/init.d/mysql          #若mysql的安装目录是/usr/local/mysql,则可省略此步

修改文件中的两个变更值

basedir=/software/mysql-5.6.21
datadir=/software/mysql-5.6.21/data

5.配置环境变量


vim /etc/profile

export MYSQL_HOME="/software/mysql-5.6.21"

export PATH="$PATH:$MYSQL_HOME/bin"

保存退出

. /etc/profile

6.添加自启动服务


chkconfig --add mysql

chkconfig mysql on

7.启动mysql


service mysql start

8.登录mysql及改密码与配置远程访问


mysqladmin -u root password 'your_password'     #修改root用户密码

mysql -u root -p     #登录mysql,需要输入密码

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;     #允许root用户远程访问

mysql>FLUSH PRIVILEGES;     #刷新权限

mysql>exit

---------------------------2014/11/25 添加

又装了一次此版本的mysql,发现root用户不能登录,提示没权限。使用mysqld_safe 登进去,发现user表居然是空的,没有一个用户,郁闷。

于是从其它地方导出了一份user表的sql语句,手动插入了一个用户,再登录就可以了。

附:

忘记root密码后,如何找回密码

cd $MYSQL_HOME

./bin/mysqld_safe --basedir=/data/mysql-5.6.21 --datadir=/data/mysql-5.6.21/data --skip-grant-tables &
mysql -u root mysql
UPDATE user SET password=PASSWORD("new_password") WHERE user='root';
FLUSH PRIVILEGES;

注意事项:

# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

使用网上介绍的方法修改root用户的密码:
# mysqladmin -uroot -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

现在终于被我找到了解决方法:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>


七、安装PHP

1、编译安装php5.3.29所需组件 安装zlib 

tar -zxf zlib-1.2.5.tar.gz cd zlib-1.2.5 
./configure --prefix=/usr/local/libs make && make install  
安装libpng 
tar jxf libpng-1.2.40.tar.bz2   # 这个包是bz2的 使用-j参数解压 cd libpng-1.2.40 
./configure --prefix=/usr/local/libs make && make install  
安装freetype 
tar jxf freetype-2.3.10.tar.bz2  # 这个包是bz2的 使用-j参数解压 cd freetype-2.3.10 
./configure --prefix=/usr/local/libs make && make install  
安装Jpeg 
tar -zxf jpegsrc.v7.tar.gz cd jpeg-7 
./configure --prefix=/usr/local/libs --enable-shared --enable-static make && make install  
tar zxf gd-2.0.33.tar.gz cd gd-2.0.33 
./configure --prefix=/usr/local/libs/ --with-zlib=/usr/local/libs --with-png=/usr/local/libs/ --with-freetype=/usr/local/libs/ --with-jpeg=/usr/local/libs make && make install  

安装PHP前首先要安装几个源码包依赖: libmcrypt mhash mcrypt 
安装libmcrypt (加密算法库,PHP扩展mcrypt功能对此库有依耐关系,要使用mcrypt必须先安装此库) tar zxf libmcrypt-2.5.8.tar.gz  cd libmcrypt-2.5.8 
./configure --prefix=/usr/local/libs/ make && make install cd libltdl/ 
./configure --prefix=/usr/local/libs --enable-ltdl-install  make && make install 
tar zxf mhash-0.9.3.tar.gz

 cd mhash-0.9.3 
./configure --prefix=/usr/local/libs/ make && make install  
vim /etc/ld.so.conf /usr/local/libs/lib /usr/local/lib ldconfig -v 
 tar -zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8 
export LDFLAGS="-L/usr/local/libs/lib -L/usr/lib" export CFLAGS="-I/usr/local/libs/include -I/usr/include" 
##这命令的作用是把安装的lib库连接到/usr/lib下,因为php安装时默认只搜索/urs/lib,不设置的话可能会造成后面mcrypt编译的时候找不到mhash库. 
export LD_LIBRARY_PATH=/usr/local/libs/lib: LD_LIBRARY_PATH    ##这命令的作用是设置gcc编译环境变量 
./configure --prefix=/usr/local/libs/ --with-libmcrypt-prefix=/usr/local/libs/  
make(如果报错mhash_config.h: No such file or directory 执行cp /tmp/mhash-0.9.3/mhash_config.h /usr/local/include/) make install  
编译安装PHP(FastCGI模式) 
cp -frp /usr/lib64/libldap* /usr/lib/     //不复制的话编译php时会报错configure: error: Cannot find ldap libraries in /usr/lib 
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64

下载php软件包新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用 

./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt \
--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \
--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \

--with-gd --with-jpeg-dir 

make && make test &&make install  
cp php.ini-production /usr/local/php/etc/php.ini # 如果是开发就复制php.ini-development 
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf#拷贝模板文件为php-fpm配置文件 
vim /usr/local/php/etc/php-fpm.conf #编辑 pid = run/php-fpm.pid #取消前面的注释 设置 php-fpm开机启动 
cp /tmp/php-5.3.29/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #拷贝php-fpm到启动目录 chmod +x /etc/init.d/php-fpm #添加执行权限 chkconfig --level 345 php-fpm on#设置345开机启动

启动php 
/etc/init.d/php-fpm start  
*php-fpm.com配置优化 开启php-fpm慢脚本日志

request_slowlog_timeout = 30 
slowlog = /var/log/php/php-fpm.log.slow   //需新建日志文件 
request_terminate_timeout = 120   //表示等待120秒后,结束那些没有自动结束的php脚本,以释放占用的资源。 
pm.max_children = 2000   //静态方式下开启的php-fpm进程数量。 pm.start_servers = 10   //动态方式下的起始php-fpm进程数量。 pm.min_spare_servers = 5   //动态方式下的最小php-fpm进程数量。 pm.max_spare_servers = 200   //动态方式下的最大php-fpm进程数量。 pm.max_requests = 12000

 pm.process_idle_timeout = 10s  

注意: 不要把start_servers改大,要保持各个文件大小的等级为:

          min_spare_servers ≤ start_servers ≤ max_spare_servers ≤ max_children
七.整合nginx和php 
vim /usr/local/nginx/conf/nginx.conf

 server {   

    listen 80; 
    server_name localhost;   

  location / {        

           root html; 
        index index.php index.html index.htm; # 添加index.php的首页文件  

                       } 
手动添加下面内容

 location ~ \.php$ {       

                      root html; 

  fastcgi_pass 127.0.0.1:9000;         fastcgi_index index.php; 

                       #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;      

                        include fastcgi.conf;        

                               }

                     }

vim /usr/local/nginx/html/index.php //新建一个php的测试页 

测试nginx+php:

<?php 

phpinfo(); 

?> 

测试nginx+php+mysql

<?php
        echo phpinfo();
        $link=mysql_connect('localhost','root','canshan');

        if ($link)

                echo "successful";

        else

                echo "Faile";

                mysql_close();
?>


/usr/local/nginx/sbin/nginx -s reload   //重新载入nginx服务 访问测试页   

对于LNMP配置出现访问php网页报错信息为file not found 的解决办法:

      配置nginx支持php:

          由于Nginx本身不会对PHP进行解析,因此要实现Nginx对PHP的支持,其实是将对PHP页面的请求交给fastCGI进程监听的IP地址及端口。如果把php-fpm当做动态应用服务器,那么Nginx其实就是一个反向代理服务器。

          Nginx通过反向代理功能实现对PHP的解析,这就是Nginx实现PHP动态解析的原理。

          这里假定Nginx的安装目录为/usr/local,则Nginx配置文件的路径为/usr/local/nginx/conf/nginx.conf。下面是在Nginx下支持PHP解析的一个虚拟主机配置实例。


        location /

        {
            root   /usr/local/nginx/html;
            index  index.php index.html index.htm;
        }

spacer.gif

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        location ~ \.php$ {
            root          /usr/local/nginx/html;
            #root           html;
            try_files $uri = 404;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }

通过location指令,将所有以php为后缀的文件都交给127.0.0.1:9000来处理,而这里的IP地址和端口就是FastCGI进程监听的IP地址和端口。

fastcgi_param指令指定放置PHP动态程序的主目录,也就是$fastcgi_script_name前面指定的路径,这里是/usr/local/nginx/html/目录,建议将这个目录与Nginx虚拟主机指定的根目录保持一致.

fastcgi_params文件是FastCGI进程的一个参数配置文件,在安装Nginx后,会默认生成一个这样的文件,这里通过include指令将FastCGI参数配置文件包含了进来。

在配置完成Nginx+FastCGI之后,为了保证Nginx下PHP环境的高速稳定运行,需要添加一些FastCGI优化缓存指令

项目页面测试阶段或经常改动页面可能造成新添加的功能无法实现,不推荐使用。

下面给出一个优化实例,将下面代码添加到Nginx主配置文件中的HTTP层级。

# vi /usr/local/nginx/conf/nginx.conf

添加到http层级:

--------------------------

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

fastcgi_cache TEST;

fastcgi_cache_valid 200 302 1h;

fastcgi_cache_valid 301 1d;

fastcgi_cache_valid any 1m;

什么是CGI

  CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

  CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等

  什么是FastCGI

  FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。

  FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。

  FastCGI与CGI特点

  1、如CGI,FastCGI也具有语言无关性.

  2、如CGI, FastCGI在进程中的应用程序,独立于核心web服务器运行,提供了一个比API更安全的环境。(APIs把应用程序的代码与核心的web服务器链接在一起,这意味着在一个错误的API的应用程序可能会损坏其他应用程序或核心服务器;恶意的API的应用程序代码甚至可以窃取另一个应用程序或核心服务器的密钥。)

  3、FastCGI技术目前支持语言有:C/C++、Java、Perl、Tcl、Python、SmallTalk、Ruby等。相关模块在Apache, ISS, Lighttpd等流行的服务器上也是可用的。

  4、如CGI,FastCGI的不依赖于任何Web服务器的内部架构,因此即使服务器技术的变化, FastCGI依然稳定不变。

  FastCGI的工作原理



1、Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)

2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。

3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。



4、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回WebServer。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。

在上述情况中,你可以想象CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展并重初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistentdatabase connection)可以工作。

  FastCGI的不足

  因为是多进程,所以比CGI多线程消耗更多的服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存数。

Nginx 1.4.0+php-5.4.13(FastCGI)服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。

补充:编译详细参数如下:

#Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。

--prefix=PATH     

#Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为PATH/sbin/nginx。

--sbin-path=PATH

#在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为

PATH/conf/nginx.conf。

--conf-path=PATH

#在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为


PATH/logs/nginx.pid。

--pid-path=PATH

#nginx.lock文件的路径。

--lock-path=PATH

#在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为



PATH/logs/error.log。

--error-log-path=PATH

#在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为



PATH/logs/access.log。

--http-log-path=PATH

#在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。

--user=USER

#在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默

认为 nobody。

--group=GROUP

#指定编译的目录

--builddir=DIR

#启用 rtsig 模块

--with-rtsig_module

#允许或不允许开启SELECT模式,如果configure没有找到合适的模式,比如,kqueue(sun os)、epoll(linux



kenel 2.6+)、rtsig(实时信号)

--with-select_module(--without-select_module)

#允许或不允许开启POLL模式,如果没有合适的,则开启该模式。

--with-poll_module(--without-poll_module)

#开启HTTP SSL模块,使NGINX可以支持HTTPS请求。这个模块需要已经安装了OPENSSL,在

DEBIAN上是libssl-dev

--with-http_ssl_module

--with-http_realip_module #启用 ngx_http_realip_module

--with-http_addition_module #启用 ngx_http_addition_module

--with-http_sub_module #启用 ngx_http_sub_module

--with-http_dav_module #启用 ngx_http_dav_module

--with-http_flv_module #启用 ngx_http_flv_module

--with-http_stub_status_module #启用 "server status" 页

--without-http_charset_module #禁用 ngx_http_charset_module

--without-http_gzip_module #禁用 ngx_http_gzip_module. 如果启用,需要 zlib 。

--without-http_ssi_module #禁用 ngx_http_ssi_module

--without-http_userid_module #禁用 ngx_http_userid_module

--without-http_access_module #禁用 ngx_http_access_module

--without-http_auth_basic_module #禁用 ngx_http_auth_basic_module

--without-http_autoindex_module #禁用 ngx_http_autoindex_module

--without-http_geo_module #禁用 ngx_http_geo_module

--without-http_map_module #禁用 ngx_http_map_module

--without-http_referer_module #禁用 ngx_http_referer_module

--without-http_rewrite_module #禁用 ngx_http_rewrite_module. 如果启用需要 PCRE 。

--without-http_proxy_module #禁用 ngx_http_proxy_module

--without-http_fastcgi_module #禁用 ngx_http_fastcgi_module

--without-http_memcached_module #禁用 ngx_http_memcached_module

--without-http_limit_zone_module #禁用 ngx_http_limit_zone_module

--without-http_empty_gif_module #禁用 ngx_http_empty_gif_module

--without-http_browser_module #禁用 ngx_http_browser_module

--without-http_upstream_ip_hash_module #禁用ngx_http_upstream_ip_hash_module

--with-http_perl_module - #启用 ngx_http_perl_module

--with-perl_modules_path=PATH #指定 perl 模块的路径

--with-perl=PATH #指定 perl 执行文件的路径

--http-log-path=PATH #Set path to the http access log

--http-client-body-temp-path=PATH #Set path to the http client request body

temporary files

--http-proxy-temp-path=PATH #Set path to the http proxy temporary files

--http-fastcgi-temp-path=PATH #Set path to the http fastcgi temporary files

--without-http #禁用 HTTP server

--with-mail #启用 IMAP4/POP3/SMTP 代理模块

--with-mail_ssl_module #启用 ngx_mail_ssl_module

--with-cc=PATH #指定 C 编译器的路径

--with-cpp=PATH #指定 C 预处理器的路径

--with-cc-opt=OPTIONS #

--with-ld-opt=OPTIONS #Additional parameters passed to the linker. With the use

of the system library PCRE in FreeBSD, it is necessary to indicate --with-ld-opt="-L



/usr/local/lib".

--with-cpu-opt=CPU #为特定的 CPU 编译,有效的值包括:pentium, pentiumpro,

pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64

--without-pcre #禁止 PCRE 库的使用。同时也会禁止 HTTP rewrite 模块。在

"location" 配置指令中的正则表达式也需要 PCRE 。

--with-pcre=DIR #指定 PCRE 库的源代码的路径。

--with-pcre-opt=OPTIONS #设置PCRE的额外编译选项。

--with-md5=DIR #使用MD5汇编源码。

--with-md5-opt=OPTIONS #Set additional options for md5 building.

--with-md5-asm #Use md5 assembler sources.

--with-sha1=DIR #Set path to sha1 library sources.

--with-sha1-opt=OPTIONS #Set additional options for sha1 building.

--with-sha1-asm #Use sha1 assembler sources.

--with-zlib=DIR #Set path to zlib library sources.

--with-zlib-opt=OPTIONS #Set additional options for zlib building.

--with-zlib-asm=CPU #Use zlib assembler sources optimized for specified CPU, valid values are:



pentium, pentiumpro

--with-openssl=DIR #Set path to OpenSSL library sources

--with-openssl-opt=OPTIONS #Set additional options for OpenSSL building

--with-debug #启用调试日志

--add-module=PATH #Add in a third-party module found in directory PATH

在不同版本间,???项可能会有些许变化,请总是使用 ./configure --help 命令来检查一下当前的选项列表。