使用Cygwin在Windows中以服务方式安装Lighttpd
缘起
自动前段时间对服务器进行了从Apache到Lighttp的转换之后,服务器运行异常的稳定。Lighttpd占用内存非常小,配置文件也很简单,这让我萌生了把所有服务器都从Apache转到Lighttpd的想法。
但这毕竟是个浩大的工程,而且运行正稳定的服务器也不必这么折腾。于是先从我的本机开刀。
我的每台工作电脑都会安装XAMPP套件,主要是用于开发和共享,以及存放一些html格式的文档以方便浏览。
而现在XAMPP可以退休了。
系统需求
Lighttpd并没有官方的Windows版本,本文基于Cygwin来安装Lighttpd。
本文假设你了解Cygwin的基本用法和配置,了解如何使用Cygwin的setup来安装新的包。
如果你不喜欢setup.exe那个界面,可以试试apt-cyg。
安装cygserver
cygserver是为Cygwin作为后台服务运行而设计的,默认安装Cygwin的时候并没有启动它。我们需要打开它,并将它作为Windows的标准服务来安装。
在Cygwin中输入命令:
按照界面提示进行cygserver的安装,并同意将其安装为服务。
运行该服务:
|
cygrunsrv --start cygserver
|
cygrunsrv其实是启动的Windows标准服务cygserver,这个命令也可以在Cmd下这样做:
或者也可以按下按键 Windows+R
,键入 services.msc
回车,找到CYGWI cygwerver
服务,并启动之。
这三种启动服务的方法的作用都一样,下面统一使用 cygrunsrv
的方法。
查看cygserver服务的状态:
|
cygrunsrv --qurey cygserver
# 显示
Service : cygserver
Display name : CYGWIN cygserver
Current State : Running
Controls Accepted : Stop
Command : /usr/sbin/cygserver
|
测试Lighttpd
安装Lighttpd包,由于 系统需求 中提到的假设,安装过程略。
测试Lighttpd的运行:
|
/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
|
如果出现下面这样的报错,需要调整lighttpd.conf中的某些和网络相关的配置。因为Lighttpd是运行在Linux下的,默认的配置在Windows下面是不受支持的。
|
2013-01-11 11:01:59: (/usr/src/ports/lighttpd/lighttpd-1.4.32-2/src/lighttpd-1.4.32/src/configfile.c.1339) the selected event-handler in unknown or not supported: linux-sysepoll
2013-01-11 11:01:59: (/usr/src/ports/lighttpd/lighttpd-1.4.32-2/src/lighttpd-1.4.32/src/server.c.646) setting default values failed
2013-01-11 11:07:36: (/usr/src/ports/lighttpd/lighttpd-1.4.32-2/src/lighttpd-1.4.32/src/network.c.260) warning: please use server.use-ipv6 only for hostnames, not without server.bind / empty address; your config will break if the kernel default for IPV6_V6ONLY changes
2013-01-11 11:07:36: (/usr/src/ports/lighttpd/lighttpd-1.4.32-2/src/lighttpd-1.4.32/src/network.c.802) server.network-backend has a unknown value: linux-sendfile
2013-01-11 11:11:34: (/usr/src/ports/lighttpd/lighttpd-1.4.32-2/src/lighttpd-1.4.32/src/server.c.915) can't have more connections than fds/2: 1024 256
|
涉及的配置项如下,将他们全部注释:
-
server.event-handler 约在181行
-
server.use-ipv6 约在93行
-
server.network-backend 约在191行
-
server.max-fds 约在207行
-
server.max-connections 约在245行
如果在运行的时候提示目录权限之类问题,则可以修改 Lighttpd.conf 中的 16~20 行配置,设置正确的目录和权限。
如果执行正常,那么不会输出任何信息,Lighttpd会一直在前台运行。
此时可以去浏览器中输入 http://localhost
测试一下,当然,要看到内容,需要确保你的Lighttpd.conf中的主页地址配置正确,即使你看到的是404错误,其实也说明你的服务器配置成功了,只是没有默认的页面而已。
将Lighttpd安装成服务
使用cygrunsrv可以将Lighttpd安装成Windows系统服务
|
cygrunsrv -I lighttpd -d 'CYGWIN lighttpd' -p '/usr/sbin/lighttpd' -a '-D -f /etc/lighttpd/lighttpd.conf'
|
然后运行它
|
cygrunsrv --start lighttpd
|
查询运行状态
|
cygrunsrv --query lighttpd
Service : lighttpd
Display name : CYGWIN lighttpd
Current State : Running
Controls Accepted : Stop
Command : /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
|
参考