嵌入式Web服务器

Boa:

编译

修改Makefile里的CC等
cp mime.types到/etc
boa.conf到/etc/boa/boa.conf

下载源码:
安装额外的编译工具:apt-get install flex byacc
生成Makefile: ./configure –host=arm-linux
修改Makefile的编译链:CC和CPP

1
2
3
4
5
6
7
8
9
util.c: In function 'get_commonlog_time':
util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1
解决方法:
修改compat.h文件
将下面一行(大概是120行)
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
改为:
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

配置

修改boa.conf,创建配置,log,www,cgi等目录(依照boa.conf)

User nobody 改为 User root
Group nogroup 改为 Group root

AccessLog /var/log/boa/access_log 改为 AccessLog /dev/null

#ServerName www.your.org.here 改为 ServerNamewww.your.org.here

DocumentRoot /var/www 改为 DocumentRoot /usr/local/boa/www

MimeTypes /etc/mime.types MimeTypes /usr/local/boa/mime.types

boa+CCGI上传文件大小限制两种方法:

  1. 修改源代码的defines.h里面的宏SINGLE_POST_LIMIT_DEFAULT
  2. 修改boa.conf里面的SinglePostLimit

lighttpd

编译

make.sh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash

BASEDIR=`pwd`
export ARCH=arm
export PATH=/xxx/out/bin:$PATH

#arm-buildroot-linux-uclibcgnueabi-
CC=arm-buildroot-linux-uclibcgnueabi-gcc
CXX=arm-buildroot-linux-uclibcgnueabi-g++
AR=arm-buildroot-linux-uclibcgnueabi-ar
LD=arm-buildroot-linux-uclibcgnueabi-ld
RANLIB=arm-buildroot-linux-uclibcgnueabi-ranlib
STRIP=arm-buildroot-linux-uclibcgnueabi-strip
echo $CC

'
cd $BASEDIR/pcre-8.42
make clean
./configure --host=arm-buildroot-linux-uclibcgnueabi --prefix=/xxx/out --enable-utf8 --enable-unicode-properties
make && make install
'

cd $BASEDIR/lighttpd-1.4.53
make clean
./configure --prefix=/xxx/out --host=arm-buildroot-linux-uclibcgnueabi --build=i686-pc-linux --disable-FEATURE --enable-shared --disable-static --disable-lfs --disable-ipv6 --without-PACKAGE --without-valgrind --without-openssl --without-kerberos5 --with-pcre --without-zlib --without-bzip2 --without-lua
make && make install

lighttpd+PHP安装配置:(mysql)

配置lighttpd.conf
server.modules += ( "mod_fastcgi" )下面添加如下:

1
2
3
4
5
6
7
8
9
10
fastcgi.server = ( 
".php" =>
(
(
"socket" => "/tmp/php.socket",
"bin-path" => "/usr/bin/php-cgi",
"max-procs" => 2,
"check-local" => "disable"
))
)

lighttpd+PHP上传文件大小限制

关于php.ini:
查找源码,php.ini-development类似的文件即为php.ini的原始文件
查看php相关配置信息,配置文件的路径等

  1. 创建test.php,浏览器查看就可看到php.ini文件默认路径
1
2
3
<?php  
phpinfo();
?>
  1. 使用php-cgi -i或者php-fpm -i命令

将php.ini放在配置文件目录,修改

1
2
3
memory_limit = 64M
upload_max_filesize = 10M
post_max_size = 15M

最后实在不行,修改php源码main.c中对应的参数

错误:mysql_server_init, version libmysqlclient_16 not defined in file libmysqlclient.so.18:
https://community.nxp.com/thread/449922
diff --git a/meta/recipes-devtools/binutils/binutils-2.26.inc b/meta/recipes-devtools/binutils/binutils-2.26.inc

1
2
3
4
5
6
7
8
index 703eac2..06ce245 100644
--- a/meta/recipes-devtools/binutils/binutils-2.26.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.26.inc
@@ -18,7 +18,7 @@ BINUPV = "${@binutils_branch_version(d)}"
UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
-SRCREV = "71fa566a9cf2597b60a58c1d7c148bab637454a6"
+SRCREV = "544ddf9322b1b83982e5cb84a54d084ee7e718ea"
SRC_URI = "\