sam9260目标板上设定thttpd服务后出现/usr/sbin/thttpd: unknown user - 'httpd'错误提示

问题:

目标板:sam9260;

运行状态:bootstrap、U-Boot、kernel和rootfs都已经成功完成,这些文件烧写到Flash中可以让目标板以nandflash自身启动系统,进入shell界面;

现在想添加web应用,使用thttpd服务器;

http://www.acme.com/software/thttpd/获得thttpd的源码,放到${PRJROOT}/sysapps中,解压之后,使用如下命令进行交叉编译:

$ CC=arm-linux-gcc ./configure --host=arm-linux
$ make
将生成的thttpd复制到目标系统的根文件系统,并进行strip处理;

$ cp thttpd ${PRJROOT}/rootfs/root422/usr/sbin
$ arm-linux-strip ${PRJROOT}/rootfs/root422/usr/sbin/thttpd
将范例配置文件复制到目标板的根文件系统:

$ cp contrib/redhat-rpm/thttpd.conf ${PRJROOT}/rootfs/root422/etc
范例配置文件中,将thttpd的用户设成httpd这个帐号,将网页内容存放在目标板的/home/httpd/html目录:

$ mkdir -p ${PRJROOT}/rootfs/root422/home/httpd/html
最后,编辑目标板的/etc/inittab文件,将下面一行添加到inittab中:

::respawn:/usr/sbin/thttpd -C /etc/thttpd.conf

重启目标板,从console窗口看到不停地出现如下提示:

/usr/sbin/thttpd: unknown user - 'httpd'


解决办法:

因为在thttpd.conf中设定httpd为用户,而thttpd不能识别httpd这个用户,

试着修改/etc/passwd文件,添加httpd这个用户,如下所示:

httpd:x:498:494:Web server user:/home/httpd/html:/bin/sh
再次重启目标板,提示/var/log/thttpd.log文件找不到,

在目标板的/var目录下添加两个文件:

$ mkdir -p /var/log
$ mkdir -p /var/run
$ sudo touch /var/log/thttpd.log
$ sudo touch /var/run/thttpd.pid
再次重启目标板,待进入shell界面,从主机的浏览器中输入:

目标板IP:port/html文件名
在本人所用的调试环境下,浏览器地址栏输入:

192.168.37.244:81/a.html

就可以看到静态网页界面了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值