在 FreeBSD 中配置 Lighttpd 服务

LiYanrui posted @ Jan 17, 2009 08:52:41 AM in GNU/Linux & Unix with tags FREEBSD , 4751 阅读

本文介绍 FreeBSD 中 Lighttpd 的安装与最基本的配置,目标仅是实现 Lighttpd 提供静态网页访问支持。

为什么是 Lighttpd

之所以选择 Lighttpd 而不是 Apache,是因为相对于前者而言,后者过于庞大。过于庞大,通常意味着难以驾驭;并许多功能,我基本上都用不上。

启用 Lighttpd 服务

采用 Packages 或 Ports 方式安装 lighttpd 软件包之后,可直接运行 lighttpd 程序来启用 Lighttpd 服务,也可以利用 FreeBSD 的 rc.d 服务方式来启用 Lighttpd 服务。若采用前者方式,需要在 lighttpd 程序的 "-f" 选项后指定 Lighttpd 配置文件所在位置,譬如:

$ sudo /usr/local/sbin/lighttpd -f /usr/local/etc/lighttpd.conf

若采用后者方式,可在 /usr/local/etc/rc.d 中找到 Lighttpd 服务控制脚本,可使用以下命令启用服务:

$ sudo /usr/local/etc/rc.d/lighttpd start

在使用 rc.d 服务方式启用 Lighttpd 服务时,若未得到任何响应信息,此时需要打开 /usr/local/etc/rc.d/lighttpd 服务控制脚本,检查一下是否存在以下语句:

: ${lighttpd_enable="NO"}

若存在,意味着默认是不允许 rc.d 开启 Lighttpd 服务的,需要将 "lighttpd_enable" 的值改为 "YES" 才可以,或者在 /etc/rc.conf 文件中写入:

lighttpd_enable="YES"

有人说,这是 FreeBSD 为了安全起见才如此这般,我却不以为然。

还是无法启动?

解决了 Lighttpd 采用 rc.d 服务方式的启动问题之后,重新启动 lighttpd,结果得到以下错误信息:

$ > 2009-01-17 00:24:35: (log.c.62) opening errorlog '/var/log/lighttpd.error.log' failed: Permission denied
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"。

$ sudo chown www:www /var/log/lighttpd.error.log

解决了 lighttpd.error.log 文件的权限问题之后,再次重新启动 lighttpd,应该不会再出现错误信息了,不过 lighttpd 还是没能被正确启动。查看一下 lighttpd.error.log 文件,又发现以下错误信息:

2009-01-17 00:31:28: (log.c.75) server started
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 touch /var/log/lighttpd.access.log
$ sudo chown www:www /var/log/lighttpd.access.log

好事多磨,现在总算可以正确启动了。

静态网页访问测试

欲知 Lighttpd 服务是否可用,可以在 Lighttpd 的网页目录(默认为 /usr/local/www/data)中创建一份比较简单的 index.html 文件,譬如:

<html>
<body>
道可道,非常道;
名可名,非常名。
</body>
</html>

注意需将这份文件的所属用户/组设为 “www:www”。

在客户浏览器端,访问服务器 IP 地址即可,譬如 "http://192.168.0.2"。

hash 说:
2009年1月17日 18:24

我觉得lighttpd很强大啊。lighttpd团队对于速度的追求简直到了变态的地步。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter