banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Cài đặt lighttpd trên Linux  XML
  [Question]   Cài đặt lighttpd trên Linux 22/06/2007 08:07:10 (+0700) | #1 | 66176
[Avatar]
nil
Elite Member

[Minus]    0    [Plus]
Joined: 12/12/2006 18:37:46
Messages: 271
Location: Thùng rác
Offline
[Profile] [PM] [WWW]
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-wwwect 

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:
<?php
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 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


Kiến thức của bài viết này khá cơ bản, để hiểu rõ hơn và sâu hơn thì bạn (và mình) cần phải nghịch thêm nhiều. smilie)
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|