移植nginx+fastcgi+lua到Nuc972(3)——打包nginx到开发板上(出错 暂时搁置)

1、打包文件到开发板

把编译得到的文件打包到开发板

ubuntu:tar -cvf nginx.tar.gz nginx

开发板:tar -xvf nginx.tar.gz

在开发板上运行:./nginx -p /smarthome/webcontent/nginx/

出现错误:nginx: [emerg] getgrnam("nogroup") failed

把nginx.conf 第二行改为user  root;并支持注释

再试

出现Segmentation fault,莫非是交叉编译的时候出问题了,用GDB Server调试看看

1)编译一个gdbserver

下载gdb-6.6源码,由于我只需要gdbserver故直接到gdb/gdbserver目录下

./configure  --host=arm-nuvoton-linux-uclibceabi --target=arm-nuvoton-linux-uclibceabi 

Makefile中添加-static,(如果不加后面会出现包依赖的问题)

2)得到gdbserver

2.gdbserver调试程序

(1)arm端

./gdbserver 192.168.1.28:2345 nginx -p /smarthome/webcontent/nginx/

(2)主机端

      1)arm-linux-gdb nginx

  2)target remote 192.168.1.100:2345

发现有问题

倒回去,重新编译nginx,.1.6.2、1.0.15、版本和当前版本(1.14.0)问题一样

经过几天的调试,发现是ngx_process.c文件下

ngx_int_t
ngx_init_signals(ngx_log_t *log)
{
    ngx_signal_t      *sig;
    struct sigaction   sa;

    for (sig = signals; sig->signo != 0; sig++) {
        ngx_memzero(&sa, sizeof(struct sigaction));
        sa.sa_handler = sig->handler;
        sigemptyset(&sa.sa_mask);
        if (sigaction(sig->signo, &sa, NULL) == -1) {
            ngx_log_error(NGX_LOG_EMERG, log, ngx_errno,
                          "sigaction(%s) failed", sig->signame);
            return NGX_ERROR;
        }
    }

    return NGX_OK;
}

这个函数里sigemptyset(&sa.sa_mask) 这一行出的问题,sigemptyset(sigset_t *)函数里的结构体类型不匹配,struct sigaction   sa中的sa_mask中的类型为long __val[],而需要的是long sig[],推测是新唐提供的编译工具和库与nginx不兼容 ??WTF 

折腾良久,还是没有找到解决方案,暂时搁置,等有时间再看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值