1. Trang chủ
  2. » Công Nghệ Thông Tin

Cài đặt và cấu hình Web Server sử dụng Apache2 trên Ubuntu

10 8,1K 20
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cài đặt và cấu hình Web Server sử dụng Apache2 trên Ubuntu
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo
Định dạng
Số trang 10
Dung lượng 552,9 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong tài liệu này, tôi sẽ trình bày 1 số thao tác cơ bản để cài đặt và thiết lập hệ thống web server sử dụng Apache2 trên nền tảng Ubuntu

Trang 1

Nội dung

1 Mục đích bản báo cáo

2 Cài đặt máy chủ web Apache2

2.1 Giới thiệu về Apache2

2.2 Cài đặt apache2

2.3 Một số lệnh trong apache2

2.4 Virtual hosts là gì?

3 Thực hiện Name-based virtual host

3.1 Cơ chế hoạt động

3.2 cài đặt

4 Thực hiện IP-based virtual host

4.1 Cơ chế hoạt động

4.2 cài đặt

5 Module userdir (tạo web folder cho từng NSD và giới hạn quota cho NSD) 5.1 Cài đặt đường dẫn với UserDir

5.2 Giới hạn cho NSD

5.3 Ví dụ minh họa

Trang 2

1 Mục đích bản báo cáo

Trong bản báo cáo này, sẽ trình bày 1 số thao tác cơ bản để cài đặt và thiết lập

hệ thống web server sử dụng Apache2 trên nền tảng Ubuntu

2 Cài đặt máy chủ web Apache2

2.1 apache là gì?

Apache hay là chương trình máy chủ HTTP, là một chương trình dành cho máy chủ đối thoại qua giao thức HTTP Apache chạy trên các hệ điều hành

tương tự như Unix, Microsoft Windows, Novell Netware và các hệ điều hành khác Apache đóng một vai trò quan trọng trong quá trình phát triển của World Wide Web

Apache được phát triển và duy trì bởi một cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation Apache được phát hành với giấy

phép Apache License và là một phần mềm tự do và miễn phí

2.2 Cài đặt apache2

Để cài đặt Apache2 trong Ubuntu sử dụng Synaptic package Manager, Ubuntu Software Center để tìm kiếm và cài đặt gói module apache2 Hoặc dùng Terminal và gõ lệnh sau:

sudo apt-get install apache2

Để kiểm tra xem apache đã được cài đặt thành công chưa, ta mở trình

duyệt web và gõ vào thanh địa chỉ: localhost Nếu thấy như hình dưới nghĩa là

đã cài thành công apache

Trang 3

2.3 Một số lệnh trong apache2

Sau khi cài đặt Apache, ứng dụng sẽ được thêm vào danh sách init.d của

hệ thống, do đó có thể tự khởi đọng cùng với hệ điều hành Sử dụng những lệnh

sau để khởi động, kích hoạt và ngừng hoạt động… của Apache:

Sudo /etc/init.d/apache2 start#start apache Sudo /etc/init.d/apache2 stop#stop apache Sudo /etc/init.d/apache2 restart#restart apache

Nếu không muốn Apache tự khởi động cùng hệ thống:

Sudo update-rc.d -f apache2 remove

Nếu muốn làm ngược lại quá trình trên:

Sudo update-rc.d apache2 defaults

Nhưng lưu ý rằng những lệnh trên chỉ áp dụng với các distro dựa trên Debian( bao gồm Ubuntu) mà thôi

2.4 Virtual host là gì?

Virtual host là cơ chế giúp cho nhiều hosts khác nhau có thể chạy trên cùng một máy chủ Có hai loại virtual host là name-based virtual hosts và

IP-based virtual hosts

Trang 4

3 Thực hiện Name- based virtual Host

3.1 cơ chế hoạt động

Để dùng được name-based virtual hosting, chúng ta cần chỉ định địa chỉ

IP (và cả cổng nếu được) phía server sẽ dùng để chấp thuận các yêu cầu cho các hosts Chúng ta có thể làm điều này dựa vào chỉ dẫn NameVirtualHost Trong trường hợp thông thường, địa chỉ IP bất kì hoặc tất cả các địa chỉ IP trên máy chủ có thể được sử dụng, chúng ta có thể sử dụng * làm tham số cho

NameVirtualHost (NameVirtualHost * chỉ chạy được với phiên bản 1.3.13 hoặc lớn hơn) Chú ý rằng chỉ ra một địa chỉ IP trong chỉ dẫn

NameVirtualHost sẽ không tự động làm cho server lắng nghe ở địa chỉ đó Thêm nữa, bất kì địa chỉ IP nào được chỉ ra ở đây cũng phải được liên kết với một network interface của máy chủ

Bước tiếp theo là tạo ra block <VirtualHost> cho mỗi host Tham số của chỉ dẫn <VirtualHost> cũng nên giống của chỉ dẫn NameVirtualHost (ví dụ như một địa chỉ IP hoặc dấu * cho tất cả các địa chỉ IP) Bên trong mỗi khối

<VirtualHost>, chúng ta cần ít nhất một chỉ dẫn SeverName để chỉ định host nào sẽ được dùng để phục vụ các yêu cầu và một chỉ dẫn DocumentRoot để chỉ

ra vị trí của các file chứa đựng nội dung của host đó

Khi thêm một virtual host vào webserver đã tồn tại, chúng ta cũng cần tạo một khối <VirtualHost> cho host đã tồn tại ServerName và DocumentRoot nằm trong virtual host này nên giống với ServerNameDocumentRoot chung Đầu tiên, chúng ta cần

liệt kê Virtual host vào file cấu hình Lúc này, khi có một request, đầu tiên, máy chủ sẽ kiểm tra xem nó có sử dụng địa chỉ IP khớp với trong NameVirtualHost không Nếu khớp, nó sẽ tìm kiếm trong từng đoạn <VirtualHost>có địa chỉ IP phù hợp và tìm phần có ServerName hoặc ServerAlias khớp với host name trong yêu cầu Nếu tìm được, nó sẽ sử dụng cấu hình cho server đó Nếu không có

virtual host nào được tìm thấy, thì virtual host đầu tiên trong danh sách mà có địa chỉ IP phù hợp sẽ được sử dụng

Như vậy, virtual host đầu tiên được liệt kê sẽ là default virtual host

DocumentRoot từ main server sẽ không bao giờ được sử dụng nếu có một địa chỉ IP khớp với chỉ dẫn NameVirtualHost Nếu muốn cấu hình đặc biệt cho các yêu cầu mà không khớp với bất kì virtual host nào thì chúng ta chỉ việc đặt cấu hình đó trong một container <VirtualHost> và đặt nó ở đầu trong file cấu hình

Ví dụ thiết lập 2 virtual hosts là abc.com và abc.org, trong đó, khi người dùng truy cập thông qua tên abc.com thì sẽ trả về nội dung trong

/var/www/abccom và nếu truy cập qua tên abc.org thì sẽ trả về nội dung từ

/var/www/abcorg

3.2 cài đặt

Ta tiến hành như sau:

1.Tiến hành thiết lập trong file httpd.conf

Trang 5

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /var/www/abccom ServerName abc.com

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /var/www/abcorg ServerName abc.org

</VirtualHost>

2 Tạo ra 2 files abc.com và abc.org trong thư mục:

/etc/apache2/sites-available/

sudo touch abc.com abc.org

3.Tiến hành enable 2 sites vừa tạo:

sudo a2ensite abc.com abc.org

4.Tạo ra 2 thư mục tương ứng của 2 hosts trong

/var/www

sudo mkdir abccom

sudo mkdir abcorg

5.Tiến hành kiểm tra:

5.1.Ta tạo một file index.html trong thư mục /var/www/abccom với

nội dung của file index.html như sau:

<h1>abc.com</h1>

<br>Copyright 2011 tadk <br>

5.2 Làm tương tự cho /var/www/abcorg 5.3 Sửa file /etc/hosts để phân giải abc.com

abc.orgthành 127.0.0.1:

sudo gedit /etc/hosts

Thêm các dòng sau đây vào file hosts này:

127.0.0.1 abc.com 127.0.0.1 abc.org

Lưu các thay đổi lại

5.4 Mở trình duyệt web và gõ vào địa chỉ abc.com và abc.org

Trang 6

4 Thể hiện IP-based virtual host

4.1 cơ chế hoạt động

Yêu cầu về hệ thống trong khái niệm IP-based, máy chủ phải có từng IP khác nhau cho mỗi IP-based virtual host Chúng ta có thể thực hiện điều này nếu có máy chủ có vài đường kết nối vật lý khác

nhau hoặc sử dụng các interfaces ảo có được hỗ trợ trong hầu hết các hệ điều hành hiện đại Để biết được chi tiết về tính năng này, chúng ta cần tham khảo trong tài liệu của hệ điều hành, nó thường được gọi là "ip alias" và lệnh thường được dùng

để cài đặt là "ifconfig"

4.2 cài đặt

Có hai cách cấu hình Apache để hỗ trợ nhiều hosts Cách thứ nhất là chạy từng daemon httpd riêng biệt cho từng hostname; hoặc cách nữa là chạy một daemon duy nhất để hỗ trợ cho tất cả các virtual hosts

Cài đặt single daemon cho nhiều virtual hosts

Trường hợp này, chỉ có một daemon httpd nhận các yêu cầu cho main server và tất cả các hosts Chỉ dẫn VirtualHost trong file cấu hình được dùng

để đặt các giá trị của các chỉ dẫn cấu hình khác nhau (ServerAdmin,

ServerName, DocumentRoot, ErrorLog TransferLog hoặc CustomLog) cho từng host khác nhau Ví dụ:

<VirtualHost www.smallco.com>

ServerAdmin webmaster@mail.smallco.com DocumentRoot /groups/smallco/www ServerName www.smallco.com

Trang 7

ErrorLog /groups/smallco/logs/error_log TransferLog /groups/smallco/logs/access_log

</VirtualHost>

<VirtualHost www.baygroup.org>

ServerAdmin webmaster@mail.baygroup.org DocumentRoot /groups/baygroup/www ServerName www.baygroup.org

ErrorLog /groups/baygroup/logs/error_log TransferLog /groups/baygroup/logs/access_log

</VirtualHost>

Chúng ta nên sử dụng địa chỉ IP thay vì hostname

Cài đặt 1 IP-based virtual host

Chúng ta sẽ tạo ra một host lắng nghe ở địa chỉ 192.168.1.89:80 có tên là

ipbasedsite1 và có DocumentRoot tại /var/www/ipbasedsite1

1 Thiết lập trong file httpd.conf như sau:

NameVirtualHost 192.168.1.89:80

<VirtualHost 192.168.1.89:80>

DocumentRoot /var/www/ipbasedsite1us

ServerName ipbasedsite1.us

</VirtualHost>

2 Tạo thư mục ipbasedsite1us trong /var/www

sudo mkdir /var/www/ipbasedsite1us

3 Tạo một file index.html trong /var/www/ipbasedsite1us và điền nội dung cho nó

4 Mở file hosts

sudo gedit /etc/hosts

Và thêm dòng sau vào file này:

192.168.1.89 ipbasedsite1.us

5 Cấu hình địa chỉ ip cho giao diện eth0:

sudo ifconfig eth0 192.168.1.89

6 Kiểm tra kết quả:

Trang 8

5 Module userdir

Trong hệ điều hành đa người dùng như Ubuntu, mỗi người dùng có thể được quyền có một trang web trong thư mục home của họ, sử dụng chỉ dẫn UserDir, ta có thể làm được điều này Một người khách truy cập vào địa chỉ URL http://example.com/~username/ sẽ thấy được nộidung của một thư mục của người dùng có tên là "username" Đó là một thư mục con được chỉ định trong chỉ dẫn UserDir

5.1 Cài đặt đường dẫn với userdir

Chỉ dẫn UserDir chỉ ra một thư mục chứa nội dung sẽ được nạp vào trang web Nó có một vài dạng như sau:

Nếu như đường dẫn không bắt đầu bằng một dấu gạch chéo / thì đó là đường dẫn tương đối so với thư mục home của user Ví dụ

UserDir public_html

thì URL http://example.com/~tadk/file.html sẽ được hiểu

/home/tadk/public_html/file.html

Nếu đường dẫn bắt đầu với dấu gạch chéo thì đó là đường dẫn tuyệt đối của thư mục

Ví dụ:

UserDir /var/html

thì URL http://example.com/~abc/file.html sẽ được dịch thành

/var/html/abc/file.html 5.2 Giới hạn user nào được sử dụng chức năng này

Trang 9

Chúng ta có thể sử dụng UserDir để giới hạn user nào được phép và không được sử dụng chức năng này

UserDir enabled tadk UserDir disabled root

Cấu hình như trên sẽ cho phép những users được liệt kê sau enabled (là tadk) được sử dụng tính năng userdir và giới han, hay tắt chức năng này đối với root

5.3 Ví dụ minh họa :

Ta sẽ tiến hành bật module userdir của Apache đối với user có tên tadk, cho phép

nội dung của thư mục: /home/tadk/public_html/

hiển thị trên web site khi có yêu cầu

localhost/~tadk/

1.Đầu tiên ta bật module userdir của apache:

2 Chỉnh sửa file /etc/apache2/mods-enabled/userdir.conf như sau:

UserDir enabled TADK

<Directory /home/*/public_html>

AllowOverride FileInfo AuthConfig Limit Indexes

Options MultiViews Indexes SymLinksIfOwnerMatch

IncludesNoExec

<Limit GET POST OPTIONS>

Order allow,deny

Allow from all

</Limit>

<LimitExcept GET POST OPTIONS>

Order deny,allow

Deny from all

</LimitExcept>

</Directory>

</IfModule>

3.tạo thư mục public_html trong thư mục home của tadk sau đó cho dữ liệu vào:

sudo a2enmod userdir

Ngày đăng: 21/08/2013, 10:57

HÌNH ẢNH LIÊN QUAN

Cấu hình như trên sẽ cho phép những users được liệt kê sau enabled (là tadk) được sử dụng tính năng userdir và giới han, hay tắt chức năng này đối với root - Cài đặt và cấu hình Web Server sử dụng Apache2 trên Ubuntu
u hình như trên sẽ cho phép những users được liệt kê sau enabled (là tadk) được sử dụng tính năng userdir và giới han, hay tắt chức năng này đối với root (Trang 9)

TỪ KHÓA LIÊN QUAN

w