本文主要记录自己在“从Nginx源码构建、编译并安装”过程中遇到的一些问题及详细步骤,通过以下方式构建的Nginx集成了 SSL、Lua、Nginx Upstream Health Check、解压缩 功能。
# 1. 下载安装包(http://nginx.org/en/download.html)
wget http://nginx.org/download/nginx-1.7.10.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
wget http://openssl.org/source/openssl-1.0.2a.tar.gz
wget http://zlib.net/zlib-1.2.8.tar.gz
wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz -O ngx_devel_kit-0.2.19.tar.gz
wget https://github.com/openresty/lua-nginx-module/archive/v0.9.15.tar.gz -O lua-nginx-module-0.9.15.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
wget http://openssl.org/source/openssl-1.0.2a.tar.gz
wget http://zlib.net/zlib-1.2.8.tar.gz
wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz -O ngx_devel_kit-0.2.19.tar.gz
wget https://github.com/openresty/lua-nginx-module/archive/v0.9.15.tar.gz -O lua-nginx-module-0.9.15.tar.gz
wget https://github.com/openresty/lua-upstream-nginx-module/archive/v0.02.tar.gz -O lua-upstream-nginx-module-0.02.tar.gz
# 2. 解压缩安装包,并创建“软链接”
tar -xzvf nginx-1.7.10.tar.gz
tar -xzvf nginx-1.7.10.tar.gz
tar -xzvf pcre-8.36.tar.gz
mv pcre-8.36 nginx-1.7.10
tar -xzvf openssl-1.0.2a.tar.gz
mv openssl-1.0.2a nginx-1.7.10
tar -xzvf zlib-1.2.8.tar.gz
mv zlib-1.2.8 nginx-1.7.10
tar -xzvf ngx_devel_kit-0.2.19.tar.gz
mv ngx_devel_kit-0.2.19 nginx-1.7.10
tar -xzvf lua-nginx-module-0.9.15.tar.gz
mv lua-nginx-module-0.9.15 nginx-1.7.10
mv pcre-8.36 nginx-1.7.10
tar -xzvf openssl-1.0.2a.tar.gz
mv openssl-1.0.2a nginx-1.7.10
tar -xzvf zlib-1.2.8.tar.gz
mv zlib-1.2.8 nginx-1.7.10
tar -xzvf ngx_devel_kit-0.2.19.tar.gz
mv ngx_devel_kit-0.2.19 nginx-1.7.10
tar -xzvf lua-nginx-module-0.9.15.tar.gz
mv lua-nginx-module-0.9.15 nginx-1.7.10
tar -xzvf lua-upstream-nginx-module-0.02.tar.gz
mv lua-upstream-nginx-module-0.02 nginx-1.7.10
mv nginx-1.7.10 /usr/apps/nginx-1.7.10
mv lua-upstream-nginx-module-0.02 nginx-1.7.10
mv nginx-1.7.10 /usr/apps/nginx-1.7.10
cd /usr/apps
ln -s nginx-1.7.10 nginx
cd nginx
ln -s nginx-1.7.10 nginx
cd nginx
# 3. 修改Nginx的openssl编译配置信息并编译OpenSSL
# 3.1 修改 nginx/auto/lib/openssl/conf
# CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
# CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
# CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
# CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
# CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
# CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
# CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/libcrypto.a"
# 3.2 编译并构建OpenSSL
cd openssl-1.0.2a/
./config
make
make
cd ..
【问题】
1. make[1]: *** [/apps/lib/openssl-1.0.2a/.openssl/include/openssl/ssl.h] Error 2
2. cc: error: openssl-1.0.2a/libssl.a: 未找到相关文件或目录、cc: error: openssl-1.0.2a/libcrypto.a: 未找到相关文件或目录
原因是没有先对OpenSSL进行编译构建,需要先构建生成这两个包。
# 4. build(构建)
./configure --prefix=/usr/apps/nginx \
--with-ld-opt="-Wl,-rpath,$LUAJIT_LIB" \
--with-ld-opt="-Wl,-rpath,$LUAJIT_LIB" \
--with-http_ssl_module \
--with-pcre=pcre-8.36 \
--with-openssl=openssl-1.0.2a \
--with-zlib=zlib-1.2.8 \
--add-module=ngx_devel_kit-0.2.19 \
--add-module=lua-nginx-module-0.9.15 \
--add-module=lua-upstream-nginx-module-0.02
--with-openssl=openssl-1.0.2a \
--with-zlib=zlib-1.2.8 \
--add-module=ngx_devel_kit-0.2.19 \
--add-module=lua-nginx-module-0.9.15 \
--add-module=lua-upstream-nginx-module-0.02
==== 构建日志 ====
checking for OS
+ Linux 3.13.0-24-generic x86_64
checking for C compiler ... found
+ using GNU C compiler
+ gcc version: 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
...
configuring additional modules
adding module in ngx_devel_kit-0.2.19
+ ngx_devel_kit was configured
adding module in lua-nginx-module-0.9.15
checking for LuaJIT library in /usr/apps/luajit/lib and /usr/apps/luajit/include/luajit-2.0 (specified by the LUAJIT_LIB and LUAJIT_INC env) ... found
checking for export symbols by default (-E) ... found
checking for export symbols by default (--export-all-symbols) ... not found
checking for SO_PASSCRED ... found
+ ngx_http_lua_module was configured
checking for OS
+ Linux 3.13.0-24-generic x86_64
checking for C compiler ... found
+ using GNU C compiler
+ gcc version: 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
...
configuring additional modules
adding module in ngx_devel_kit-0.2.19
+ ngx_devel_kit was configured
adding module in lua-nginx-module-0.9.15
checking for LuaJIT library in /usr/apps/luajit/lib and /usr/apps/luajit/include/luajit-2.0 (specified by the LUAJIT_LIB and LUAJIT_INC env) ... found
checking for export symbols by default (-E) ... found
checking for export symbols by default (--export-all-symbols) ... not found
checking for SO_PASSCRED ... found
+ ngx_http_lua_module was configured
adding module in lua-upstream-nginx-module-0.02
+ ngx_http_lua_upstream_module was configured
creating objs/Makefile
Configuration summary (配置摘要)
+ ngx_http_lua_upstream_module was configured
creating objs/Makefile
Configuration summary (配置摘要)
+ using PCRE library: pcre-8.36
+ using OpenSSL library: openssl-1.0.2a
+ md5: using OpenSSL library
+ sha1: using OpenSSL library
+ using zlib library: zlib-1.2.8
nginx path prefix: "/usr/apps/nginx"
nginx binary file: "/usr/apps/nginx/sbin/nginx"
nginx configuration prefix: "/usr/apps/nginx/conf"
nginx configuration file: "/usr/apps/nginx/conf/nginx.conf"
nginx pid file: "/usr/apps/nginx/logs/nginx.pid"
nginx error log file: "/usr/apps/nginx/logs/error.log"
nginx http access log file: "/usr/apps/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
+ using OpenSSL library: openssl-1.0.2a
+ md5: using OpenSSL library
+ sha1: using OpenSSL library
+ using zlib library: zlib-1.2.8
nginx path prefix: "/usr/apps/nginx"
nginx binary file: "/usr/apps/nginx/sbin/nginx"
nginx configuration prefix: "/usr/apps/nginx/conf"
nginx configuration file: "/usr/apps/nginx/conf/nginx.conf"
nginx pid file: "/usr/apps/nginx/logs/nginx.pid"
nginx error log file: "/usr/apps/nginx/logs/error.log"
nginx http access log file: "/usr/apps/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
# 5. make(编译)
make -j2
make -j2
==== 编译日志 ====
...
cc -o objs/nginx \
objs/src/core/nginx.o \
objs/src/core/ngx_log.o \
objs/src/core/ngx_palloc.o \
objs/src/core/ngx_array.o \
objs/src/core/ngx_list.o \
objs/src/core/ngx_hash.o \
objs/src/core/ngx_buf.o \
objs/src/core/ngx_queue.o \
objs/src/core/ngx_output_chain.o \
objs/src/core/ngx_string.o \
objs/src/core/ngx_parse.o \
objs/src/core/ngx_inet.o \
objs/src/core/ngx_file.o \
objs/src/core/ngx_crc32.o \
objs/src/core/ngx_murmurhash.o \
objs/src/core/ngx_md5.o \
objs/src/core/ngx_rbtree.o \
objs/src/core/ngx_radix_tree.o \
objs/src/core/ngx_slab.o \
objs/src/core/ngx_times.o \
objs/src/core/ngx_shmtx.o \
objs/src/core/ngx_connection.o \
objs/src/core/ngx_cycle.o \
objs/src/core/ngx_spinlock.o \
objs/src/core/ngx_cpuinfo.o \
objs/src/core/ngx_conf_file.o \
objs/src/core/ngx_resolver.o \
objs/src/core/ngx_open_file_cache.o \
objs/src/core/ngx_crypt.o \
objs/src/core/ngx_proxy_protocol.o \
objs/src/core/ngx_syslog.o \
objs/src/event/ngx_event.o \
objs/src/event/ngx_event_timer.o \
objs/src/event/ngx_event_posted.o \
objs/src/event/ngx_event_busy_lock.o \
objs/src/event/ngx_event_accept.o \
objs/src/event/ngx_event_connect.o \
objs/src/event/ngx_event_pipe.o \
objs/src/os/unix/ngx_time.o \
objs/src/os/unix/ngx_errno.o \
objs/src/os/unix/ngx_alloc.o \
objs/src/os/unix/ngx_files.o \
objs/src/os/unix/ngx_socket.o \
objs/src/os/unix/ngx_recv.o \
objs/src/os/unix/ngx_readv_chain.o \
objs/src/os/unix/ngx_udp_recv.o \
objs/src/os/unix/ngx_send.o \
objs/src/os/unix/ngx_writev_chain.o \
objs/src/os/unix/ngx_channel.o \
objs/src/os/unix/ngx_shmem.o \
objs/src/os/unix/ngx_process.o \
objs/src/os/unix/ngx_daemon.o \
objs/src/os/unix/ngx_setaffinity.o \
objs/src/os/unix/ngx_setproctitle.o \
objs/src/os/unix/ngx_posix_init.o \
objs/src/os/unix/ngx_user.o \
objs/src/os/unix/ngx_process_cycle.o \
objs/src/os/unix/ngx_linux_init.o \
objs/src/event/modules/ngx_epoll_module.o \
objs/src/os/unix/ngx_linux_sendfile_chain.o \
objs/src/core/ngx_regex.o \
objs/src/http/ngx_http.o \
objs/src/http/ngx_http_core_module.o \
objs/src/http/ngx_http_special_response.o \
objs/src/http/ngx_http_request.o \
objs/src/http/ngx_http_parse.o \
objs/src/http/ngx_http_header_filter_module.o \
objs/src/http/ngx_http_write_filter_module.o \
objs/src/http/ngx_http_copy_filter_module.o \
objs/src/http/modules/ngx_http_log_module.o \
objs/src/http/ngx_http_request_body.o \
objs/src/http/ngx_http_variables.o \
objs/src/http/ngx_http_script.o \
objs/src/http/ngx_http_upstream.o \
objs/src/http/ngx_http_upstream_round_robin.o \
objs/src/http/ngx_http_parse_time.o \
objs/src/http/modules/ngx_http_static_module.o \
objs/src/http/modules/ngx_http_index_module.o \
objs/src/http/modules/ngx_http_chunked_filter_module.o \
objs/src/http/modules/ngx_http_range_filter_module.o \
objs/src/http/modules/ngx_http_headers_filter_module.o \
objs/src/http/modules/ngx_http_not_modified_filter_module.o \
objs/src/http/ngx_http_busy_lock.o \
objs/src/http/ngx_http_file_cache.o \
objs/src/http/modules/ngx_http_gzip_filter_module.o \
objs/src/http/ngx_http_postpone_filter_module.o \
objs/src/http/modules/ngx_http_ssi_filter_module.o \
objs/src/http/modules/ngx_http_charset_filter_module.o \
objs/src/http/modules/ngx_http_userid_filter_module.o \
objs/src/http/modules/ngx_http_autoindex_module.o \
objs/src/http/modules/ngx_http_auth_basic_module.o \
objs/src/http/modules/ngx_http_access_module.o \
objs/src/http/modules/ngx_http_limit_conn_module.o \
objs/src/http/modules/ngx_http_limit_req_module.o \
objs/src/http/modules/ngx_http_geo_module.o \
objs/src/http/modules/ngx_http_map_module.o \
objs/src/http/modules/ngx_http_split_clients_module.o \
objs/src/http/modules/ngx_http_referer_module.o \
objs/src/http/modules/ngx_http_rewrite_module.o \
objs/src/http/modules/ngx_http_proxy_module.o \
objs/src/http/modules/ngx_http_fastcgi_module.o \
objs/src/http/modules/ngx_http_uwsgi_module.o \
objs/src/http/modules/ngx_http_scgi_module.o \
objs/src/http/modules/ngx_http_memcached_module.o \
objs/src/http/modules/ngx_http_empty_gif_module.o \
objs/src/http/modules/ngx_http_browser_module.o \
objs/src/http/modules/ngx_http_upstream_hash_module.o \
objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
objs/addon/src/ndk.o \
objs/addon/src/ngx_http_lua_script.o \
objs/addon/src/ngx_http_lua_log.o \
objs/addon/src/ngx_http_lua_subrequest.o \
objs/addon/src/ngx_http_lua_ndk.o \
objs/addon/src/ngx_http_lua_control.o \
objs/addon/src/ngx_http_lua_time.o \
objs/addon/src/ngx_http_lua_misc.o \
objs/addon/src/ngx_http_lua_variable.o \
objs/addon/src/ngx_http_lua_string.o \
objs/addon/src/ngx_http_lua_output.o \
objs/addon/src/ngx_http_lua_headers.o \
objs/addon/src/ngx_http_lua_req_body.o \
objs/addon/src/ngx_http_lua_uri.o \
objs/addon/src/ngx_http_lua_args.o \
objs/addon/src/ngx_http_lua_ctx.o \
objs/addon/src/ngx_http_lua_regex.o \
objs/addon/src/ngx_http_lua_module.o \
objs/addon/src/ngx_http_lua_headers_out.o \
objs/addon/src/ngx_http_lua_headers_in.o \
objs/addon/src/ngx_http_lua_directive.o \
objs/addon/src/ngx_http_lua_consts.o \
objs/addon/src/ngx_http_lua_exception.o \
objs/addon/src/ngx_http_lua_util.o \
objs/addon/src/ngx_http_lua_cache.o \
objs/addon/src/ngx_http_lua_contentby.o \
objs/addon/src/ngx_http_lua_rewriteby.o \
objs/addon/src/ngx_http_lua_accessby.o \
objs/addon/src/ngx_http_lua_setby.o \
objs/addon/src/ngx_http_lua_capturefilter.o \
objs/addon/src/ngx_http_lua_clfactory.o \
objs/addon/src/ngx_http_lua_pcrefix.o \
objs/addon/src/ngx_http_lua_headerfilterby.o \
objs/addon/src/ngx_http_lua_shdict.o \
objs/addon/src/ngx_http_lua_socket_tcp.o \
objs/addon/src/ngx_http_lua_api.o \
objs/addon/src/ngx_http_lua_logby.o \
objs/addon/src/ngx_http_lua_sleep.o \
objs/addon/src/ngx_http_lua_coroutine.o \
objs/addon/src/ngx_http_lua_bodyfilterby.o \
objs/addon/src/ngx_http_lua_initby.o \
objs/addon/src/ngx_http_lua_initworkerby.o \
objs/addon/src/ngx_http_lua_socket_udp.o \
objs/addon/src/ngx_http_lua_req_method.o \
objs/addon/src/ngx_http_lua_phase.o \
objs/addon/src/ngx_http_lua_uthread.o \
objs/addon/src/ngx_http_lua_timer.o \
objs/addon/src/ngx_http_lua_config.o \
objs/addon/src/ngx_http_lua_worker.o \
objs/ngx_modules.o \
-Wl,-rpath,/usr/apps/luajit/lib -Wl,-E -lpthread -lcrypt -L/usr/apps/luajit/lib -lluajit-5.1 -lm pcre-8.36/.libs/libpcre.a zlib-1.2.8/libz.a
make[1]:正在离开目录 `/usr/apps/nginx-1.7.10'
make -f objs/Makefile manpage
make[1]: 正在进入目录 `/usr/apps/nginx-1.7.10'
sed -e "s|%%PREFIX%%|/usr/apps/nginx|" \
-e "s|%%PID_PATH%%|/usr/apps/nginx/logs/nginx.pid|" \
-e "s|%%CONF_PATH%%|/usr/apps/nginx/conf/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/usr/apps/nginx/logs/error.log|" \
< man/nginx.8 > objs/nginx.8
make[1]:正在离开目录 `/usr/apps/nginx-1.7.10'
...
cc -o objs/nginx \
objs/src/core/nginx.o \
objs/src/core/ngx_log.o \
objs/src/core/ngx_palloc.o \
objs/src/core/ngx_array.o \
objs/src/core/ngx_list.o \
objs/src/core/ngx_hash.o \
objs/src/core/ngx_buf.o \
objs/src/core/ngx_queue.o \
objs/src/core/ngx_output_chain.o \
objs/src/core/ngx_string.o \
objs/src/core/ngx_parse.o \
objs/src/core/ngx_inet.o \
objs/src/core/ngx_file.o \
objs/src/core/ngx_crc32.o \
objs/src/core/ngx_murmurhash.o \
objs/src/core/ngx_md5.o \
objs/src/core/ngx_rbtree.o \
objs/src/core/ngx_radix_tree.o \
objs/src/core/ngx_slab.o \
objs/src/core/ngx_times.o \
objs/src/core/ngx_shmtx.o \
objs/src/core/ngx_connection.o \
objs/src/core/ngx_cycle.o \
objs/src/core/ngx_spinlock.o \
objs/src/core/ngx_cpuinfo.o \
objs/src/core/ngx_conf_file.o \
objs/src/core/ngx_resolver.o \
objs/src/core/ngx_open_file_cache.o \
objs/src/core/ngx_crypt.o \
objs/src/core/ngx_proxy_protocol.o \
objs/src/core/ngx_syslog.o \
objs/src/event/ngx_event.o \
objs/src/event/ngx_event_timer.o \
objs/src/event/ngx_event_posted.o \
objs/src/event/ngx_event_busy_lock.o \
objs/src/event/ngx_event_accept.o \
objs/src/event/ngx_event_connect.o \
objs/src/event/ngx_event_pipe.o \
objs/src/os/unix/ngx_time.o \
objs/src/os/unix/ngx_errno.o \
objs/src/os/unix/ngx_alloc.o \
objs/src/os/unix/ngx_files.o \
objs/src/os/unix/ngx_socket.o \
objs/src/os/unix/ngx_recv.o \
objs/src/os/unix/ngx_readv_chain.o \
objs/src/os/unix/ngx_udp_recv.o \
objs/src/os/unix/ngx_send.o \
objs/src/os/unix/ngx_writev_chain.o \
objs/src/os/unix/ngx_channel.o \
objs/src/os/unix/ngx_shmem.o \
objs/src/os/unix/ngx_process.o \
objs/src/os/unix/ngx_daemon.o \
objs/src/os/unix/ngx_setaffinity.o \
objs/src/os/unix/ngx_setproctitle.o \
objs/src/os/unix/ngx_posix_init.o \
objs/src/os/unix/ngx_user.o \
objs/src/os/unix/ngx_process_cycle.o \
objs/src/os/unix/ngx_linux_init.o \
objs/src/event/modules/ngx_epoll_module.o \
objs/src/os/unix/ngx_linux_sendfile_chain.o \
objs/src/core/ngx_regex.o \
objs/src/http/ngx_http.o \
objs/src/http/ngx_http_core_module.o \
objs/src/http/ngx_http_special_response.o \
objs/src/http/ngx_http_request.o \
objs/src/http/ngx_http_parse.o \
objs/src/http/ngx_http_header_filter_module.o \
objs/src/http/ngx_http_write_filter_module.o \
objs/src/http/ngx_http_copy_filter_module.o \
objs/src/http/modules/ngx_http_log_module.o \
objs/src/http/ngx_http_request_body.o \
objs/src/http/ngx_http_variables.o \
objs/src/http/ngx_http_script.o \
objs/src/http/ngx_http_upstream.o \
objs/src/http/ngx_http_upstream_round_robin.o \
objs/src/http/ngx_http_parse_time.o \
objs/src/http/modules/ngx_http_static_module.o \
objs/src/http/modules/ngx_http_index_module.o \
objs/src/http/modules/ngx_http_chunked_filter_module.o \
objs/src/http/modules/ngx_http_range_filter_module.o \
objs/src/http/modules/ngx_http_headers_filter_module.o \
objs/src/http/modules/ngx_http_not_modified_filter_module.o \
objs/src/http/ngx_http_busy_lock.o \
objs/src/http/ngx_http_file_cache.o \
objs/src/http/modules/ngx_http_gzip_filter_module.o \
objs/src/http/ngx_http_postpone_filter_module.o \
objs/src/http/modules/ngx_http_ssi_filter_module.o \
objs/src/http/modules/ngx_http_charset_filter_module.o \
objs/src/http/modules/ngx_http_userid_filter_module.o \
objs/src/http/modules/ngx_http_autoindex_module.o \
objs/src/http/modules/ngx_http_auth_basic_module.o \
objs/src/http/modules/ngx_http_access_module.o \
objs/src/http/modules/ngx_http_limit_conn_module.o \
objs/src/http/modules/ngx_http_limit_req_module.o \
objs/src/http/modules/ngx_http_geo_module.o \
objs/src/http/modules/ngx_http_map_module.o \
objs/src/http/modules/ngx_http_split_clients_module.o \
objs/src/http/modules/ngx_http_referer_module.o \
objs/src/http/modules/ngx_http_rewrite_module.o \
objs/src/http/modules/ngx_http_proxy_module.o \
objs/src/http/modules/ngx_http_fastcgi_module.o \
objs/src/http/modules/ngx_http_uwsgi_module.o \
objs/src/http/modules/ngx_http_scgi_module.o \
objs/src/http/modules/ngx_http_memcached_module.o \
objs/src/http/modules/ngx_http_empty_gif_module.o \
objs/src/http/modules/ngx_http_browser_module.o \
objs/src/http/modules/ngx_http_upstream_hash_module.o \
objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
objs/addon/src/ndk.o \
objs/addon/src/ngx_http_lua_script.o \
objs/addon/src/ngx_http_lua_log.o \
objs/addon/src/ngx_http_lua_subrequest.o \
objs/addon/src/ngx_http_lua_ndk.o \
objs/addon/src/ngx_http_lua_control.o \
objs/addon/src/ngx_http_lua_time.o \
objs/addon/src/ngx_http_lua_misc.o \
objs/addon/src/ngx_http_lua_variable.o \
objs/addon/src/ngx_http_lua_string.o \
objs/addon/src/ngx_http_lua_output.o \
objs/addon/src/ngx_http_lua_headers.o \
objs/addon/src/ngx_http_lua_req_body.o \
objs/addon/src/ngx_http_lua_uri.o \
objs/addon/src/ngx_http_lua_args.o \
objs/addon/src/ngx_http_lua_ctx.o \
objs/addon/src/ngx_http_lua_regex.o \
objs/addon/src/ngx_http_lua_module.o \
objs/addon/src/ngx_http_lua_headers_out.o \
objs/addon/src/ngx_http_lua_headers_in.o \
objs/addon/src/ngx_http_lua_directive.o \
objs/addon/src/ngx_http_lua_consts.o \
objs/addon/src/ngx_http_lua_exception.o \
objs/addon/src/ngx_http_lua_util.o \
objs/addon/src/ngx_http_lua_cache.o \
objs/addon/src/ngx_http_lua_contentby.o \
objs/addon/src/ngx_http_lua_rewriteby.o \
objs/addon/src/ngx_http_lua_accessby.o \
objs/addon/src/ngx_http_lua_setby.o \
objs/addon/src/ngx_http_lua_capturefilter.o \
objs/addon/src/ngx_http_lua_clfactory.o \
objs/addon/src/ngx_http_lua_pcrefix.o \
objs/addon/src/ngx_http_lua_headerfilterby.o \
objs/addon/src/ngx_http_lua_shdict.o \
objs/addon/src/ngx_http_lua_socket_tcp.o \
objs/addon/src/ngx_http_lua_api.o \
objs/addon/src/ngx_http_lua_logby.o \
objs/addon/src/ngx_http_lua_sleep.o \
objs/addon/src/ngx_http_lua_coroutine.o \
objs/addon/src/ngx_http_lua_bodyfilterby.o \
objs/addon/src/ngx_http_lua_initby.o \
objs/addon/src/ngx_http_lua_initworkerby.o \
objs/addon/src/ngx_http_lua_socket_udp.o \
objs/addon/src/ngx_http_lua_req_method.o \
objs/addon/src/ngx_http_lua_phase.o \
objs/addon/src/ngx_http_lua_uthread.o \
objs/addon/src/ngx_http_lua_timer.o \
objs/addon/src/ngx_http_lua_config.o \
objs/addon/src/ngx_http_lua_worker.o \
objs/ngx_modules.o \
-Wl,-rpath,/usr/apps/luajit/lib -Wl,-E -lpthread -lcrypt -L/usr/apps/luajit/lib -lluajit-5.1 -lm pcre-8.36/.libs/libpcre.a zlib-1.2.8/libz.a
make[1]:正在离开目录 `/usr/apps/nginx-1.7.10'
make -f objs/Makefile manpage
make[1]: 正在进入目录 `/usr/apps/nginx-1.7.10'
sed -e "s|%%PREFIX%%|/usr/apps/nginx|" \
-e "s|%%PID_PATH%%|/usr/apps/nginx/logs/nginx.pid|" \
-e "s|%%CONF_PATH%%|/usr/apps/nginx/conf/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/usr/apps/nginx/logs/error.log|" \
< man/nginx.8 > objs/nginx.8
make[1]:正在离开目录 `/usr/apps/nginx-1.7.10'
# 6. install(安装)
make install
make install
相关推荐
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++ PCRE(PerlCompatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的...
直接从源码编译LibreSSL,构建过程的输出非常简洁,源码还附带测试用例及提供并行构建支持(见附录)。 # 用于构建及安装 libressl 的选项 $ ./configure --prefix=/usr LDFLAGS=-lrt && make check && sudo ...
它已经过测试,可以针对 nginx 1.5.12 和 1.7.4(OpenResty 版本)进行构建。 它们可以简单地编译为 ./configure --add-module= 从 nginx 源目录,然后是标准的make和make install命令。 nginx配置 ngx_zmq 使用...
nginx源码: /nginx/objs/lib 下放置以下项目: openssl: pcre: zlib: nginx-http-flv-module: 使用方法可参考 nginx nginx-rtmp-module 软件准备 1.安装 Visual Studio 2019 包含单个组件: .NET Framework ...
在构建期间从源代码编译 FROM scratch ,零膨胀 静态链接到C标准库的实现 减少攻击面(无外壳,无UNIX工具,无包管理器...) 以非特权(非root )用户身份运行 建造 docker build --tag ricardbejarano/nginx --...
docker-webserver:源码编译docker容器服务 github地址: : 作者:fooldoc 微信公众号:傻瓜文档 博客: 电子邮件: 支持系统环境 伦克斯 视窗 苹果电脑 任何支持安装docker docker-compose的系统 功能介绍 一键...
该模板使用和将TypeScript源代码编译为njs和的单个JavaScript文件,并通过对NGINX服务器运行集成测试。 目录 先决条件 要在本地构建和运行此项目,您将需要: Linux系统[ 1 ] ,macOS [ 2 ]或Windows 10+(x64) ...
关于nginxctl nginxctl 是一个小型实用程序,用于管理从源代码编译的本地 Nginx 实例。 它对于开发或测试自定义 Nginx 模块非常有用,尤其是在 Mac OS X 上。 执照 请参阅许可证文件。
要从源代码构建最新的systemtap,请参阅此文档: : 另外,如果没有从源代码编译Nginx,则应确保已为Nginx(和其他依赖项)启用(DWARF)debuginfo(或单独安装)。 最后,您还需要安装内核调试符号和内核标头。 ...
构建Linux下Web服务器的软件源码包!主要安装方式为源码编译安装!
所有模块均基于Debian和Alpine Linux基础映像上的源代码构建。特征后端是带有 。 用于转码和自适应流。 默认设置: RTMP已开启HLS已启用(自适应,5个变体) DASH已开启还提供了其他Nginx配置文件,以允许仅RTMP流...
一键编译安装LNMP LAMP支持CentOS6,CentOS7,RHEL6,RHEL7启用交换启用iptables修改SSH服务端口使用OpenSSL 1.1.1构建的Nginx / 1.16.1 Apache2.2.34工作模式为PreforkMPM(最终版本2.2.34已于2017年7月发布) ...
最后一步,编译安装Python3,默认的安装目录是 /usr/local tar xf Python-3.7.6.tgz cd Python-3.7.6 ./configure make sudo make install #如果你要使用Python3作为python的默认版本,你需要修改一下 #bashrc 文件...
从 master 分支克隆最新的 PHP 源代码库从源代码构建 PHP 并启用调试信息和 gcov 构建运行常见 PHP 框架/应用程序所需的扩展(composer/Symfony2) 使用 opcache 将编译后的 PHP 二进制文件安装为 SAPI FPM 安装...
本系统是基于RBAC授权和基于用户授权的细粒度权限控制通用平台,并提供单点登录、会话管理和日志管理。接入的系统可自由定义组织、角色、权限、资源等。用户权限=所拥有角色权限合集+用户加权限-用户减权限,优先级...
1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用问题请私信沟通。 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校...
知识点4: 编译安装软件,找一个软件 实战项目: C语言实现一个简单的命令行系统 第三阶段 实战Linux网络与运维 第六讲 Linux网络基础 知识点1: 计算机网络基础 知识点2: ifconfig 知识点3: 网络测试命令:主机 ...
java8 看不到源码T2DREAM ...验证是否已安装并正常工作: brew doctor 2. (Mac) 安装或更新其他依赖项: brew install libevent libmagic libxml2 libxslt openssl graphviz nginx brew install freetype lib
正如前文“linux入门系列6–软件包管理之rpm和yum仓库”所述,在Linux上安装软件通常有几种方式:通过编译源码安装、通过RPM安装、通过YUM仓库安装。截至目前,前面的文章都是通过yum或rpm方式进行安装,本文演示...
所有模块均基于Debian和Alpine Linux基础映像上的源代码构建。 特征 后端是带有 。 用于转码和自适应流。 默认设置: RTMP已开启 HLS已启用(自适应,5个变体) DASH已开启 还提供了其他Nginx配置文件,以允许...