Lighttpd搭建Web环境

本文介绍在Windows系统下安装配置Lighttpd Web服务器的过程,包括安装cygwin环境、下载并配置Lighttpd源代码、配置相关参数以及解决过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现在Windows下安装Lighttpd
逛javaeye时,看到大牛们推荐使用lighttpd Web服务器,如是下载下来安装尝试了一把。
  大致经历一下几个步骤:

  1、windows系统下需要cygwin 环境的支持,如是先下载安装cygwin。
  2、下载lighttpd源代码并解压(from http://trac.lighttpd.net/)
  3、在cygwin 环境下进入lighttpd的下载后保存的目录,依次执行以下命令:
    1> ./configure –prefix=C:/lighthttd
    2> make
    3> make install
    如无报错,则安装成功。
  4、在C:/lighthttd下建一个目录etc 用于存放配置文件,新建一个配置文件lighttpd.conf,示例配置如下:
server.document-root = "D:/Itang_home/MyPics/100CANON"
server.port = 8080
mimetype.assign = (
    ".html" => "text/html", 
    ".txt" => "text/plain", 
    ".jpg" => "image/jpeg", 
    ".png" => "image/png"
)

  5、windows命令行环境下进入C:/lighthttd/sbin目录,运行 lighttpd -t -f ../etc/lighttpd.conf 测试是否安装配置成功。 -----我的版本是 lighttpd 是在根目录下的C:/AppServ/LightTPD

  此时会提示cygwin1.dll 等lighttpd 运行时依赖cygwin 的DLL不存在,那么需要到cygwin 的bin目录找到相应的dll拷贝到C:/lighthttd/sbin目录下,再运行 lighttpd -t -f ../etc/lighttpd.conf 直到出现提示 "Syntax OK" ,则表示安装配置成功。

  6、运行lighttpd -D -f ../etc/lighttpd.conf启动Web服务器。 
      -----我的版本是 这句报“dlopen() failed for: /usr/local/lib/mod_indexfile.dll No such file or directory”错误 
      -----解决方法:lighttpd -D -f etc/lighttpd-inc.conf -m lib
      -----运行:lighttpd -h 看到了帮助信息。原来-m选项是用来调整module的目录位置的。

  7、浏览器里访问http://localhost:8080/IMG_0047.JPG,显示图片,大功告成。
  在进程管理器查看启动后内存仅仅占用4M,挺精巧的。访问速度也挺快。以后多看看官方文档,结合实际应用多折腾一下它。如有可能将其应用到实际项目中去。

  注:示例只是配置了对静态资源的访问。后续如何相关应用(比如结合tomcat,ruby等) 则需要看官方文档(http://trac.lighttpd.net/trac/wiki/)。 

==========================================================

Windows下安装lighttpd 2008-04-18 20:37

操作环境:Windows Server 2003
目的:作为web.py开发的Web Server

01、下载lighttpd,官方网址是:http://www.lighttpd.net/
    我下载到的版本是:lighttpd-1.4.18.tar.gz
02、解压到:C:/lighttpd-1.4.18
(文件都放到C盘下面是个很不好的习惯)
03、选择开始—所有程序—Cygwin—Cygwin Bash Shell
04、输入“cd c:”,然后回车,来到C盘下。
    输入“ls”可以看到C盘下有哪些文件和目录。
(输入“ls”等同于“dir”)
05、接着输入“cd lighttpd-1.4.18”,然后回车,
    来到lighttpad的安装文件目录。
06、输入:“./configure -prefix=C:/lighttpd
    很慢,然后返回错误:no acceptable C ompiler found in $PATH
07、找到原因了!先在Windows的环境变量的PATH中添加“C:/cygwin/bin”
    方法:我的电脑—右键—属性—高级—环境变量—PATH
08、又失败了~~
09、又找到原因了!!
    需要下载gcc的开发包(package)。
    重新下载Cygwin,在“Select Packages”(选择包)的页面中,
    点击“Devel”(开发)前面的加号,出来一个列表,
    然后选择:binutils、gcc(会自动选择相应的包)、gcc-mingw、
    然后重新安装:选择“Devel”下面的所有项。
10、然后点击桌面的“Cygwin”进入。
    输入“gcc --version”,
    我能看到一堆文字“... 3.4.4 ...”等等。你能看到吗?
11、好了,重新进入lighttpd解压缩文件后的目录,
    “cd C:/lighttpd-1.4.18”,之后回车
12、输入命令:“./configure --prefix=C:/lighttpd”
    很长时间~~~
    然后,看到错误:pcre-devel not found
13、重复第09步,选择“Devel”下面的“pcre-devel”。
14、重复第11、12步,然后出现错误
    “zlib-headers and/or libs where not found”,
    然后安装“Libs”下面的“zlib-headers”。
15、重复第11、12步,然后出现错误
    “bzip2-hearders and/or libs where not found”,
    然后安装“Utils”下面的“bzip2”(1.0.5.1)。
    请同时安装“Mingw”下面的全部。
16、重复第11、12步。
    成功了,看见“Plugins ... Features ...”
17、输入“make”之后回车。
    看见“make: command not found”
    回到Cygwin下面安装“Devel”下面的“make”。
18、安装之后重复第17步。
    屏幕出现一堆文字……
    好长时间之后,出现“错误1 ... 错误2 ...”。
    两个错误都是“Leaving directory...”类型的错误。
19、可耻的失败了~~~
20、怀疑是目录的错误。
    于是尝试:“./configure”,这个应该是安装到默认目录,是不是?
    然后再“make”。
21、失败。
22、......
23、重新去下载lighttpd的windows版本。
    网址是:http://en.wlmp-project.net/downloads.php?cat=lighty
24、我下载了zip版本,文件名是:LightTPD-1.4.19-1-Win32-SSL.zip。
25、解压缩,在命令行下运行lightTPD.exe。
    报错:No configuration available.
26、创建lighttpd.conf。
    内容如下:
server.document-root = "F:/Misc/pycode/lighttpd/LightTPD"
server.port = 8080
mimetype.assign = (
".html" => "text/html",
".txt" => "text/plain"
)
27、然后运行:lighttpd.exe -f lighttpd.conf
    报错:dlopen() failed for: /usr/local/lib/mod_indexfile.dll
          No such ifle or directory
28、......
29、重新从:http://en.wlmp-project.net/downloads.php?cat=lighty
    下载exe版本,文件名是:LightTPD-1.4.19-1-Win32-SSL.exe
30、直接双击安装,安装目录为:C:/Program Files/LightTPD
    安装结束后直接打开文件夹。
31、其实和zip版本的是一样的。
32、......
33、重新回到zip版本。
34、运行:lighttpd.exe -f conf/lighttpd-inco.conf
    得到和27一样的错误。
35、运行:TestMode.bat
    在浏览器中输入:http://127.0.0.1/
    可以看到成功的测试页面。
36、我找到了mode_indexfile.dll文件,就在lib目录下面。
37、我试着把文件夹整个复制到C:/LightTPD下面,但是还是不行。
38、我怀疑是打包exe的人就是把目录设置为/usr/local了,所以……就只能这样了。
39、运行:lighttpd -h
    看到了帮助信息。
    原来如此呀!!!
40、-m选项是用来调整module的目录位置的。
41、于是输入:lighttpd -f conf/lighttpd-inc.conf -m lib
    服务器启动。
    访问:http://127.0.0.1/
    得到“404 - Not Found”的错误。
42、用Ctrl+Break可以终止服务器的运行。
    (用Ctrl+C好像有点问题)
43、至此,算是安装完毕了。

 ===================================================
WLMP[windows+lighttpd+mysql+php(fastcgi)]环境的搭建  2009-04-08

      PHP不是我的最爱,但java更累,ruby、python优美是很优美,但目前来说不好找工作,PHP简单,而且PHP+Flex做出来的东西真的很Cool,所以决定以后主攻PHP+Flex。
     下面说下WLMP[windows+lighttpd+mysql+php(fastcgi)]环境的搭建,新手就来看下,高手就让路吧。为什么不是LAMP呢,因为只有一台电脑,有很多毕业论文的东西要在Windows上做,而且Linux和Windows切换来切换去有点麻烦,所以只好放弃在Ubuntu上搭建了;Apache大家都听多了,网上搭建的教程也多,腻了,听说lighttpd占内存少,性能高,所以换lighttpd来玩下,也很喜欢lighttpd的Logo(纸飞机)。
    windows: xp sp3
      lighttpd: LightTPD-1.4.22-1-Win32-SSL.exe
      下载地址:http://en.wlmp-project.net/downloads.php?cat=lighty
        mysql: mysql-5.0.77-win32.zip
      下载地址: http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.77-win32.zip/from/pick
          php:  php-5.2.9-1-Win32.zip
      下载地址: http://www.php.net/downloads.php
   phpMyAdmin: phpMyAdmin-3.1.3.1-all-languages.zip 
       下载地址: http://www.phpmyadmin.net/home_page/downloads.php
    
     我在E盘建了个wlmp的文件夹,把lighttpd安装在这里,安装过程我就不说了,大家都会,安装好之后是E:/wlmp/LightTPD,然后安装MySQL,这个大家都会装了吧,安装好了是E:/wlmp/MySQL Server 5.0,再安装php,只要把php解压到指定目录就可以了,安装好之后是E:/wlmp/php,还要把php的目录E:/wlmp/php加到环境变量里,最后再在E:/wlmp里建个www的文件夹,把phpMyAdmin解压到里面,安装好之后是E:/wlmp/www/phpmyadmin。
      好了,都安装完毕之后就是配置问题了,这个是重点。
      首先配置lighttpd,参照http://redmine.lighttpd.net/wiki/lighttpd/TutorialLighttpdAndPHP
配置在E:/wlmp/LightTPD/conf下的lighttpd-inc.conf文件, 找到server.document-root这行,
改成server.document-root  = "E:/wlmp/www/"
再找到server.upload-dirs 改成 server.upload-dirs = ( "E:/wlmp/LightTPD/tmp" )
再找到fastcgi.server,改成 fastcgi.server             = ( ".php" =>   
                               ( "localhost" =>   
                                 (   
                                      "host" => "127.0.0.1",   
                                      "port" => 521  
#                                   "socket" => "TMP/php-fastcgi.socket",   
#                                   "bin-path" => "PHP/php-cgi.exe"  
                                )   
                              )   
                             )  

fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                      "host" => "127.0.0.1",
                                      "port" => 521
#                                   "socket" => "TMP/php-fastcgi.socket",
#                                   "bin-path" => "PHP/php-cgi.exe"
                                )
                              )
                             )

下面再修改lighttpd-srv.conf,找到server.errorlog和accesslog.filename,改成

#定义lighttpd所在目录   
var.root = "E:/wlmp/LightTPD"  
  
## where to send error-messages to   
server.errorlog             = var.root + "/logs/lighttpd-srv.error.log"  
  
#### accesslog module   
accesslog.filename       = var.root + "/logs/lighttpd-srv.access.log"  

#定义lighttpd所在目录
var.root = "E:/wlmp/LightTPD"

## where to send error-messages to
server.errorlog             = var.root + "/logs/lighttpd-srv.error.log"

#### accesslog module
accesslog.filename       = var.root + "/logs/lighttpd-srv.access.log"

这样lighttpd的简单配置就完成了,下面再弄两个批处理,启动php-cgi、lighttpd和关闭php-cgi、lighttpd,之前要下
一个RunHiddenConsole.exe,这个是用来隐藏黑乎乎的控制台(cmd)的,解压放到E:/wlmp/LightTPD下即可。
下载地址: http://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip
Start-LightTPD.bat

@ECHO OFF   
ECHO Starting PHP FastCGI...   
RunHiddenConsole.exe ../PHP/php-cgi.exe -b 127.0.0.1:521  
ECHO Starting LightTPD...   
ECHO.   
lighttpd.exe -v   
ECHO.   
lighttpd.exe -f conf/lighttpd-srv.conf -m lib   
PAUSE  

@ECHO OFF
ECHO Starting PHP FastCGI...
RunHiddenConsole.exe ../PHP/php-cgi.exe -b 127.0.0.1:521
ECHO Starting LightTPD...
ECHO.
lighttpd.exe -v
ECHO.
lighttpd.exe -f conf/lighttpd-srv.conf -m lib
PAUSE
  

Stop-LightTPD.bat

@ECHO OFF   
ECHO Stopping LightTPD...   
bin/process.exe -k lighttpd.exe >nul   
ECHO Stopping PHP FastCGI...   
bin/process.exe -k php-cgi.exe >nul   
ECHO.   
PAUSE  

@ECHO OFF
ECHO Stopping LightTPD...
bin/process.exe -k lighttpd.exe >nul
ECHO Stopping PHP FastCGI...
bin/process.exe -k php-cgi.exe >nul
ECHO.
PAUSE
  

下面来测试下,写个info.php丢到E:/wlmp/www下,

phpinfo();
双击Start-LightTPD.bat,启动php-cgi、lighttpd,然后在浏览器里输入地址http://127.0.0.1/info.php,看看是否成功。
然后再配置php,在php的目录下找到php.ini-recommended,复制一份把名改为php.ini,
找到extension_dir改为extension_dir = "E:/wlmp/php/ext",
找到Windows Extensions,把自己需要的dll前面的“;”去掉,例如我的是extension=php_gd2.dll   
extension=php_mbstring.dll   
extension=php_mcrypt.dll   
extension=php_mysql.dll   
extension=php_pdo.dll  
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_pdo.dll

这样就OK了。
写blog有点累呀!
最后配置phpmyadmin,在phpmyadmin目录下找到config.sample.inc.php,复制一份改名为config.inc.php,
找到$cfg['blowfish_secret'],改为$cfg['blowfish_secret'] = 'www';这里要说明的是config.inc.php中默认的是$cfg['Servers'][$i]['auth_type'] = 'cookie',就是说用到cookie,那$cfg['blowfish_secret']= ''得填点东西,这里我随便填了'www'。
最最后就是测试了,上面已经启动了php-cgi、lighttpd,这里再启动mysql,在开始->运行->输入net start mysql,然后在浏览器里直接输入http://127.0.0.1/phpmyadmin/就可以了,输入mysql的账号和密码就OK。

=========================================================
Lighttpd php fastcgi Windows 安装
其实安装Lighttpd不需要什么别的软件,去https://www.kevinworthington.com/?s=lighttpd下载编译好的win32版就好了(本人用的是zip包,exe版类似)。
1.解压到任何目录(最好是英文目录,其他语言的没试过),如d:/inetpub/LightTPD;我的系统环境:Vista32 中文版,PHP5.2.3和5.2.4,mysql 5.0.45;
以下的conf、bat和RunHiddenConsole.exe可以在这里下载:http://www.box.net/shared/vfvqyjhday
2.打开conf文件夹,将lighttpd-inc.conf备份;
3.修改这个配置文件,我的配置如下(精简过的)#后面的是注释,详细注释前往官方文档http://trac.lighttpd.net/trac/wiki/Docs及本论坛的好帖http://www.lighttpd.net.cn/showthread.php?t=11217

# 定义lighttpd所在目录
var . root  =   " D:/Inetpub/Lighttpd "
# 启用的modules(详细见原版lighttpd-inc.conf)
server . modules               =  (
" mod_access " ,  
" mod_cgi " ,  
" mod_accesslog " ,
" mod_alias " ,
# "mod_fastcgi"
)
# 服务的目录
server . document - root         =   " D:/Inetpub/www/ "
server
. errorlog              =   var . root  +   " /logs/lighttpd.error.log "
server
. upload - dirs           =  ( var . root  +   " /tmp " )
accesslog
. filename           =   var . root  +   " /logs/access.log "
# 默认首页
index - file . names             =  (  " index.php " ,   " index.html " ,   " index.htm "  )
# 使用php
static - file . exclude - extensions  =  (  " .php "  )
# 使用CGI php的定义
cgi . assign                  =  (  " .php "    =>    " D:/Inetpub/php/php-cgi.exe " )
# 使用fastcgi PHP(win版下可使用)
#
fastcgi.server = ( ".php" =>( "localhost" =>("host" => "127.0.0.1","port" => 521 ))) 
mimetype . assign              =  (
  
" .pdf "            =>        " application/pdf " ,
  
" .sig "            =>        " application/pgp-signature " ,
  
" .spl "            =>        " application/futuresplash " ,
  
" .class "          =>        " application/octet-stream " ,
  
" .ps "             =>        " application/postscript " ,
  
" .torrent "        =>        " application/x-bittorrent " ,
  
" .dvi "            =>        " application/x-dvi " ,
  
" .gz "             =>        " application/x-gzip " ,
  
" .pac "            =>        " application/x-ns-proxy-autoconfig " ,
  
" .swf "            =>        " application/x-shockwave-flash " ,
  
" .tar.gz "         =>        " application/x-tgz " ,
  
" .tgz "            =>        " application/x-tgz " ,
  
" .tar "            =>        " application/x-tar " ,
  
" .zip "            =>        " application/zip " ,
  
" .mp3 "            =>        " audio/mpeg " ,
  
" .m3u "            =>        " audio/x-mpegurl " ,
  
" .wma "            =>        " audio/x-ms-wma " ,
  
" .wax "            =>        " audio/x-ms-wax " ,
  
" .ogg "            =>        " application/ogg " ,
  
" .wav "            =>        " audio/x-wav " ,
  
" .gif "            =>        " image/gif " ,
  
" .jpg "            =>        " image/jpeg " ,
  
" .jpeg "           =>        " image/jpeg " ,
  
" .png "            =>        " image/png " ,
  
" .xbm "            =>        " image/x-xbitmap " ,
  
" .xpm "            =>        " image/x-xpixmap " ,
  
" .xwd "            =>        " image/x-xwindowdump " ,
  
" .css "            =>        " text/css " ,
  
" .html "           =>        " text/html " ,
  
" .htm "            =>        " text/html " ,
  
" .js "             =>        " text/javascript " ,
  
" .asc "            =>        " text/plain " ,
  
" .c "              =>        " text/plain " ,
  
" .cpp "            =>        " text/plain " ,
  
" .log "            =>        " text/plain " ,
  
" .conf "           =>        " text/plain " ,
  
" .text "           =>        " text/plain " ,
  
" .txt "            =>        " text/plain " ,
  
" .dtd "            =>        " text/xml " ,
  
" .xml "            =>        " text/xml " ,
  
" .mpeg "           =>        " video/mpeg " ,
  
" .mpg "            =>        " video/mpeg " ,
  
" .mov "            =>        " video/quicktime " ,
  
" .qt "             =>        " video/quicktime " ,
  
" .avi "            =>        " video/x-msvideo " ,
  
" .asf "            =>        " video/x-ms-asf " ,
  
" .asx "            =>        " video/x-ms-asf " ,
  
" .wmv "            =>        " video/x-ms-wmv " ,
  
" .bz2 "            =>        " application/x-bzip " ,
  
" .tbz "            =>        " application/x-bzip-compressed-tar " ,
  
" .tar.bz2 "        =>        " application/x-bzip-compressed-tar "
 )
# 虚拟目录
alias . url  =  (  " /ma/ "   =>   " D:/Inetpub/ma/ "  )
# 侦听端口
server . port                 =   81
mimetype
. use - xattr         =   " enable "
# 无首页是否列文件目录
dir - listing . activate         =   " enable "
# 服务器的版本好(好像是列目录时显示的)
server . tag                  =   " lighttpd/1.4.18i-win32 "
url
. access - deny              =  (  " ~ " ,   " .inc "  )
$HTTP [ " url " =~   " .pdf$ "  {
  server
. range - requests  =   " disable "
}

4.写运行Lighttpd的批处理文件放在lighttpd的根目录下:
运行CGI php:
start_lighttpd - cgi.bat

@ ECHO  OFF
ECHO  Starting lighttpd ...
# 重点是这句,-m指定mod文件的位置(一般不需要修改),-f指定配置文件的位置
LightTPD . exe  - m lib  - f conflighttpd . conf
IF   % errorlevel %  GTR  0  (
  
ECHO  Starting lighttpd failed !
  PAUSE
ELSE  (
  
ECHO  Starting lighttpd succeed !
)

运行fastcgi php:
a.先确保在conf中使用mod_fastcgi,和配置了fastcgi.server;
b.start_lighttpd - fastcgi.bat,RunHiddenConsole.exe 在官方网站有下(也可以不使用,不过回留下一个cmd的窗口)

@ ECHO  OFF
ECHO  Starting PHP FastCGI ...
# 运行php-cgi.exe
RunHiddenConsole . exe  .. PHPphp - cgi . exe  - 127.0 . 0.1 : 521
ECHO  Starting LightTPD ...
ECHO .
lighttpd
. exe  - v
ECHO .
lighttpd
. exe  - f etclighttpd . conf  - m lib
EXIT

关闭Lighttpd:
stop_lighttpd - cgi.bat

@ ECHO  OFF
ECHO  Stoping lighttpd ...
binProcess 
- k LightTPD . exe
ping 
127.0 . 0.1   >  NUL

stop_lighttpd_fastcgi.bat

@ ECHO  OFF
ECHO  Stopping LightTPD ...
binprocess
. exe  - k lighttpd . exe  > nul
ECHO  Stopping PHP FastCGI ...
binprocess
. exe  - k php - cgi . exe  > nul
ECHO .
EXIT

重启Lighttpd:
restart_lighttpd.bat

@ ECHO  OFF
CALL stop_lighttpd
. bat
CALL start_lighttpd
. bat

5.也可以去bin目录把lighttpd配置成windows的系统服务。
备注:
运行fastcgi模式的时候,可以把批处理改成这样,没有CMD窗口。
 这个编译过的lighttpd的配置文件被改成lighttpd-inc.conf了。所以下面要改一下。

@ ECHO  OFF
ECHO  Starting PHP FastCGI ...
# 运行php-cgi.exe
RunHiddenConsole . exe  .. PHPphp - cgi . exe  - 127.0 . 0.1 : 521
ECHO  Starting LightTPD ...
ECHO .
lighttpd
. exe  - v
ECHO .
RunHiddenConsole
. exe lighttpd . exe  - f lighttpd-inc.conf - m lib
EXIT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值