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

静态网站建设教程wordpress采集接口

静态网站建设教程,wordpress采集接口,seo销售是做什么的,宁波网络营销方式目录 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/597233.html

相关文章:

  • 网上购物有哪些网站?如何加入广告联盟赚钱
  • 解决 elementui el-cascader组件懒加载时存在选中状态丢失的问题?
  • vue3封装alert 提示组件 仿element-plus
  • Day33-动态规划
  • 域名访问过程会不会影响网站访问商务网站设计
  • 模仿elementUI 中Carousel 走马灯卡片模式 type=“card“ 的自定义轮播组件 图片之间有宽度
  • 公司网站建设哪家正规wordpress 按别名
  • 网站建设安全架构网络购物平台哪个最好
  • 2048——逻辑思维与矩阵合并算法
  • Qt:判断一个sql语句是否是select语句
  • 【题解】洛谷 P2470 [SCOI2007] 压缩
  • Java1111 实现一个方法,获取属性值 返回name
  • 存储核心:EXT文件系统
  • 品牌型网站的特点站长工具seo查询5g5g
  • 量子信息中的QASM
  • 阿里巴巴做网站费用网站功能价格表
  • MongoDB 删除数据库
  • android studio 在终端指定 jdk 1.8 打包 release~ MacOS版
  • 【STM32】HDC2080温湿度计驱动
  • Highcharts 在 AMD 与 CommonJS 环境下的安装与配置指南
  • 阿里云编辑建设好的网站济南网络优化厂家
  • 如何给 MacOS 更新到指定版本系统
  • jEasyUI 合并单元格详解
  • AJAX学习 ---- axios体验
  • 电子商务网站开发基本流程建立链接
  • MySQL第五次作业(触发器,存储过程)
  • HORIBA MEXA-324M:双组分汽车尾气测量仪技术说明
  • C++进阶:(八)基于红黑树泛型封装实现 map 与 set 容器
  • 网站制作资质wordpress用户名密码注册
  • Redis(1)