uClinux中boa web server的配置
作者:wzc0066
来源:www.mcuos.com 正文: 一、环境准备 编译环境:uClinux-dist-20040408.tar.gz 编译工具:arm-elf-* 板子型号:SmartArm2200 二、编译配置 1、选择Kernel/Library/Defaults Selection -> Customize Vendor/User Settings -> Network Applications -> boa并编译 2、配置boa web server: 2.1、修改文件uClinux-dist/user/boa/src/defines.h 将#define SERVER_ROOT "/home/httpd"改成#define SERVER_ROOT "/etc/boa" 意思是设定boa web server的ServerRoot路径为/etc/boa 2.2、编辑配置文件uClinux-dist/user/boa/examples/boa.conf,如下 Port 80 User 0 Group 0 DocumentRoot /var/www UserDir public_html DirectoryIndex index.html KeepAliveMax 1000 KeepAliveTimeout 10 DefaultType text/html AddType application/x-httpd-cgi cgi ScriptAlias /cgi-bin/ /var/www/cgi-bin/ AddType image/jpeg jpg 关于配置文件的几点说明: (1)所以的*Log选项都被注释掉了,否则启动boa的时候提示说不识别这些*Log标记; (2)没有添加"mime.types"选项,原因详见boa测试图片显示乱码; (3)配置文件boa.conf需拷贝到ServerRoot,可以手动,也可以通过修改Makefile文件(uClinux-dist/vendors/PHILIPS/lpc2200/Makefile)进行; 如果配置文件boa.conf的位置不正确,则会得到形如“Authentication password file for /cgi-bin/ not found!”之类的错误! 三、调试 1、如果现在运行boa & (或者运行boa -c /var/www &,但我们已指定DocumentRoot/var/www,所以运行外面的命令就行),会得到错误信息“kmod: failed to exec /sbin/modprobe -s -knet-pf-1, errno = 2”,此时boa web server还不可用! 2、增加编译Kernel/Library/Defaults Selection -> Customize Vendor/User Settings-> BusyBox -> modprobe并重新编译,此时运行boa &又会得到如下错误信息: __alloc_pages: 6-order allocation failed (gfp=0x1f0/0) Allocation of length 164704 from process 193 failed Buffer memory: 52kB Cache memory: 1076kB Free pages: 876kB ( 0kB HighMem) ZoneMA freepages: 0kB Zone:Normal freepages: 876kB Zone:HighMem freepages: 0kB ( Active: 94, inactive: 188, free: 219 ) = 0kB) 25*4kB 21*8kB 12*16kB 5*32kB 2*64kB 1*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB = 876kB) = 0kB) Unable to mmap process text, errno 12 kmod: failed to exec /sbin/modprobe -s -k net-pf-1, errno = 12 __alloc_pages: 6-order allocation failed (gfp=0x1f0/0) Allocation of length 164704 from process 195 failed Buffer memory: 52kB Cache memory: 1076kB Free pages: 700kB ( 0kB HighMem) ZoneMA freepages: 0kB Zone:Normal freepages: 700kB Zone:HighMem freepages: 0kB ( Active: 47, inactive: 235, free: 175 ) = 0kB) 25*4kB 19*8kB 12*16kB 4*32kB 2*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB = 700kB) = 0kB) Unable to mmap process text, errno 12 munmap of non-mmaped memory by process 195 (insmod): 817fb000 munmap of non-mmaped memory by process 195 (insmod): 815863a0 Unhandled fault: external abort on linefetch (F4) at 0x00000001 fault-common.c(97): start_code=0x81380040, start_stack=0x815bff74) pid 182: failed 256 好像是内存分配错误!但此时boa web server已经可以访问! 3、增加编译Kernel/Library/Defaults Selection -> Customize Kernel Settings-> Networking options -> Unix domain sockets并从新编译,则boa webserver再启动时除了一个pid外,没任何多余的信息了!(此选项到底有什么作用,我还是不知道!) 四、其它说明 1、我的uclinux的大部分配置都是“默认”的,但这里的“默认”可能是已被硬件厂商修改过的(我用的uClinux-dist-20040408.tar.gz是附带光盘里面的)! 2、web测试时,html文件应放在/var/www目录下,cgi程序应放在/var/www/cgi-bin目录下,这些在配置文件中都写的很明确! 3、也可以通过nfs进行web测试(这样会免去多次烧写的麻烦),nfs的配置详见http://wzc0066.blog.hexun.com/6582493_d.html中的第一点。 五、现存问题 现在cgi、javascript、图片浏览等测试都良好!但在测mp3的时候,还不行,原因可能是还不支持大文件! 我看网上说uclinux好像默认每次分配的最大内存是128K,所以要是运行大于128K的文件就会出错,不知是不是这样! 我还看到一条信息说选择Kernel hacking中的一项配置后就可支持大文件了,但我现在的2.4.x内核中没找到网上说的那一项! 现在点击一mp3文件(二点几M大小)的链接时终端出现的错误信息为: Allocation of length 2502723 from process 24 failed Buffer memory: 56kB Cache memory: 2744kB Free pages: 2420kB ( 0kB HighMem) ZoneMA freepages: 0kB Zone:Normal freepages: 2420kB Zone:HighMem freepages: 0kB ( Active: 98, inactive: 602, free: 605 ) = 0kB) 7*4kB 9*8kB 11*16kB 7*32kB 4*64kB 1*128kB 0*256kB 1*512kB 1*1024kB 0*2048kB = 2420kB) = 0kB) munmap of non-mmaped memory by process 24 (boa): ffffffff 现在虽然还不完美,但一般的使用我想还是没什么问题的!这就是我的boa web server配置的一般过程! 最近更新: 关于uClinux大块内存分配问题 当运行一个超过1M的应用程序时,uclinux系统会报内存分配错误! 在编译内核时需要选中“Allow allocating large blocks (> 1MB) of memory”这一选项后就可以解决问题! 但是要找到这个选项的位置对于新手来说还不是太容易, 下面是详细操作过程:
|
|
查看个人网站 查看详细资料 |
TOP |
详细解决方案
相关解决方案
- myeclipse联接sql server 2008看不到用户表
- Server Tomcat v7.0 Server不能起步
- 在哪找的SQL Server 2005数据库驱动文件?为什么sql server2005安装盘上面没有找到
- The server encountered an internal error () that prevented it from fulfilling th解决方案
- JSP运行异常 STRUTS + SQL SERVER 2005
- jsp连接sql server 2005时出现的异常
- jsp连接sql server 2005数据库是异常!
- 大家帮帮忙呀The server encountered an internal error () that prevented it解决方法
- ASP上Set GetSession("conn")=server.CreateObject("adodb.connection")
- Server Apache Tomcat v6.0.35 at localhost failed to start
- JDBC 连接sql server 2005老是失败怎么处理?恳请高手帮忙。
- SOS-(奇怪现象)服务器暂不可用500 internal server error,该怎么解决
- tomcat没法运行Could not publish to the server. Error while expanding
- sql server 设置非空默认值之后,hibernate添加出现异常
- WEBstruts The server encountered an internal error () that prevented it fr解决思路
- jsp连接sql server 2005错误
- 可以安装在win7系统的sql server
- 出现异常:cvs [server aborted]:"passwd" requires write access to the repository
- exchange server 2000提供全部用户邮件到达的java api吗
- jdbc 直连sql server 2000 连不下
- Error 500-Internal Server Error 如何解决
- JAVA连接SQL SERVER 2000数据库,该如何解决
- Server returned HTTP response code: 403 for URL如何解决
- IM聊天系统的有关问题,用Tigase Server 如何实现挤线功能
- com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。该用户与可托 SQL Server
- Error 500--Internal Server Error
- Error 500-Internal Server Error
- jbuilder2006 连接 sql server 2000新有关问题
- java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]l??????? hstmt
- eclipse中不能筑tomcat server