使用 pcre 和 openssl 从源代码安装 NGINX 会在 make 时抛出错误

问题描述 投票:0回答:2

我正在尝试在 Ubuntu 14.04.3 LTS 上从源代码安装 NGINX [通过 DigitalOcean],但在 make 过程中遇到问题。

这是我的 bash 脚本:

wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar xzf nginx-1.8.0.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.20.tar.gz
tar xzf pcre2-10.20.tar.gz
wget http://zlib.net/zlib-1.2.8.tar.gz
tar xzf zlib-1.2.8.tar.gz
wget https://openssl.org/source/openssl-1.0.2e.tar.gz
tar xzf openssl-1.0.2e.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/etc/nginx.conf --user=nginx --group=nginx --with-http_ssl_module --with-pcre=/root/src/pcre2-10.20 --with-zlib=/root/src/zlib-1.2.8 --with-openssl=/root/src/openssl-1.0.2e
make

我收到以下错误:

make[2]: Entering directory `/root/src/pcre2-10.20'
make[2]: *** No rule to make target `libpcre.la'.  Stop.
make[2]: Leaving directory `/root/src/pcre2-10.20'
make[1]: *** [/root/src/pcre2-10.20/.libs/libpcre.a] Error 2
make[1]: Leaving directory `/root/src/nginx-1.8.0'
make: *** [build] Error 2

我使用

gcc -v
检查了 gcc 版本,它显示为 4.8.4。

我该如何解决这个问题?

更新

原来我使用的PCRE版本是错误的,所以我改成了版本1,一切正常。这是更新后的 bash 脚本:

wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar xzf nginx-1.8.0.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar xzf pcre-8.38.tar.gz
wget http://zlib.net/zlib-1.2.8.tar.gz
tar xzf zlib-1.2.8.tar.gz
wget https://openssl.org/source/openssl-1.0.2e.tar.gz
tar xzf openssl-1.0.2e.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/etc/nginx.conf --user=nginx --group=nginx --with-http_ssl_module --with-pcre=/root/src/pcre-8.38 --with-zlib=/root/src/zlib-1.2.8 --with-openssl=/root/src/openssl-1.0.2e
make

感谢@EtanReiser 的发现。

linux bash ubuntu nginx
2个回答
9
投票

您使用的 PCRE 版本错误。

您正在尝试使用 PCRE2 版本的库,但 nginx 需要 PCRE 版本的库。

来自文档

--with-pcre=path
— 设置 PCRE 库源的路径。库发行版(版本 4.4 — 8.32)需要从 PCRE 站点下载并提取。其余的由 nginx 的
./configure
make
完成。 location指令和ngx_http_rewrite_module模块中的正则表达式支持需要该库。


1
投票

Nginx 有编译依赖。除了能够编译 C 之外,您还需要:

sudo apt-get install \
    libpcre3   libpcre3-dev \
    zlib1g     zlib1g-dev \
    libssl-dev
© www.soinside.com 2019 - 2024. All rights reserved.