本文介绍 FreeBSD 中 Lighttpd 的安装与最基本的配置,目标仅是实现 Lighttpd 提供静态网页访问支持。
为什么是 Lighttpd
之所以选择 Lighttpd 而不是 Apache,是因为相对于前者而言,后者过于庞大。过于庞大,通常意味着难以驾驭;并许多功能,我基本上都用不上。
启用 Lighttpd 服务
采用 Packages 或 Ports 方式安装 lighttpd 软件包之后,可直接运行 lighttpd 程序来启用 Lighttpd 服务,也可以利用 FreeBSD 的 rc.d 服务方式来启用 Lighttpd 服务。若采用前者方式,需要在 lighttpd 程序的 "-f" 选项后指定 Lighttpd 配置文件所在位置,譬如:
若采用后者方式,可在 /usr/local/etc/rc.d 中找到 Lighttpd 服务控制脚本,可使用以下命令启用服务:
在使用 rc.d 服务方式启用 Lighttpd 服务时,若未得到任何响应信息,此时需要打开 /usr/local/etc/rc.d/lighttpd 服务控制脚本,检查一下是否存在以下语句:
若存在,意味着默认是不允许 rc.d 开启 Lighttpd 服务的,需要将 "lighttpd_enable" 的值改为 "YES" 才可以,或者在 /etc/rc.conf 文件中写入:
有人说,这是 FreeBSD 为了安全起见才如此这般,我却不以为然。
还是无法启动?
解决了 Lighttpd 采用 rc.d 服务方式的启动问题之后,重新启动 lighttpd,结果得到以下错误信息:
2009-01-17 00:24:35: (server.c.899) Opening errorlog failed. Going down.
这说明 lighttpd 程序不具备访问 lighttpd.error.log 文件的权限。若解决这一问题,只需将这一 log 文件所属用户与组修改为 lighttpd.conf 文件中所定义的 server.username 和 server.groupname 的值即可,它们默认均为 "www"。
解决了 lighttpd.error.log 文件的权限问题之后,再次重新启动 lighttpd,应该不会再出现错误信息了,不过 lighttpd 还是没能被正确启动。查看一下 lighttpd.error.log 文件,又发现以下错误信息:
2009-01-17 00:31:28: (mod_accesslog.c.535) opening access-log failed: Permission denied /var/log/lighttpd.access.log
2009-01-17 00:31:28: (server.c.908) Configuration of plugins failed. Going down.
无语了,只好这样来解决:
$ sudo chown www:www /var/log/lighttpd.access.log
好事多磨,现在总算可以正确启动了。
静态网页访问测试
欲知 Lighttpd 服务是否可用,可以在 Lighttpd 的网页目录(默认为 /usr/local/www/data)中创建一份比较简单的 index.html 文件,譬如:
注意需将这份文件的所属用户/组设为 “www:www”。
在客户浏览器端,访问服务器 IP 地址即可,譬如 "http://192.168.0.2"。
from:http://liyanrui.is-programmer.com/2009/1/17/freebsd-lighttpd.6911.html