configure详解

1、configure的命令参数

  使用./configure --help可以查看configure包含的参数:

[root@control nginx-1.10.2]# ./configure --help

  --help                             print this message

  --prefix=PATH                      set installation prefix
  --sbin-path=PATH                   set nginx binary pathname
  --modules-path=PATH                set modules path
  --conf-path=PATH                   set nginx.conf pathname
  --error-log-path=PATH              set error log pathname
  --pid-path=PATH                    set nginx.pid pathname
  --lock-path=PATH                   set nginx.lock pathname

  --user=USER                        set non-privileged user for
                                     worker processes
  --group=GROUP                      set non-privileged group for
                                     worker processes

  --build=NAME                       set build name
  --builddir=DIR                     set build directory

  --with-select_module               enable select module
  --without-select_module            disable select module
  --with-poll_module                 enable poll module
  --without-poll_module              disable poll module

  --with-threads                     enable thread pool support

  --with-file-aio                    enable file AIO support
  --with-ipv6                        enable IPv6 support

  --with-http_ssl_module             enable ngx_http_ssl_module
  --with-http_v2_module              enable ngx_http_v2_module
  --with-http_realip_module          enable ngx_http_realip_module
  --with-http_addition_module        enable ngx_http_addition_module
  --with-http_xslt_module            enable ngx_http_xslt_module
  --with-http_xslt_module=dynamic    enable dynamic ngx_http_xslt_module
  --with-http_image_filter_module    enable ngx_http_image_filter_module
  --with-http_image_filter_module=dynamic
                                     enable dynamic ngx_http_image_filter_module
  --with-http_geoip_module           enable ngx_http_geoip_module
  --with-http_geoip_module=dynamic   enable dynamic ngx_http_geoip_module
  --with-http_sub_module             enable ngx_http_sub_module
  --with-http_dav_module             enable ngx_http_dav_module
  --with-http_flv_module             enable ngx_http_flv_module
  --with-http_mp4_module             enable ngx_http_mp4_module
  --with-http_gunzip_module          enable ngx_http_gunzip_module
  --with-http_gzip_static_module     enable ngx_http_gzip_static_module
  --with-http_auth_request_module    enable ngx_http_auth_request_module
  --with-http_random_index_module    enable ngx_http_random_index_module
  --with-http_secure_link_module     enable ngx_http_secure_link_module
  --with-http_degradation_module     enable ngx_http_degradation_module
  --with-http_slice_module           enable ngx_http_slice_module
  --with-http_stub_status_module     enable ngx_http_stub_status_module

  --without-http_charset_module      disable ngx_http_charset_module
  --without-http_gzip_module         disable ngx_http_gzip_module
  --without-http_ssi_module          disable ngx_http_ssi_module
  --without-http_userid_module       disable ngx_http_userid_module
  --without-http_access_module       disable ngx_http_access_module
  --without-http_auth_basic_module   disable ngx_http_auth_basic_module
  --without-http_autoindex_module    disable ngx_http_autoindex_module
  --without-http_geo_module          disable ngx_http_geo_module
  --without-http_map_module          disable ngx_http_map_module
  --without-http_split_clients_module disable ngx_http_split_clients_module
  --without-http_referer_module      disable ngx_http_referer_module
  --without-http_rewrite_module      disable ngx_http_rewrite_module
  --without-http_proxy_module        disable ngx_http_proxy_module
  --without-http_fastcgi_module      disable ngx_http_fastcgi_module
  --without-http_uwsgi_module        disable ngx_http_uwsgi_module
  --without-http_scgi_module         disable ngx_http_scgi_module
  --without-http_memcached_module    disable ngx_http_memcached_module
  --without-http_limit_conn_module   disable ngx_http_limit_conn_module
  --without-http_limit_req_module    disable ngx_http_limit_req_module
  --without-http_empty_gif_module    disable ngx_http_empty_gif_module
  --without-http_browser_module      disable ngx_http_browser_module
  --without-http_upstream_hash_module
                                     disable ngx_http_upstream_hash_module
  --without-http_upstream_ip_hash_module
                                     disable ngx_http_upstream_ip_hash_module
  --without-http_upstream_least_conn_module
                                     disable ngx_http_upstream_least_conn_module
  --without-http_upstream_keepalive_module
                                     disable ngx_http_upstream_keepalive_module
  --without-http_upstream_zone_module
                                     disable ngx_http_upstream_zone_module

  --with-http_perl_module            enable ngx_http_perl_module
  --with-http_perl_module=dynamic    enable dynamic ngx_http_perl_module
  --with-perl_modules_path=PATH      set Perl modules path
  --with-perl=PATH                   set perl binary pathname

  --http-log-path=PATH               set http access log pathname
  --http-client-body-temp-path=PATH  set path to store
                                     http client request body temporary files
  --http-proxy-temp-path=PATH        set path to store
                                     http proxy temporary files
  --http-fastcgi-temp-path=PATH      set path to store
                                     http fastcgi temporary files
  --http-uwsgi-temp-path=PATH        set path to store
                                     http uwsgi temporary files
  --http-scgi-temp-path=PATH         set path to store
                                     http scgi temporary files

  --without-http                     disable HTTP server
  --without-http-cache               disable HTTP cache

  --with-mail                        enable POP3/IMAP4/SMTP proxy module
  --with-mail=dynamic                enable dynamic POP3/IMAP4/SMTP proxy module
  --with-mail_ssl_module             enable ngx_mail_ssl_module
  --without-mail_pop3_module         disable ngx_mail_pop3_module
  --without-mail_imap_module         disable ngx_mail_imap_module
  --without-mail_smtp_module         disable ngx_mail_smtp_module

  --with-stream                      enable TCP/UDP proxy module
  --with-stream=dynamic              enable dynamic TCP/UDP proxy module
  --with-stream_ssl_module           enable ngx_stream_ssl_module
  --without-stream_limit_conn_module disable ngx_stream_limit_conn_module
  --without-stream_access_module     disable ngx_stream_access_module
  --without-stream_upstream_hash_module
                                     disable ngx_stream_upstream_hash_module
  --without-stream_upstream_least_conn_module
                                     disable ngx_stream_upstream_least_conn_module
  --without-stream_upstream_zone_module
                                     disable ngx_stream_upstream_zone_module

  --with-google_perftools_module     enable ngx_google_perftools_module
  --with-cpp_test_module             enable ngx_cpp_test_module

  --add-module=PATH                  enable external module
  --add-dynamic-module=PATH          enable dynamic external module

  --with-cc=PATH                     set C compiler pathname
  --with-cpp=PATH                    set C preprocessor pathname
  --with-cc-opt=OPTIONS              set additional C compiler options
  --with-ld-opt=OPTIONS              set additional linker options
  --with-cpu-opt=CPU                 build for the specified CPU, valid values:
                                     pentium, pentiumpro, pentium3, pentium4,
                                     athlon, opteron, sparc32, sparc64, ppc64

  --without-pcre                     disable PCRE library usage
  --with-pcre                        force PCRE library usage
  --with-pcre=DIR                    set path to PCRE library sources
  --with-pcre-opt=OPTIONS            set additional build options for PCRE
  --with-pcre-jit                    build PCRE with JIT compilation support

  --with-md5=DIR                     set path to md5 library sources
  --with-md5-opt=OPTIONS             set additional build options for md5
  --with-md5-asm                     use md5 assembler sources

  --with-sha1=DIR                    set path to sha1 library sources
  --with-sha1-opt=OPTIONS            set additional build options for sha1
  --with-sha1-asm                    use sha1 assembler sources

  --with-zlib=DIR                    set path to zlib library sources
  --with-zlib-opt=OPTIONS            set additional build options for zlib
  --with-zlib-asm=CPU                use zlib assembler sources optimized
                                     for the specified CPU, valid values:
                                     pentium, pentiumpro

  --with-libatomic                   force libatomic_ops library usage
  --with-libatomic=DIR               set path to libatomic_ops library sources

  --with-openssl=DIR                 set path to OpenSSL library sources
  --with-openssl-opt=OPTIONS         set additional build options for OpenSSL

  --with-debug                       enable debug logging

[root@control nginx-1.10.2]# 

  所有的参数分为四大类型:

  1.路径相关参数

configure支持的路径相关参数
参数名称 意义 默认值
--prefix=PATH Nginx安装部署后的根目录

默认为/usr/local/nginx目录。

注意:这个目录的设置会影响其他参数中的相对目录。

例如,如果设置了--sbin-path=sbin/nginx,

那么实际上可执行文件会被放到/usr/local/nginx/sbin/nginx中

--sbin-path=PATH 可执行文件的放置路径 <prefix>/sbin/nginx
--config-path=PATH 配置文件的放置路径 <prefix>/conf/nginx.conf
--error-log-path=PATH

error日志的放置路径。error日志用于定位问题,可输出多种级别(包括debug调试级别)的日志。

它的配置非常灵活,可以在nginx.conf里配置为不同请求的日志并输出到不同的log文件中。

<prefix>/logs/error.log
--pid-path=PATH

pid文件的存放路径。这个文件里仅以ASC II码存放着Nginx master的进程ID,有了这个进程ID,

在使用命令行(例如: nginx -s reload)提供读取master进程ID想master进程发送信号时,

才能对运行中的Nginx进程产生作用。

<prefix>/logs/nginx.pid
--lock-path=PATH lock文件的放置路径 <prefix>/logs/nginx.lock
--builddir=DIR

configure执行与编译期间产生的临时文件放置目录,包括产生的Makefile、C源文件、目标文件、可执行文件等。

<nginx source path>/objs
--with-perl_modules_path=PATH

perl module放置的路径。

只有使用了第三方的perl module,才需要配置这个路径。

--with-perl=PATH

perl binary存放的位置。

如果配置nginx会执行perl脚本,那么久必须要配置此路径。

--http-log-path=PATH

access日志放置的路径。

每一个HTTP请求在结束时都会记录的访问日志。

<prefix>/logs/access.log
--http-client-body-temp-path=PATH 处理HTTP请求时,如果请求的包体需要暂时存放到临时磁盘文件中,则把这样的临时文件放到该路径下。 <prefix>/client_body_temp
--http-proxy-temp-path=PATH

Nginx作为HTTP反向代理服务器时,上游服务器产生的HTTP包体在需要临时存放到磁盘文件时,

这样的文件放在该目录下。

<prefix>/proxy_temp
--http-fastcgi-temp-path=PATH Fastcgi所使用的临时文件的放置位置 <prefix>/fastcgi_temp
--http-uwsgi-temp-path=PATH uWSGI所使用临时文件的放置位置 <prefix>/uwsgi_temp
--http-scgi-temp-path=PATH SCGI所使用临时文件的放置位置 <prefix>/scgi_temp

  2.编译相关的参数

configure支持的编译相关参数
编译参数 意    义
 --witg-c=PATH  C编译器的路径
 --with-cpp=PATH  C预编译器的路径
 --with-cc-opt=OPTIONS  如果希望在Nginx编译期间指定加入一些编译选项,如指定宏或者使用-I加入某些需要包含的目录,这时可以使用该参数达到目的。
 --with-ld-opt=OPTIONS

 最终的二进制可执行文件是由编译后生成的目标文件与一些第三方库链接生成的,在执行链接操作时可能需要指定链接参数,--with-ld-opt就是用于加入链接时的参数。

例如,如果我们希望将某个库链接到Nginx程序中,需要在这里加入--with-ld-opt=libraryName -LibraryPath,其中libraryName是目标库的名称,libraryPath则是目标库所在的路径。

 --with-cpu-opt=CPU

 指定CPU处理器架构,只能从一下值中选取:

pentium、pentiumpro、pentium3、pentium4、athlon、opteron、sparc32、sparc64、ppc64

   3.依赖软件相关参数

PCRE的设置参数
PCRE库的设置参数 意  义
--without-pcre 如果确认Nginx不用解析正则表达式,也就是说,nginx.conf配置文件中不会出现正则表达式,那么可以使用这个参数。
--with-pcre 强制使用PCRE库
--with-pcre=DIR 指定PCRE库的源码位置,在编译Nginx时会进入该目录编译PCRE源码
--with-pcre-opt=OPTIONS 编译PCRE源码时希望加入的编译选项

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1111

 

posted @ 2017-12-19 18:00  StaryJie  阅读(2246)  评论(0)    收藏  举报