RV1126_交叉编译nginx库_添加nginx-upload-module模块
1、下载所需要的库,包括openssl、zlib、prce
下载并解压缩prce
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar -zxvf pcre-8.35.tar.gz
下载并解压缩zlib
http://www.zlib.net/fossils/可以自行查看各个版本的并下载,下载后放到服务器解压
tar -zvxf zlib-1.2.11.tar.gz
下载并解压缩openssl
https://openssl-library.org/source/
tar -zxvf openssl-1.1.0l.tar.gz
nginx下载
https://nginx.org/en/download.html自行下载
tar -zvxf nginx-1.12.2.tar.gz
2、配置
在nginx文件路径下发送如下指令:
./configure --with-cc=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-gcc --with-cpp=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-g++ --prefix=/home/ebaina/work/rv1126/mynginx --with-pcre=../pcre-8.35 --with-openssl=../openssl-1.1.0l --with-zlib=../zlib-1.2.11 --add-module=../nginx-upload-module
具体解释:
--with-cc=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-gcc //交叉编译工具所在位置
--with-cpp=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-g++ //交叉编译工具所在位置
--prefix=/home/ebaina/work/rv1126/mynginx //对应的是生成文件存放的目录位置
--with-pcre=../pcre-8.35 //对应的是pcre库的绝对路径与版本号
--with-openssl=../openssl-1.1.0l //对应的是openssl库的绝对路径与版本号
--with-zlib=../zlib-1.2.11 //对应的是zlib库的绝对路径与版本号
--add-module=../nginx-upload-module//对应的是nginx-upload-module库的绝对路径
执行命令出现下图信息,表示configure配置完成
rv1126之前已经部署过nginx服务器,这次重新编译是因为想添加上传文件模块,之前有很多默认路径了,所以重新编译了一下,添加了点内容
./configure --with-cc=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-gcc --with-cpp=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-g++ --prefix=/usr --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-ld-opt="-L/home/ebaina/work/code2/env_1126/lib64" --with-cc-opt="-I/home/ebaina/work/code2/env_1126/include" --with-pcre=/home/ebaina/work/rv1126/pcre-8.35 --add-module=../nginx-upload-module --without-http_upstream_zone_module
3、开始编译
make
参考:
添加链接描述
遇到的报错点
1、
解决方法
vi objs/ngx_auto_config.h
#ifndef NGX_SYS_NERR
#define NGX_SYS_NERR 132
#endif
2、
vim objs/Makefile
删掉-Werror

3、
vi objs/ngx_auto_config.h
#ifndef NGX_HAVE_SYSVSHM
#define NGX_HAVE_SYSVSHM 1
#endif
终于成功了
4、已有编译好的库环境情况下,怎么配置
====================================================================================
已有rv1126环境,所以可以不用上面的源码进行配置了,但是编译过程中遇到的错误解决仍可以参考上面内容。
./configure
--with-cc=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-gcc
--with-cpp=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-g++
--prefix=/home/ebaina/work/rv1126/mynginx
--with-ld-opt="-L/home/ebaina/work/code2/env_1126/lib64"
--with-cc-opt="-I/home/ebaina/work/code2/env_1126/include"
--add-module=../nginx-upload-module
--without-http_upstream_zone_module
按上面配置后,会报错,提示说没有找不到pcre库。
所以我们需要交叉编译一下pcre源码,参考:交叉编译pcre库
接着把配置信息改成
./configure
--with-cc=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-gcc
--with-cpp=/opt/atk-dlrv1126-toolchain/usr/bin/arm-linux-gnueabihf-g++
--prefix=/home/ebaina/work/rv1126/mynginx
--with-ld-opt="-L/home/ebaina/work/code2/env_1126/lib64"
--with-cc-opt="-I/home/ebaina/work/code2/env_1126/include"
--with-pcre=/home/ebaina/work/rv1126/pcre-8.35 //pcre源码目录
--add-module=../nginx-upload-module
--without-http_upstream_zone_module

可以看到,配置成功了,然后,make,报错内容可以参考上面内容进行解决。
make install后,生成文件即将存放到–prefix对应目录位置。

5、移植到开发板
将mynginx文件拷贝到开发板。
然后将文件分别拷贝到/etc/nginx/和/usr/sbin/
cp -r mynginx/* /etc/nginx/
cp mynginx/sbin/nginx /usr/sbin/
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)