LXT6架构-嵌入式Web服务器Nginx交叉编译与配置使用(ARMv7)
来源:互联网 发布:淘宝电商卖家怎么做 编辑:程序博客网 时间:2024/06/10 02:04
1. 交叉编译PCRE库,Nginx对PCRE库有依赖,PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括Perl 兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。
下载: pcre-8.30.tar.bz2 (参考放置路劲:/home/fqheda/XT-linux/LXT6/Eweb/eweb-v3.0.3/)
tar -jxvf pcre-8.30.tar.bz2
chmod -Rf 777 pcre-8.30
cd pcre-8.30
./configure CC=arm-arago-linux-gnueabi-gcc --host=arm-arago-linux-gnueabi --prefix=/home/nginx
make
make install
2. 交叉编译Nginx,Nginx不多做解释,假设"你懂的"。
下载: nginx-1.0.15.tar.gz (参考放置路劲:/home/fqheda/XT-linux/LXT6/Eweb/eweb-v3.0.3/)
tar -zxvf nginx-1.0.15.tar.gz
chmod -Rf 777 nginx-1.0.15
cd nginx-1.0.15 打补丁:
补丁a:nginx-1.0.15\auto\cc\conf
case $NGX_CC_NAME in
arm-arago-linux-gnueabi-gcc)
# Modify By XinTinG
# gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2
补丁b-1:nginx-1.0.15\auto\types\sizeof
----------------------------------------
checking for $ngx_type size
END
## Modify By XinTinG
ngx_size=4
补丁b-2:nginx-1.0.15\auto\types\sizeof
## Modify By XinTinG
##ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
ngx_test="gcc $CC_TEST_FLAGS $CC_AUX_FLAGS \
-o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
##eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
##if [ -x $NGX_AUTOTEST ]; then
## ngx_size= `$NGX_AUTOTEST`
## echo " $ngx_size bytes"
##fi
补丁c:nginx-1.0.15\auto\feature
yes)
# /bin/sh is used to intercept "Killed" or "Abort trap" messages
##if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
echo " found"
ngx_found=yes
if test -n "$ngx_feature_name"; then
have=$ngx_have_feature . auto/have
fi
## Modify By XinTinG
##else
## echo " found but is not working"
##fi
;;
补丁d:nginx-1.0.15\configure
if test -z "$NGX_PLATFORM"; then
echo "checking for OS"
##NGX_SYSTEM=`uname -s 2>/dev/null` ## Modify By XinTinG
##NGX_RELEASE=`uname -r 2>/dev/null`
##NGX_MACHINE= "arm" ##`uname -m 2>/dev/null`
补丁e:nginx-1.0.15\src\os\unix\ngx_time.h
#include <time.h> // Modify By XinTinG
#include <ngx_config.h>
#include <ngx_core.h>
补丁f:nginx-1.0.15\src\os\unix\ngx_errno.h
#define NGX_ECANCELED ECANCELED
#define NGX_EILSEQ EILSEQ
#define NGX_ENOMOREFILES 0
#define NGX_SYS_NERR 1 // Modify By XinTinG
交叉编译:
export CC=arm-arago-linux-gnueabi-gcc
export LD=arm-arago-linux-gnueabi-ld
export AR=arm-arago-linux-gnueabi-ar
export NGX_SYSTEM=linux
export NGX_RELEASE=3.2-XT6
export NGX_MACHINE=arm
cd nginx-1.0.15
make clean
./configure --with-google_perftools_module --with-http_stub_status_module --prefix=/home/nginx --with-pcre=/home/fqheda/XT-linux/LXT6/Eweb/eweb-v3.0.3/pcre-8.30 --with-cc-opt="-O2 -Wall -Wpointer-arith -I/home/nginx/include" --with-ld-opt="-L/home/nginx/lib"
make CPU=arm
make install
打安装包:
cd /home
tar -jcvf nginx.tar.bz2 nginx
3. 安装运行Nginx (ARM板开发平台)
nginx.tar.bz2 解压到arm板linux shell控制台中home文件夹;
定向nginx动态库位置 : export LD_LIBRARY_PATH=/home/nginx/lib:$LD_LIBRARY_PATH
启动nginx : /home/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf
注:测试(http://arm_board_ip)前,请认真理解配置文件nginx.conf 并根据需要修改,本移植已在全国各地近千台物联网(嵌入式)设备上良好运行(相当于每台设备安装了一个小型网站)。
(作者 冯青华 信庭嵌入式工作室- 主管 Blog:http://blog.csdn.net/fqheda )
<转载请注名来路>
- LXT6架构-嵌入式Web服务器Nginx交叉编译与配置使用(ARMv7)
- LXT6架构-嵌入式Ftp服务器Vsftpd交叉编译与配置使用(ARMv7)
- 嵌入式web服务器lighttpd的交叉编译及配置(for arm-linux)
- 交叉编译嵌入式web服务器boa
- 嵌入式web服务器lighttpd的交叉编译及配置--xilinx zynq
- Nginx架构WEB服务器
- 嵌入式服务器appweb交叉编译指南
- 高性能Web服务器Nginx的配置与部署研究(5)Nginx配置符号
- 高性能Web服务器Nginx的配置与部署研究(5)Nginx配置符号
- nginx配置web服务器
- Nginx 配置 Web服务器
- nginx web服务器配置
- 使用嵌入式web服务器
- Ubuntu配置嵌入式交叉编译环境
- Ubuntu配置嵌入式交叉编译环境
- 嵌入式Linux交叉编译环境配置
- Nginx配置静态服务器与WEB应用服务器映射
- 高性能Web服务器Nginx的配置与部署研究(3)Nginx请求处理机制
- Java语言基础之多态
- 嵌入式的根文件系统
- SQL不同数据库下的查询前n条记录
- 洋洋洒洒c作业
- [leetcode] Binary Tree Right Side View
- LXT6架构-嵌入式Web服务器Nginx交叉编译与配置使用(ARMv7)
- Linux netfilter 学习笔记 之三 ip层netfilter的table、rule、match、target结构分析
- Genymotion模拟器不能上网的解决办法
- 【LeetCode】Valid Parentheses
- cf 7a Kalevitch and Chess
- Mac系统显示和隐藏文件夹
- Positional parameter does not exist: 1 in query: from Books where isbn=?
- 使用Python工具抓取网页
- HDU1045