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

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

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

Thông tin tài liệu

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

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 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 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 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 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 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 là một phần mềm tự do 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 cài đặt gói module apache2. Hoặc dùng Terminal 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 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. 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 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 IP- based virtual hosts. 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 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 DocumentRoot nằm trong virtual host này nên giống với ServerName DocumentRoot 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 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> đặt nó ở đầu trong file cấu hình. Ví dụ thiết lập 2 virtual hosts là abc.com 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 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 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 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.org thà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 gõ vào địa chỉ abc.com abc.org 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" 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 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 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 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 điền nội dung cho nó. 4. Mở file hosts sudo gedit /etc/hosts 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ả: 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 là /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 Chúng ta có thể sử dụng UserDir để giới hạn user nào được phép 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 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 . UserDir 5.2 Giới hạn cho NSD 5.3 Ví dụ minh họa 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. 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

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 Xem tại trang 9 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan