slitaz-doc-wiki-data view pages/en/handbook/webserver.txt @ rev 7

Add pages/en folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:17:18 2011 +0000 (2011-02-26)
parents
children
line source
1 ====== LightTPD Web Server ======
3 ===== About LightTPD =====
5 This chapter describes the configuration and use of the LightTPD web server. It's a fast, secure, flexible HTTP server, using a small memory footprint. It enables intelligent management of the cpu load and offers FastCGI support, CGI, Auth, Output compression and the rewriting of URLs, etc. LightTPD is a cheap way to host your own site on an old machine.
7 On SliTaz the server is automatically launched at system startup and is preconfigured with PHP. The root documents served by default are in /var/www, this contains the default page index.html, images are stored in the images/ directory. LightTPD website: http://www.lighttpd.net/
9 ===== /var/www - Root directory of documents =====
11 The /var/www folder is the root directory of documents - you can access this via the URL http://localhost/. If you want to host a site, you can save all your documents in here. If you want to host multiple sites, you'll need to create virtual hosts. Note you can also check the http://localhost/server-status.
14 ===== ~Public - Public directory of users =====
16 SliTaz provides the users of the system a public space to place documents, HTML in general. This directory is named Public and must be within the root of your user space, such as ///home/hacker/Public//. To create this directory, use the //mkdir// command:
18 <code> $ mkdir ~/Public </code>
20 You can then have access via the URL: http://localhost/~hacker/. You can also use the machine name or IP address if you connect from another computer.
22 =====/etc/lighttpd/lighttpd.conf - LightTPD configuration file=====
24 The main configuration file for LightTPD (lighttpd.conf) is located in ///etc/lighttpd///. This file provided by SliTaz is self-explanatory, just browse. You can find other examples on the LightTPD website. On SliTaz you'll also find a //vhosts.conf// file for the configuration of any virtual hosts (hosting several sites on the same server).
26 =====Start, stop, restart the web server=====
28 By default, SliTaz starts the server automatically at boot, to prevent this you need to remove lighttpd from the variable //RUN_DAEMONS// located in the system file ///etc/rcS.conf//. To start, stop or restart the server, you can use the commands: ///etc/init.d/lighttpd [start|stop|restart]//. Example to restart the server after changing the configuration file:
30 <code> # /etc/init.d/lighttpd restart </code>
32 ===== CGI scripts using Perl =====
34 To configure the LightTPD server to locate the path of the perl binary and use CGI/Perl, you'll need to install perl and modify the server configuration file. Example using Geany:
36 <code> # tazpkg get-install perl
37 # geany /etc/lighttpd/lighttpd.conf & </code>
40 <file>
41 # CGI module. You can install Perl and assign .pl and .cgi scripts
42 # to /usr/bin/perl
43 $HTTP["url"] =~ "/cgi-bin/" {
44 cgi.assign = (
45 ".sh" => "/bin/sh",
46 ".cgi" => "/usr/bin/perl,
47 ".pl" => "/usr/bin/perl
48 )
49 }
51 </file>
53 ===== CGI scripts using Python =====
55 To configure the LightTPD server to locate the path of the python binary and use CGI/Python, you'll need to to install python and modify the server configuration file. Example using Geany:
56 <code>
57 # tazpkg get-install python
58 # geany /etc/lighttpd/lighttpd.conf &
59 </code>
61 <file>
62 # CGI module. You can install Python and assign .py and .cgi scripts
63 # to /usr/bin/python
64 $HTTP["url"] =~ "/cgi-bin/" {
65 cgi.assign = (
66 ".sh" => "/bin/sh",
67 ".cgi" => "/usr/bin/python,
68 ".py" => "/usr/bin/python
69 )
70 }
71 </file>
73 For the changes to be taken into effect and to use your first CGI scripts on SliTaz, just restart the LightTPD server:
75 <code> # /etc/init.d/lighttpd restart </code>
77 ===== Authentication - Protection for the directories =====
79 LightTPD provides authentication modules that can for example, protect a directory. The server offers several authentication methods, but we will begin by using the basic method without encrypting any passwords. In order to be able to use the module mod_auth, you must install the lighttpd-modules package (tazpkg get-install lighttpd-modules). Once installed mod_auth must be added to the list of modules:
81 <file>
82 # Modules to load.
83 # See /usr/lib/lighttpd for all available modules.
84 #
85 server.modules = (
86 "mod_access",
87 "mod_auth",
88 "...",
89 )
90 </file>
92 Now you can configure the modules by specifying the debug level and method (plain) and the path to the file containing a list of names using a protected password to access the directories. You must also define the directories that require authorization. In this example we'll protect the admin/ directory and authorize its access to user tux (//user=tux//):
94 <file>
95 # Authentication for protected directory.
96 auth.debug = 2
97 auth.backend = "plain"
98 auth.backend.plain.userfile = "/etc/lighttpd/plain.passwd"
99 auth.require = ( "/admin/" =>
100 (
101 "method" => "basic",
102 "realm" => "Password protected area",
103 "require" => "user=tux"
104 )
105 )
106 </file>
108 Finally, we now create the file containing the passwords, add a user and restart the server for testing. The basic syntax for the file is user:password. You can create the file and add a user with the echo command or edit with your favorite text editor. To add tux:root to the password file ///etc/lighttpd/plain.passwd//:
110 <code>
111 # echo "tux:root" > /etc/lighttpd/plain.passwd
112 Or :
113 # nano /etc/lighttpd/plain.passwd
114 </code>
115 To test the address: **http://localhost/admin/**, just restart the server:
117 <code> # /etc/init.d/lighttpd restart </code>