安裝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" )
在多個目錄需要提供不同身份時,目錄級別高的應該寫在目錄級別低的后面,上面的例子中如果把①的內容放到②、③的前面去,那②、③的配置將不生效。