macOS环境编译NGINX

为了 NGINX WebDAV服务器 能够实现完整的

编译采用独立的安装目录,并且对于NGINX的依赖软件包进行源代码编译,这样可以不依赖 Homebrew 实现完整的软件堆栈:

  • 安装 --prefix 目录选择 /opt/nginx

编译

编译环境参数
cat << EOF > /opt/build_env
CPPFLAGS="-I/opt/pcre2/include -I/opt/zlib/include -I/opt/openssl/include" \
LDFLAGS="-L/opt/pcre2/lib -L/opt/zlib/lib -L/opt/openssl/lib"
export CPPFLAGS LDFLAGS
EOF

. /opt/build_env

备注

这里我偷懒了,一次性设置好多个依赖软件包的头文件和库文件环境变量。实际最好是每个依赖软件编译安装完成后再设置对应的环境变量。不过,这里没有什么影响

  • PCRE2 - 支持常用表达式,对于NGINX Core 和 Rewrite 模块都需要

编译 PCRE2
# https://github.com/PCRE2Project/pcre2
pcre2_ver=10.42
prefix_dir=/opt

wget github.com/PCRE2Project/pcre2/releases/download/pcre2-${pcre2_ver}/pcre2-${pcre2_ver}.tar.gz
tar xfz pcre2-${pcre2_ver}.tar.gz
cd pcre2-${pcre2_ver}

./configure --prefix=${prefix_dir}/pcre2-${pcre2_ver}
make
sudo make install

sudo ln -s ${prefix_dir}/pcre2-${pcre2_ver} ${prefix_dir}/pcre2
  • zlib - 支持HTTP 头压缩,对于NGINX Gzip 模块需要

编译 zlib
# http://zlib.net
zlib_ver=1.2.13
prefix_dir=/opt

wget http://zlib.net/zlib-${zlib_ver}.tar.gz
tar xfz zlib-${zlib_ver}.tar.gz
cd zlib-${zlib_ver}

./configure --prefix=${prefix_dir}/zlib-${zlib_ver}
make
sudo make install

sudo ln -s ${prefix_dir}/zlib-${zlib_ver} ${prefix_dir}/zlib
  • OpenSSL - 支持HTTPS协议,对于NGINX SSL模块等需要

编译 OpenSSL
# https://www.openssl.org/
openssl_ver=1.1.1t
prefix_dir=/opt

wget https://www.openssl.org/source/openssl-${openssl_ver}.tar.gz
tar xfz openssl-${openssl_ver}.tar.gz
cd openssl-${openssl_ver}

./Configure darwin64-x86_64-cc --prefix=${prefix_dir}/openssl-${openssl_ver}
make
sudo make install

sudo ln -s ${prefix_dir}/openssl-${openssl_ver} ${prefix_dir}/openssl
准备第三方 nginx-dav-ext-module 源代码目录
# https://github.com/arut/nginx-dav-ext-module
tar xfz nginx-dav-ext-module-3.0.0.tar.gz
  • NGINX - 启用 WebDAV (使用第三方模块)

下载NGIX最新源代码 v1.23.3
# 
nginx_ver=1.23.3
prefix_dir=/opt

wget https://nginx.org/download/nginx-${nginx_ver}.tar.gz
tar xfz nginx-${nginx_ver}.tar.gz
cd nginx-${nginx_ver}

./configure \
    --prefix=${prefix_dir}/nginx-${nginx_ver} \
    --with-pcre=../pcre2-10.42 \
    --with-zlib=../zlib-1.2.13 \
    --with-openssl=../openssl-1.1.1t \
    --with-http_ssl_module \
    --with-stream \
    --with-mail=dynamic \
    --with-http_dav_module \
    --add-dynamic-module=../nginx-dav-ext-module-3.0.0
make
sudo make install

sudo ln -s ${prefix_dir}/nginx-${nginx_ver} ${prefix_dir}/nginx

以上编译安装NGNIX支持 NGINX WebDAV服务器 ,就可以进一步完成配置实现 通过WebDAV同步Joplin数据

参考