文章目录
- 1. 下载 lighttpd 源码
- 2. 解压源码包
- 3. 进入源码目录
- 4. 设置交叉编译环境变量
- 5. 设置交叉编译工具链环境变量
- 6. 配置源码以交叉编译
- 7. 编译源码
- 8. 安装到指定目录(源码目录下的 install-aarch64)
- 9.在开发板中运行 lighttpd
- 🔧 基本模块配置
- 🌐 网页根目录与监听端口
- 🔒 用户和组(已注释)
- 📜 日志相关
- 📁 目录列表开启(重要)
- 📦 模块路径设置
- 📄 默认首页文件名
- 📄 MIME 类型设置(告诉浏览器如何处理不同文件)
- ✅ 总结一句话理解这个配置
1. 下载 lighttpd 源码
wget https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.72.tar.gz
2. 解压源码包
tar -xzvf lighttpd-1.4.72.tar.gz
3. 进入源码目录
cd lighttpd-1.4.72
4. 设置交叉编译环境变量
export CROSS_COMPILE=/opt/atk-dlrk356x-toolchain/bin/aarch64-linux-
5. 设置交叉编译工具链环境变量
export CC=${CROSS_COMPILE}gcc
export AR=${CROSS_COMPILE}ar
export LD=${CROSS_COMPILE}ld
export STRIP=${CROSS_COMPILE}strip
6. 配置源码以交叉编译
./configure --host=aarch64-linux --prefix=/usr/local/lighttpd CC=${CC} AR=${AR} LD=${LD} STRIP=${STRIP}
7. 编译源码
make
8. 安装到指定目录(源码目录下的 install-aarch64)
make install DESTDIR=$(pwd)/install-aarch64
在目录下会生成lib sbin share等文件,我们需要将lib和sbin文件拷贝到开发板中:
9.在开发板中运行 lighttpd
将lib文件放入/usr/lib中:
将sbin的文件放入/sbin:
在etc目录下创建lighttpd文件夹:
这个文件夹包含:
文件/目录 | 作用 | 类比(形象理解) |
---|---|---|
lighttpd.conf | 主配置文件 | 网站的“说明书”📘 |
access.log | 正常访问记录 | 前台“访客登记簿”📝 |
error.log | 错误日志 | 后台“故障报警器”🚨 |
www/ | 网页存储目录 | “展示区 / 商店前台”🏪 |
下面是对你提供的 lighttpd.conf
配置文件的逐行详细讲解,适用于你开发板上部署的 lighttpd
服务器:
🔧 基本模块配置
server.modules = ("mod_access","mod_alias","mod_compress","mod_redirect","mod_rewrite",
)
这些是加载的功能模块,分别是:
模块名 | 作用说明 |
---|---|
mod_access | 控制访问权限(比如允许/禁止某些IP) |
mod_alias | URL 路径重定向(如 "/images" => "/mnt/images" ) |
mod_compress | 启用 gzip 压缩,提升网页加载速度 |
mod_redirect | 执行简单的重定向(如把 /old 跳转到 /new ) |
mod_rewrite | 重写 URL(可实现伪静态) |
🌐 网页根目录与监听端口
server.document-root = "/etc/lighttpd/www"
server.port = 8080
- 网页根目录设置为
/etc/lighttpd/www
,即网页文件都放在这个文件夹下(如index.html
) - 监听 8080 端口,意味着访问网址格式是
http://<开发板IP>:8080
🔒 用户和组(已注释)
#server.username = "root"
#server.groupname = "root"
- 指定
lighttpd
用哪个用户/组运行。 - 默认不建议使用
root
,如果注释掉表示使用当前启动的用户(你是手动运行的可以暂时忽略)。
📜 日志相关
server.errorlog = "/etc/lighttpd/error.log"
accesslog.filename = "/etc/lighttpd/access.log"
error.log
:记录服务器运行时的报错信息access.log
:记录每一次网页访问行为(IP、时间、请求资源等)
📁 目录列表开启(重要)
dir-listing.activate = "enable"
- 如果请求的是目录(比如访问
/etc/lighttpd/www/images/
),没有index.html
,就会自动列出该目录下的文件(类似目录浏览器) - 适合做文件下载站用
📦 模块路径设置
server.modules-dir = "/usr/lib"
- 指定插件模块(如
mod_access.so
)的搜索路径 - 如果你交叉编译后
mod_*.so
都安装在/usr/lib
,必须加这句,否则会报dlopen()
错误
📄 默认首页文件名
index-file.names = ( "index.html" )
- 访问某个目录时默认打开的文件,比如访问
/
,其实访问的是/index.html
📄 MIME 类型设置(告诉浏览器如何处理不同文件)
mimetype.assign = (".html" => "text/html",".txt" => "text/plain",".jpg" => "image/jpeg",".png" => "image/png","" => "application/octet-stream"
)
.html
:浏览器识别为网页.jpg
/.png
:图片格式.txt
:纯文本- 空后缀文件默认当作二进制流(比如下载时使用)
✅ 总结一句话理解这个配置
这份 lighttpd.conf
:
- 在 8080端口 启动轻量 Web 服务
- 网页根目录 为
/etc/lighttpd/www
- 支持访问日志、错误日志记录
- 默认访问
index.html
- 自动列出目录内容
- 加载了必要的模块功能(压缩、重写、访问控制等)
运行lighttpd:
进入对应网页查看: