我想用WebDAV模块为Windows构建nginx,所以我遵循了 Building nginx on the Win32 platform with Visual C 上的文档。
**环境 *
- Windows 10
- Microsoft Visual C++生成工具
- msys2-x86_64-20220603.exe
- strawberry-perl-5.32.1.1-64bit.msi
步骤
使用MSYS2运行以下脚本:
cd /d/source/nginx
hg clone http://hg.nginx.org/nginx
tar -xzf ../pcre-8.45.tar.gz
tar -xzf ../zlib-1.2.12.tar.gz
tar -xzf ../openssl-1.1.1q.tar.gz
git clone https://github.com/arut/nginx-dav-ext-module.git ../nginx-dav-ext-module
auto/configure --with-cc=cl --builddir=objs \
--with-debug --prefix= --conf-path=conf/nginx.conf \
--pid-path=logs/nginx.pid --http-log-path=logs/access.log \
--error-log-path=logs/error.log --sbin-path=nginx.exe \
--http-client-body-temp-path=temp/client_body_temp \
--http-proxy-temp-path=temp/proxy_temp \
--http-fastcgi-temp-path=temp/fastcgi_temp \
--http-scgi-temp-path=temp/scgi_temp \
--http-uwsgi-temp-path=temp/uwsgi_temp \
--with-cc-opt=-DFD_SETSIZE=1024 \
--with-pcre=../pcre-8.45 \
--with-zlib=../zlib-1.2.12 \
--with-select_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_stub_status_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-mail \
--with-stream \
--with-openssl=../openssl-1.1.1q \
--with-openssl-opt=no-asm \
--with-http_ssl_module \
--with-mail_ssl_module \
--with-stream_ssl_module \
--add-module=../nginx-dav-ext-module
但是发生了一个错误:
checking for libxslt ... not found
checking for libxslt in /usr/local/ ... not found
checking for libxslt in /usr/pkg/ ... not found
checking for libxslt in /opt/local/ ... not found
我尝试使用pacman -S mingw-w64-x86_64-libxslt
安装libxslt,但没有任何运气。
如何解决这一问题?
1条答案
按热度按时间txu3uszq1#
有趣的是,我几乎一天前也试过这样做。我的情况有些不同,我(重新)构建了一个OpenResty捆绑包,因为需要
ngx_http_xslt_module
。我也使用msys 2-x86_64-20220603,但是我的构建工具链是MinGW GCC 12.1.0 /MSYS 2 make /etc。我基本上遇到了同样的问题,并通过以下方式解决了它。1.从MinGW安装
libxml2
和libxslt
库:1.修改
auto/lib/libxslt/conf
文件,在该文件中定义了查找libxml2
/libxslt
库、头文件和XML对象的规则。这是我的补丁到这个文件:1.构建一个nginx可执行文件。构建完成后,
C:\MSYS64\mingw64\bin
文件夹中的以下DLL应放置在nginx.exe
二进制文件中:libxslt-1.dll
、libexslt-0.dll
、libxml2-2.dll
、libiconv-2.dll
、liblzma-5.dll
、zlib1.dll
(最后三个是libxml2-2.dll
依赖项)。