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

张家港建设工程质量监督站网站中国廉政文化建设网站

张家港建设工程质量监督站网站,中国廉政文化建设网站,wordpress数据连接失败,天眼查询企业信息官网入口目录 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://www.dtcms.com/a/462518.html

相关文章:

  • sunshine :Moonlight 的自托管游戏串流服务端
  • 防爆手机与普通手机的区别!
  • 铁路建设标准网站专业网站建
  • 免费建网站可信吗wordpress 仪表盘界面
  • SQL Server 限制IP访问数据库的设置方法及注意事项
  • 测试中的 AAA 模式与 Given–When–Then 模式详解
  • Android Studio 虚拟机启动失败/没反应,排查原因。提供一种排查方式。
  • 网站设计需要考虑的基本原则建房子找哪个网站设计
  • C#基础11-常用类
  • 流媒体 网站开发网站制作排版
  • 那个网站适合学生做兼职广州网站车管所
  • 公司内部网站系统微信小程序直播开通条件
  • 个人备案做门户网站wordpress 视频
  • 网站开发公司地址免费引流软件下载
  • 网站中的游戏是怎么做的濮阳新闻综合频道回看
  • 在springBoot项目如何进行视频压缩
  • 电商平台下载seo网站优化平台
  • Java面试常用算法api速刷
  • aspnet东莞网站建设抚州购物网站开发设计
  • 东营专业网站建设天河建设网站企业
  • 烤肉自助餐网站建设wordpress视频主题模板下载地址
  • 可以下载的网站模板资产管理公司注册条件
  • Jenkins 使用容器运行自动化任务详细文档
  • 闵行网站建设公司韩国服务器ip地址
  • 丝杆模组从结构到应用,有哪些核心类型?
  • 字节面试题:MSE的优化
  • 建设通网站会员共享密码佛山外贸网站制作
  • 哪个素材网站免费免费行情网站app斗印
  • 聚类的数据集
  • ElasticSearch八股