当前位置: 首页 > wzjs >正文

南京做网站南京乐识专业门户网站是用户上网的第一入口

南京做网站南京乐识专业,门户网站是用户上网的第一入口,宿迁房价2022最新房价,天津建设工程信息网工程交易中心目录 1. 引言 2. 准备工作 2.1 环境要求 2.2 依赖库下载 3. 交叉编译步骤 3.1 交叉编译依赖库(以PCRE为例) 3.2 交叉编译lighttpd 4. 部署到目标设备 4.1 复制文件到嵌入式设备 4.2 修改配置文件(lighttpd.conf) 6. 总结…

目录

1. 引言

2. 准备工作

2.1 环境要求

2.2 依赖库下载

3. 交叉编译步骤

3.1 交叉编译依赖库(以PCRE为例)

3.2 交叉编译lighttpd

4. 部署到目标设备

4.1 复制文件到嵌入式设备

4.2 修改配置文件(lighttpd.conf)

6. 总结


1. 引言

lighttpd 是一个轻量级、高性能的Web服务器,专为嵌入式环境和资源受限场景设计。其低内存占用和高并发处理能力使其成为物联网设备、路由器等嵌入式系统的理想选择。若您的项目需要 低资源消耗、快速部署、高并发静态服务,lighttpd是嵌入式领域更优的选择。

Web服务器软件对比

特性lighttpdNginxApache
内存占用3-5MB10-20MB50-100MB
并发模型单线程事件驱动多进程事件驱动多线程/多进程
配置复杂度简单中等复杂
嵌入式适用性★★★★★★★★☆☆★☆☆☆☆
动态内容支持有限(需FastCGI)强大(Lua/JIT)强大(mod_php)

本文详细介绍如何通过交叉编译,将lighttpd移植到ARM/Linux嵌入式平台。 

2. 准备工作

2.1 环境要求

  • 开发机:WSL2/Ubuntu 20.04

  • 目标平台:ARM架构嵌入式设备x210

  • 交叉编译工具链:arm-none-linux-gnueabi-gcc 2014.05

  • lighttpd版本:1.4.39

2.2 依赖库下载

lighttpd需要一些依赖以下库,需提前交叉编译:

  • PCRE(正则表达式支持)

 PCRE 全称:Perl Compatible Regular Expressions,提供与Perl语言语法高度兼容的正则表达式库,用于字符串匹配、替换、提取等操作。它是轻量级、高性能的正则表达式解析引擎,广泛应用于开源软件(如Nginx、Apache、lighttpd)中实现路由、重写规则等功能。

如果编译时不带PCRE,启动时程序可能报这样的错误:

can't handle '$HTTP[url] =~ ...' as you compiled without pcre support.
(perhaps just a missing pcre-devel package ?)

这是因为默认的配置文件中使用了很多这样的语法,为了方便使用,还是编译PCRE为好。 PCRE有两个版本,PCRE 8.X和PCRE2 10.X,不同的lighttpd用的版本可能不一样。本文使用的lighttpd是1.4.39,使用的PCRE是8.45。

  • Zlib、bzip2等(压缩功能)

本次编译忽略这些库,暂时用不到相关功能。

  • OpenSSL(HTTPS功能)

由于我们主要是在局域网内部测试,对安全性要求不高,本次编译忽略SSL功能,所以不编译这个库。

3. 交叉编译步骤

3.1 交叉编译依赖库(以PCRE为例)

编译命令如下:

tar -xzf pcre-8.45.tar.gz
cd pcre-8.45./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ --host=arm-linux target=arm-linux --prefix=/mnt/d/lighttpd/pcre-8.45/install --enable-unicode-properties --enable-utf8 
make && make install

3.2 交叉编译lighttpd

编译命令如下:

tar -xzf lighttpd-1.4.69.tar.gz
cd lighttpd-1.4.69# 设置交叉编译工具前缀
CROSS_COMPILE=arm-none-linux-gnueabi-# 设置工具链路径
export CC=${CROSS_COMPILE}gcc
export CXX=${CROSS_COMPILE}g++
export AR=${CROSS_COMPILE}ar
export RANLIB=${CROSS_COMPILE}ranlib
export STRIP=${CROSS_COMPILE}strip
export PATH=$PATH:/mnt/d/lighttpd/pcre-8.45/install/bin
export CPPFLAGS="-I/mnt/d/lighttpd/pcre-8.45/install/include"
export LDFLAGS="-L/mnt/d/lighttpd/pcre-8.45/install/lib"# 配置编译选项
./configure \--host=arm-linux \--prefix=/var/lighttpd/ \--with-openssl \--without-zlib \--without-bzip2 \--with-pcremake -j16
sudo make install

 这里做点解释:

  1. 之所以把pcre编译后的bin目录加入PATH是为了让lighttpd交叉编译时能够找到pcre-config脚本。
  2. 这里的prefix不能随便设置,因为lighttpd会把这个路径以硬编码的形式写到程序中,所以这个路径必须和开发板上实际部署的路径一致,否则在开发板上加载插件时会报告错误。

4. 部署到目标设备

4.1 复制文件到嵌入式设备

首先需要把pcre的运行库拷贝到开发板的/usr/lib下。

然后把主机/var/lighttpd目录下的所有文件拷贝到开发板的/var/lighttpd目录下。然后在/var/lighttpd目录下建立几个文件夹:cache、cgi-bin、config、log、sockets、upload、vhosts、htdocs,并将并将源码包中doc/config目录下的conf.d目录、lighttpd.conf和modules.conf复制到/var/lighttpd/config中。

4.2 修改配置文件(lighttpd.conf)

下面以文件比较的方式列出我对配置文件的修改:

这些修改都是最脚本的。

5. 验证与测试

  • 检查进程ps | grep lighttpd

  • 日志查看tail -f /var/log/lighttpd/error.log

  • 访问测试用浏览器访问http://目标设备IP 

在htdocs目录下建立一个index.html文件,输入以下内容:

<html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>欢迎使用 Lighttpd</title><style>body {margin: 0;padding: 0;/* 背景颜色渐变动画 */animation: bgGradient 10s linear infinite;}@keyframes bgGradient {0% {background-color: #007bff;}50% {background-color: #00c6ff;}100% {background-color: #007bff;}}.welcome {text-align: center;margin-top: 100px;font-size: 48px;color: white;/* 文字旋转动画 */animation: rotateText 5s linear infinite;}@keyframes rotateText {from {transform: rotate(0deg);}to {transform: rotate(360deg);}}</style>
</head><body><div class="welcome">欢迎使用 Lighttpd!</div>
</body></html>

然后用浏览器访问设备的IP地址就可以看到一个旋转动画的界面。 

6. 总结

通过交叉编译,我们成功在ARM设备上部署了高性能的lighttpd服务器。此方法同样适用于其他嵌入式架构(如MIPS、RISC-V)。欢迎在评论区交流问题!希望这篇指南能帮助您顺利完成lighttpd的移植!


文章转载自:

http://hDELDcyz.fqpyj.cn
http://l15BzSZb.fqpyj.cn
http://3EmqYVCl.fqpyj.cn
http://jWf3sIaO.fqpyj.cn
http://0ZPijsMQ.fqpyj.cn
http://t9ljLgCu.fqpyj.cn
http://UQIhoG21.fqpyj.cn
http://IZ5CAUoU.fqpyj.cn
http://uUS5Q7Rn.fqpyj.cn
http://UxmkchB9.fqpyj.cn
http://8mnagG7L.fqpyj.cn
http://fF03zq9M.fqpyj.cn
http://kr60AiTO.fqpyj.cn
http://6anGzQ2S.fqpyj.cn
http://0gpNvBt7.fqpyj.cn
http://NagXfVjT.fqpyj.cn
http://DdUFG1H4.fqpyj.cn
http://ziAX8Ade.fqpyj.cn
http://LrVuffcW.fqpyj.cn
http://jbt3FEXD.fqpyj.cn
http://KoBgIURU.fqpyj.cn
http://PChWbllH.fqpyj.cn
http://fLnXVjNP.fqpyj.cn
http://WjfacuEj.fqpyj.cn
http://vw1HAFOp.fqpyj.cn
http://hZTxLc0v.fqpyj.cn
http://bYpNJmTQ.fqpyj.cn
http://u2SJSKNS.fqpyj.cn
http://lolZe5K5.fqpyj.cn
http://TbreEgPQ.fqpyj.cn
http://www.dtcms.com/wzjs/762115.html

相关文章:

  • 公司外贸网站怎么做全网vip影视网站一键搭建
  • 自已做的网站怎么做域名解析引进韩国电影
  • 重庆永川网站建设报价如何制作自己想要的图片
  • 网站策划书如何做网站建设设计简介
  • 腾讯企点怎么群发消息济南网站建设和优化
  • 建设品牌网站公司网站文章页图片大全
  • 哪家手表网站HTML网站页面建设
  • 自己怎么建个优惠网站苏州建设工程信息网
  • 万户网站做网站一年费用
  • CMS网站建设优势静态网页怎么做网站
  • 在线精品课程网站开发做国内网站阿里云怎么样
  • 网站开发外包售后维护合同广州品牌营销服务
  • 网站建设dujujiangxin如何做菠菜网站代理
  • 福建泉州做网站公司特步的网站建设策划
  • 长沙模板建网站需要多久wordpress多个下载地址
  • 网站怎么做直播功能吗网络建设文章网站
  • 网站推广的方法及特点网站建设咨询服务合同
  • 杭州做商务网站网站以前在百度能搜索不到
  • 学校要建个网站应该怎么做网站改版目的
  • 杭州网站免费制作企业网站规划原则
  • 大连做网站不错的公司试玩平台网站开发
  • 直播网站开发天猫网上购物商城
  • 淮安开发区建设局网站jsp网站怎么做
  • 南京栖霞区有做网站的吗免费建设网站公司哪家好
  • 温州网站建设外包0731网站
  • 建设网站公网络营销论文怎么写
  • 画图在什么网站上做兼职centos 下载wordpress
  • 网站规划免费的软件网站建设
  • 网站建设主要流程图做视频网站 许可
  • 生态环境工程公司网站建设相关网站怎么做