Quản Trị  Hệ Điều Hành Linux - Unix
 
Cài đặt lighttpd trên Linux
10:22 | 10/04/2010
Trang chủ: http://lighttpd.net/

Chắc hẳn mọi người đã quá quen thuộc với Apache, hôm nay mình sẽ giới thiệu về lighttpd, một webserver nhỏ gọn nhưng khá mạnh.


Bài này sẽ hướng dẫn bạn:
- Cài đặt và cấu hình cơ bản lighttpd trên hệ điều hành Linux.
- Cài đặt PHP với lighttpd.
- Tạo VirtualHost.

I. Build & Install
Bạn download phiên bản mới nhất tại ngay trang chủ của lighttpd, phiên bản hiện thời là 1.4.15.
Sau khi download xong, bạn copy mã nguồn vào /usr/local/src.
Giải nén:
Code:

 root@linux:/usr/local/src# tar -xvzf lighttpd-1.4.15.tar.gz
 root@linux:/usr/local/src# cd lighttpd-1.4.15

Tất nhiên sau đó phải đọc qua file INSTALL một chút, và configure –help lên xem nó hỗ trợ gì:
Code:

 root@linux:/usr/local/src/lighttpd-1.4.15# vi INSTALL
 root@linux:/usr/local/src/lighttpd-1.4.15# ./configure –help

- Tiến hành cài đăt:
Code:

 root@linux:/usr/local/src/lighttpd-1.4.15# ./configure --prefix=/usr/local/lighttpd
 root@linux:/usr/local/src/lighttpd-1.4.15# make
 root@linux:/usr/local/src/lighttpd-1.4.15# make install

Nếu không có gì xảy ra là ta đã cài đặt xong.

- Vào thư mục đã cài lighttpd và tạo một số thư mục cần thiết:
+ Nơi chứa file cấu hình lighttpd.conf:
root@linux:/usr/local/lighttpd# mkdir etc

+ Nơi chứa các logs file.
root@linux:/usr/local/lighttpd# mkdir logs

+ Nơi chứa website:
root@linux:/usr/local/lighttpd# mkdir www

+ Nơi chứa pid file:
root@linux:/usr/local/lighttpd# mkdir -p var/run

- Tạo user và group cho lighttpd (tất nhiên ta ko dại gì mà chạy lighttpd dưới quyền root, vì như thế là quá nguy hiểm):
Code:

 root@linux:/usr/local/lighttpd# groupadd lighttpd
 root@linux:/usr/local/lighttpd# useradd lighttpd -g lighttpd -s /bin/false -d /dev/null

- Chỉnh lại quyền cho thư mục logs (vì lighttpd chạy dưới quyền user lighttpd nên user này phải có quyền ghi trên thư mục logs):
Code:

 root@linux:/usr/local/lighttpd# chown -R lighttpd logs/

Ở điểm này chắc Apache ngon hơn smilie).
- Sau đó copy file lighttpd.conf tại nơi chứa mã nguồn sang thư mục etc mà ta vừa tạo (file này nằm trong thư mục doc).
Code:

 root@linux:/usr/local/lighttpd# cp /usr/local/src/lighttpd-1.4.15/doc/lighttpd.conf /usr/local/lighttpd/etc/

- Như vậy ta đã chuẩn bị xong, giờ ta dạo một vòng qua file lighttpd.conf và chỉnh sửa một số thông tin cho phù hợp:
Xem qua file lighttpd.conf thì thấy nó hỗ trợ khá nhiều modules, nhưng mặc định lighttpd chỉ bật hai modules là mod_access và mod_accesslog.
+ Thay đổi Document Root (nơi chứa website):
server.document-root = “/usr/local/lighttpd/www/”
+ Error Log:
server.errorlog = “/usr/local/lighttpd/logs/lighttpd.error.log”
+ Access Log:
accesslog.filename = “/usr/local/lighttpd/logs/access.log”

+ Mặc định lighttpd nghe trên cổng 80, bạn có thể thay bằng cổng khác.
server.port = 80

+ Thay đổi đường dẫn của pid file:
server.pid-file = “/usr/local/lighttpd/var/run/lighttpd.pid”

+ Thay đổi user và group cho lighttpd (user và group này ta đã tạo ở trên):
server.username = “lighttpd”
server.groupname = “lighttpd”

+ Thay đổi thông tin về webserver trên HTTP Header:
server.tag = “Apache version 10″
Thay nó bằngApache version 10 (cho vui smilie ).

- OK, giờ ta chạy thử lighttpd:
root@linux:/usr/local/lighttpd# ./sbin/lighttpd -f etc/lighttpd.conf
Sau khi khởi động thành công bạn tạo một file index.html trong thư mục www và kiểm tra thử xem webserver đã chạy đúng chưa:
http://ip_address


II. Cài đặt PHP với lighttpd

Ta sẽ cài PHP từ mã nguồn và có hỗ trợ MySQL. Giả sử MySQL đã được cài đặt sẵn (từ source) và đặt tại /usr/local/mysql. PHP dùng trong bài này là PHP-5.2.1, bạn có thể down bản mới nhất tại http://php.net
- Copy mã nguồn của PHP vào thư mục /usr/local/src, giải nén, và cài đặt

    root@linux:/usr/local/src/php-5.2.1# ./configure –prefix=/usr/local/php5-lighttpd –with-mysql=/usr/local/mysql –enable-fastcgi –enable-discard-path –enable-force-redirect

Chú ý nhớ phải enable 3 modules trên.
Code:

 root@linux:/usr/local/src/php-5.2.1# make
 root@linux:/usr/local/src/php-5.2.1# make install

- Nếu không có gì bất trắc xảy ra thì PHP đã được cài thành công vào thư mục /usr/local/php5-lighttpd, sau đó ta copy file php.ini-dist sang thư mục lib của PHP và đổi tên thành php.ini:
Code:

 root@linux:/usr/local/src/php-5.2.1# cp php.ini-dist /usr/local/php5-lighttpd/lib/php.ini

- Ta quay trở lại file cấu hình lighttpd.conf:
Module mod_fastcgi phải được bật lên vì lighttpd dùng PHP qua mod_fastcgi (bằng cách bỏ comment trong phần server.modules ).

Mở chức năng fastcgi.server:
Code:

 fastcgi.server  = ( ".php" =>
                                ( "localhost" =>
                                  (
                                    "socket" => "/tmp/php-fastcgi.socket",
                                     "bin-path" => "/usr/local/php5-lighttpd/bin/php"
                                  )
                                )
                             )

- Khởi động lại lighttpd, tạo file info.php có nội dung sau:
phpinfo();
?>
Và chạy thử:
httpl://ip_server/info.php

III. Tạo VirtualHost
Trên lighttpd bạn có thể tạo nhiều virtualhost để cho nhiều domain dùng chung một IP (HostBase).
Mở file lighttpd.conf và thêm vào:
Code:

 $HTTP["host"] == "domain1.com" {
         server.document-root = "/usr/local/lighttpd/www/domain1"
         server.errorlog = "/usr/local/lighttpd/logs/domain1_error.log"
         accesslog.filename = "/usr/local/lighttpd/logs/domain1_access.log"
 }
 $HTTP["host"] == "domain2.com" {
         server.document-root = "/usr/local/lighttpd/www/domain2"
         server.errorlog = "/usr/local/lighttpd/logs/domain2_error.log"
         accesslog.filename = "/usr/local/lighttpd/logs/domain2_access.log"
 }

Ở trên ta đã tạo hai virutalhost cho hai domain:
domain1.com có thư mục gốc là www/domain1
và doman2.com có thư mục gốc là www/domain2
và các log file tương ứng cho các domain.
Từ trình duyệt, gõ http://domain1.com và http://domain2.com để kiểm tra chức năng VirtualHost đã đúng chưa.

Chú ý: Bạn có thể giả lập hai domain bằng cách chỉnh trong file /etc/hosts:
ip_address domain1.com
ip_address domain2.com

Cuối cùng, tạo một scripts đơn giản để start và stop lighttpd:
Code:

 #!/bin/sh

 LIGHTTPD_HOME="/usr/local/lighttpd"
 CONFIG_FILE="$LIGHTTPD_HOME/etc/lighttpd.conf"
 PID_FILE="$LIGHTTPD_HOME/var/run/lighttpd.pid"
 LIGHTTPD="$LIGHTTPD_HOME/sbin/lighttpd"

 AVG=$1
 if [ -e $PID_FILE ]; then
         PID=`cat $PID_FILE`
         if [ "$PID" != "" ]; then
              RUNNING=1
         else RUNNING=0
         fi
 else
         RUNNING=0
 fi

 case $AVG in
          start)
                 if [ "$RUNNING" = 1 ]; then
                         echo "lighttpd dang chay roai!"
                 else
                         $LIGHTTPD -f $CONFIG_FILE
                         echo "lighttpd da khoi dong xong!"
                 fi
                 ;;
         stop)
                 if [ "$RUNNING" = 0 ]; then
                         echo "lighttpd co chay dau ma stop!"
                 else
                    kill -INT $PID
                    rm -f $PID_FILE
                  #Cai rm minh them vao vi no cha chiu xoa noi dung PID_FILE
                    echo "lighttpd vua bi stop roai!"
                 fi
                 ;;
         *)
                 echo "Cach dung: $0 {start|stop}"
         ;;
 esac
 exit 0

Nguyễn Thăng Long (Kenhgiaiphap.vn)

 
Ý kiến phản hồi và bình luận Góp ý kiến của bạn

Các tin mới nhất :
- Thiết lập 1 hệ thống High-availability - Loadbalancing và Reverse Proxy cho Web Server trên CentOS 6/RHEL Sử dụng HAProxy và Keepalived
- Đồng bộ hóa dữ liệu giữa hai Server Ubuntu 11.10 sử dụng Unison.
- Bảo vệ thư mục web với mod_auth_mysql trên Apache2
- Tích hợp MailScanner - ClamAV - SpamAssassin - SquirrelMail vào PostfixTrên Centos 5.7
- Cài đặt rsnapshot trên CentOS
- Xây dựng hệ thống NAS Cluster sử dụng OpenFiler
- Cài đặt Nginx trên Ubuntu 11.10
- Thiết lập hệ thống Active/active Samba CTDB Cluster sử dụng GFS & DRBD Trên Centos 5.7 X86_64
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần3)
- Thiết lập máy chủ Ubuntu 11.10 và cài đặt ISPConfig 3 (Phần2)
Các tin liên quan :
- Kiểm tra file, service và restart service khi cần thiết với Monit
- Tối ưu và tăng tốc PHP với XCache !
- Thiết lập Openvpn trên Server Linux
- Thiết lập tường lửa Iptables cho Linux - Phần 1
Bài nhiều người đọc cùng chuyên mục
Thiết lập 1 hệ thống High-availability - Loadbalancing và Reverse Proxy cho Web Server trên CentOS 6/RHEL Sử dụng HAProxy và Keepalived
 
Cài đặt Nginx trên server CentOS 6 x86_64 với PHP5 hỗ trợ qua PHP – FPM và MySQL.
 
Cấu hình ftp server với vsftpd
 
Quản lý đĩa trên linux dùng kỹ thuật LVM (Phần 1)
 
Cài Đặt Web Server (LAMP )Trên Centos 6 X86_64
 
Cài đặt và cấu hình Server Linux CentOS hoàn chỉnh (Phần 1)
 
Cài đặt công cụ giám sát web server apache
 
Trang chủ | Giới thiệu | Quảng cáo | Liên hệ
Giấy phép ICP số 199/GP-TTĐT. Bộ Thông tin và Truyền thông cấp.
Cơ quan quản lý  : Công Ty Cổ Phần Kênh Giải Pháp
Bản quyền © 2010-2011 Kenhgiaiphap.vn . Giữ toàn quyền.
Ghi rõ nguồn "Kenhgiaiphap.vn" khi phát hành lại thông tin từ website này.

return false; });