安装lighttpd
1.使用如下命令安装相关软件包。
yum -y insall pcre-devel.i*
yum -y install bzip2-devel.i*
yum -y install openssl-devel.i*
yum -y install php-devel.i*
yum -y install openssl-devel.i* 不需要配置ssl保护http可不安装
yum -y install php-devel.i* 没有基于php的网站可不安装;
安装所需的软件,
[root@www1 opt]# cd lighttpd-1.4.22
2.安装lighttpd
[root@www1 lighttpd-1.4.22]# ./configure --prefix=/usr/local/lighttpd --with-openssl
[root@www1 lighttpd-1.4.22]# make && make install
3.从Lighttpd所提供的模板中复制相关文件。
[root@www1 lighttpd-1.4.22]# cp doc/rc.lighttpd.redhat /etc/rc.d/init.d/lighttpd
[root@www1 lighttpd-1.4.22]# cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
[root@www1 lighttpd-1.4.22]# mkdir /etc/lighttpd
[root@www1 lighttpd-1.4.22]# cp doc/lighttpd.conf /etc/lighttpd/lighttp.conf
[root@www1 lighttpd-1.4.22]# mv /etc/lighttpd/lighttp.conf /etc/lighttpd/lighttpd.conf
修改/etc/rc.d/init.d/lighttpd中软件安装目录参数。
[root@www1 lighttpd-1.4.22]# vim /etc/rc.d/init.d/lighttpd
修改文件的路径:lighttpd="/usr/local/lighttpd/sbin/lighttpd"
建立默认网站目录。在/etc/sysconfig/lighttpd中server.document-root参数所设置的是默认网站的目录,该目录必须存在
4.建立Lighttpd各种日志文件存放目录
[root@www1 lighttpd-1.4.22]# mkdir /var/log/lighttpd
[root@www1 opt]# mkdir /var/www/htdocs
重启lighttpd。
5.支持perl的配置
修改/etc/lighttpd/lighttpd.conf中server.modules参数,把前面的“#”去掉!
"mod_cgi",
cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl" )
#
6.支持php配置
修改/etc/lighttpd/lighttpd.conf中server.modules参数,将mod_fastcgi行前的注释取消
7.在/etc/lighttpd/lighttpd.conf中增加以下内容。
fastcgi.server = ( ".php" => (("bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket" )))
#
8.设置个人主页 首先要在/etc/lighttpd/lighttpd.conf中增加以下内容
userdir.path = "public_html" #指定用户个人主页存放在用户家目录下的public_html目录
8.1.确保public_html目录中所有内容其他人的系统权限至少有rx。
测试成功:
9.别名设置
修改/etc/lighttpd/lighttpd.conf中server.modules参数,将mod_alias行前的注释取消
"mod_alias",
9.1在/etc/lighttpd/lighttpd.conf中增加以下内容。
alias.url = ("/zhome" => "/var/www/htdocs/wang")
如果希望在一个网站定义多个别名时可以采用以下两种方式。
alias.url = ("/zhome" => "/var/www/htdocs/wang",
“/yhome” => “/var/www/htdocs/tom”)
alias.url = ("/zhome" => "/var/www/htdocs/wang")
alias.url += (“/yhome” => "/var/www/htdocs/tomyang")
测试成功:
10.用户认证配置
Lighttpd使用mod_auth模块可实现对网站等进行用户名、密码保护的功能。不管使用哪种用户认证方式都需要加载mod_auth模块。把mod_auth模块前的”#”去掉。
Lighttpd提供基本身份验证和摘要式身份验证两种方式,摘要式身份验证则使用Hash算法传送密码,添加三个用户如:wang 、 tom 、chen;
在/etc/lighttpd/lighttpd.conf中增加以下内容。
"require" => "user=wang|user=chen" 指定只有wang、chen可以通过认证,如果希望用户名及密码保存文件中所有定义的用户均可以通过认证时可使用"require" => "valid-user"。
如果用户认证来源是一个htpasswd工具生成的密码时,只需将①行改为auth.backend= "htpasswd",后将②行改为auth.backend.htpasswd.userfile即可。
Lighttpd中可以对同一个网站下不同目录采用不同的认证方式
在Lighttpd中可以对同一个网站下不同目录采用不同的认证方式。下面的例子表示该网站用户名及密码保存文件中所有定义的用户均可以通过认证, 但可以访问该网站下tonyzhang目录的只有名为tonyzhang的用户,可访问tomyang目录的只有名为tomzhang的用户。
auth.backend = "plain"
auth.backend.plain.userfile = "/etc/lighttpd/users/.plain_users"
auth.require = ("/tonyzhang" => ( ①
"method" => "basic",
"realm" => "Private Direcotry",
"require" => "user=tom"
),
auth.require = ("/tomyang" => ( ②
"method" => "basic",
"realm" => "Private Direcotry",
"require" => "user=wang"
),
auth.require = ("/" => ( ③
"method" => "basic",
"realm" => " AdminUsers ",
"require" => "valid-user" )
在多个目录需要提供不同身份时,目录级别高的应该写在目录级别低的后面,上面的例子中如果把①的内容放到②、③的前面去,那②、③的配置将不生效。