在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
红旗自带apache2作为默认的web服务器。在原来的系统中就是使用apache作为web页面的服务器,apache占用的内存很多,一个apache进程占用的内存大约是20M,最大的可能占到35M以上,占用的共享内存都在100多M以上。而且apache是一个多进程响应服务,这样apache的进程占用内存更多。因此经长时间运行,会出现由于内存不够而无法访问界面的情况。
lighttpd是一个理想的替代方案。其是一个非常轻便的web服务器,虽然它的功能没有apache强大,但是可以满足大部分的服务要求。它的内存占用量一般是2M左右,占用的共享内存是20M左右,而且与apache实现机制不同的是,lighttpd采用单进程多路复用的方式响应请求,在系统中一般只有一个lighttpd进程响应服务请求。(也可配置为多进程)所以从内存占用量的角度看,lighttpd就有很大的优势。此外,lighttpd也可以通过配置fast-cgi支持php应用。 本文仅是我刚开始试用lighttpd的一个笔记,把常规的功能总结一下: 引用
1、支持perl的cgi程序;
2、使用fast-cgi支持php、mysql、gd等应用。 更多的功能尝试,后续提供。 一、安装 官方网站:http://www.lighttpd.net/ 目前最新的stable版本是1.4.19,您可以使用源码方式安装。而我是基于红旗 Asianux 3.0 x86上编译的rpm,这里可以下载:点击。 拷贝默认配置文件: # mkdir /etc/lighttpd/
# cp /usr/share/doc/lighttpd-1.4.19/lighttpd.conf /etc/lighttpd 二、基础配置 打开默认配置文件,可发现配置方式不像apache,更像perl的风格。打开一些默认的模块,及修改路径即可。 引用
#加载模块
server.modules = ("mod_access","mod_accesslog" ) #默认web根路径 server.document-root = "/var/www/html/" #错误日志 server.errorlog = "/var/log/lighttpd/error.log" #访问日志 accesslog.filename = "/var/log/lighttpd/access.log" 保存后,创建对应的日志目录,启动即可: # service lighttpd start
或 # lighttpd -f /etc/lighttpd/lighttpd.conf 三、常规应用 1、支持perl的CGI应用 perl是最常见的CGI应用语言之一,只要修改配置文件打开支持即可: 引用
server.modules += ("mod_cgi")
cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" ) perl执行路径请确认正确无误。另外,也可实现apache的模式,即把perl脚本放在cgi-bin目录: 引用
server.modules += ("mod_cgi","mod_alias")
alias.url += ( "/cgi-bin" => server_root + "/cgi-bin" ) $HTTP["url"] =~ "^/cgi-bin" { cgi.assign = ( "" => "" ) } 没错,这时候还需要额外加载mod_alias模块。 ◎测试: 引用
# cat /var/www/html/test.pl
#!/usr/bin/perl -w use CGI qw/:standard/; my $cgi = new CGI; print "Content-type:text/plain;\n\n"; print "test\n"; $id = $cgi -> param('id'); print "from Internet Explore parmater 'id' is $id."; ※注意,别忘了给perl脚本加上执行权限哦。 访问下面的链接可得到结果: 引用
http://ip/test.pl?id=123
以后,访问mysql等工作,就是perl的DBI模块的问题了。 2、支持php应用 lighttpd使用fast-cgi模式支持php应用,配置前,需要确保php-cgi已经安装好: 引用
# type php-cgi
php-cgi is /usr/bin/php-cgi # rpm -qf /usr/bin/php-cgi php-cli-5.1.6-12.2AX # php-cgi -v PHP 5.1.6 (cgi-fcgi) (built: Aug 14 2007 00:38:17) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies 有些php模块并不适合cli环境使用,会报警告信息,可不必理会。 然后,打开lighttpd的配置: 引用
server.modules += ("mod_fastcgi")
fastcgi.server = ( ".php" => ( "localhost" => ( "socket" => "/var/run/lighttpd/php-fastcgi.socket", "bin-path" => "/usr/bin/php-cgi" ) ) ) 同样的,需建立/var/run/lighttpd/目录,以及确保php-cgi的执行路径正确。 剩下的,就是看你需要那些php模块,例如mysql等: 引用
# rpm -qa|grep php|grep mysql
php-mysql-5.1.6-12.2AX # rpm -ql php-mysql /etc/php.d/mysql.ini /etc/php.d/mysqli.ini /etc/php.d/pdo_mysql.ini /usr/lib/php/modules/mysql.so /usr/lib/php/modules/mysqli.so /usr/lib/php/modules/pdo_mysql.so 只要安装了合适的模块,php即可正常使用。 ◎测试: 建立一个phpinfo脚本: 引用
# cat /var/www/html/info.php
<?php phpinfo() ?> 访问:http://ip/info.php,结果如下: 可见,包括mysql、gd、xml等都可顺利支持。
|