macOS环境编译NGINX
为了 NGINX WebDAV服务器 能够实现完整的
编译采用独立的安装目录,并且对于NGINX的依赖软件包进行源代码编译,这样可以不依赖 Homebrew 实现完整的软件堆栈:
安装
--prefix
目录选择/opt/nginx
编译
(预先)配置编译环境 编译配置 CPPFLAGS 和 LDFLAGS :
编译环境参数
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 WebDAV服务器 准备第三方NGINX模块 nginx-dav-ext-module :
准备第三方 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数据