这里是在ramfs中使用thttpd的一个简单流程,作为备忘。
1)利用buildroot构建ramfs,make menuconfig 在network中勾选thttpd,保存sudo make
2)配置登录密码,将做好的rootfs.tar解压到chroot /home/myroot下,chroot . bin/sh 用htpasswd生成密码文件
htpasswd -c .htpasswd username
.thpasswd是密码文件 username是用户名这里就用admin
3)为了尽量节省flash空间,修改buildroot-2013.05/package/thttpd/thttpd.mk把除thttpd以外的命令全部去掉
4) 建立index.html和cgi脚本放在/etc/thttpd目录下
5)通过脚本在启动时候构建工作环境
#!/bin/sh
#create data folder
mkdir -m 755 /var/www
mkdir -m 777 /var/www/data
mkdir -m 755 /var/www/logs
echo "dir=/var/www/data" > /var/www/thttpd_config
echo 'cgipat=**.cgi' >> /var/www/thttpd_config
echo "logfile=/var/www/logs/thttpd_log" >> /var/www/thttpd_config
echo "pidfile=/var/run/thttpd.pid" >> /var/www/thttpd_config
cp /etc/thttpd/data/index.html /var/www/data/
chmod 644 /var/www/data/index.html
cp /etc/thttpd/data/Handler.cgi /var/www/data/
chmod 755 /var/www/data/Handler.cgi
cp /etc/thttpd/data/.htpasswd /var/www/data/
chmod 644 /var/www/data/.htpasswd
echo "Launch the thttpd"
/usr/sbin/thttpd -C /var/www/thttpd_config
这里我们没有通过调用默认的/etc/init.d/S90thttpd启动脚本也没有使用/thttpd_wrapper脚本方式使得thttpd始终保持运行 完全是因为特殊需要
通常应用是应当加上这些启动脚本的。
6)thttpd默认就是web接入是chroot的,可以始终保证web用户接触的文件仅限于/var/www/data下,因此不必担心安全问题。但是这里需要注意的就是权限问题,首先是html文件和cgi脚本,只能允许web用户读取和执行权限644和755。但是因为这里有个需要就是cgi脚本要生成一个特殊文件放在/var/www/data下所以我们要给data目录以写权限777。
今天差不多就到这吧