1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO ĐỒ ÁNĐỀ TÀI : Tìm hiểu Virtual Host trên môi trường Linux/ CentOS7

44 23 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 1,16 MB

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

Nội dung

Một máy web server sẽ được cấu hình cho một trang web riêng, nhưng sẽ ra sao nếumuốn cấu hình thêm trang web nữa trên thiết bị web server đó, sẽ khá khó khăn nhưngvới virtual host - máy

Trang 1

BỘ CÔNG THƯƠNGTRƯỜNG CAO ĐẲNG CÔNG THƯƠNG TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

MUC LUC

Trang 3

LỜI CẢM ƠN

LỜI MỞ ĐẦU

CHƯƠNG 1: TỔNG QUAN VIRTUAL HOST

1 Giới thiệu mô hình virtual host:

Máy chủ HTTP Apache là máy chủ web được sử dụng rộng rãi nhất trên thế giới Nócung cấp nhiều tính năng mạnh mẽ bao gồm các mô-đun có thể tải động, hỗ trợ phươngtiện mạnh mẽ và tích hợp rộng rãi với các phần mềm phổ biến khác

Một máy web server sẽ được cấu hình cho một trang web riêng, nhưng sẽ ra sao nếumuốn cấu hình thêm trang web nữa trên thiết bị web server đó, sẽ khá khó khăn nhưngvới virtual host - máy chủ ảo, chỉ cần được cấu hình thích hợp, trên thiết bị web server sẽtồn tại nhiều hơn một trang web được hoạt động

Điều này giúp tiết kiệm được nguồn tài nguyên trên thiết bị web server, hỗ trợ mạnhcho các doanh nghiệp có nguồn vốn lưu động nhỏ

Phần mềm apache hỗ trợ các lập trình viên sẽ tạo ra các website, các đơn vị công tyyêu cầu cần nhiều hơn hai trang web để phuc vụ mục đích của công ty

2 Khái niệm Virtual Host:

Virtual host là phương thức đề cập tới việc chạy nhiều trang web trên cùng một máy duy nhất (vd: co1.example.com, co2.example.com )

Có một khái niệm khác được đề cập tới trong Nginx cũng có chức năng tương tự nhưVirtual Host được gọi là Server Block Với Nginx, chúng ta gọi đó là Server Block, cònvới người dùng Apache, chúng ta gọi đó là Virtual host Hiểu đó chính là “tên ảo” dùng

để chạy nhiều tên miền trên một địa chỉ IP của một Server hay VPS

Virtual host là một định nghĩa chỉ chức năng nhúng nhiều tên miền vào một địa chỉ IPcủa một Server Và bằng cách cài đặt riêng, Server sẽ nhận biết được tên miền nào sẽhoạt động ở một folder nào Điều này mang ý nghĩa rất lớn vì chúng ta không cần mỗi tênmiền một địa chỉ IP mà chỉ cần một server là có thể nhúng hàng trăm tên miền cùng hoạtđộng

Virtual host có 2 dạng:

 Có thể dựa trên địa chỉ IP, nghĩa là có một địa chỉ IP riêng biệt cho một web site

Sử dụng những địa chỉ ip khác nhau cho từng domain gọi là ip-based virtual hosting Nhưvậy, một máy tính phải có nhiều interface, hoặc sử dụng cơ chế virtual Interface

 Hoặc có thể dựa theo tên máy, nghĩa là có nhiều tên trên một địa chỉ gọi là based virtual hosing Chỉ cần cấu hình DNS sao cho nó phân giải mỗi tên máy đúng vớiđịa chỉ IP và sau đó cấu hình Apache để tổ chức web server cho những miền khác nhau

named-3 Chức năng: giúp ta duy trì nhiều hơn một web server trên một máy tính

Điều này đặc biệt hữu ích nếu bạn không muốn chi tiền cho nhiều Máy chủ riêng ảo(VPS), nhưng bạn muốn có khả năng chạy và xây dựng nhiều trang web với chi phí tốithiểu trên cùng một máy chủ Trong kịch bản thế giới thực, hầu hết các trang web đó sẽdựa trên các hệ thống quản lý nội dung phổ biến như Wordpress, Drupal, Joomla, v.v

Trang 4

Ý tưởng nằm ở chỗ thay vì có một thư mục gốc cho trang web của bạn (đó

là /var/www/html/ trong ví dụ của chúng tôi), bạn có thể có nhiều thư mục nằm trong /var/www/ trong đó mỗi thư mục sẽ chứa trang web riêng

4 Nguyên lý hoạt động: Tạo môi trường cho máy chủ web chạy từ 2 trang web trởlên

Mỗi tên miền được cấu hình sẽ đưa người dùng đến một đường dẫn cụ thể lưu trữthông tin về trang web đó, mà không quan tâm đến server cũng lưu trữ nhiều trang webkhác Cấu trúc này có thể mở rộng bất chấp giới hạn về phần mềm, miễn là server có thể

xử lí lưu lượng truy cập của tất cả các website ấy

Vd Khi ta làm việc với apache ở localhost (dùng xampp, ampps,…) và đôi lúc ta có

nhiều project quá, khó nhớ, kèm như những đường link dài như:

Khá dài, bất tiện phải không các bạn

Vậy nên tạo ra 1 VirtualHost sẽ giúp chúng ta giải quyết việc này

Ví dụ: thay vì ta phải vào localhost/abc/xyz/public thì nay ta chỉ cần đơngiản xyz.com

5 Các port sử dụng: 80, 8080, …(web)

CHƯƠNG 2: CÀI ĐẶT

Một phần không thể thiếu của một máy chủ web (bao gồm cả Apache, Nginx,Lighttpd…) là chạy nhiều web trên 1 server Bạn có thể thêm domain vào máy chủ và cấuhình chúng riêng rẽ Mỗi cấu hình như vậy được gọi là một virtual host

Mỗi một virtual host sẽ quy định cho mỗi tên miền riêng biệt Bạn có thể tạo ra vô

số virtual host để thêm domain vào VPS và chạy nhiều web trên 1 server

Ví dụ có một tên miền đã được đăng ký online nghĩa là sử dụng external network bạnđặt một tên như vậy thì khi truy cập vào tên miền đó request bạn gửi đi sẽ tới serveronline kia và trả lại trang web bạn không mong muốn, nhưng khi đăng ký DNS local thìviệc sử dụng internal network khi truy cập vào tên miền của bạn nó sẽ tìm kiếm tronghost local trước

Mở file /etc/hosts

Trang 5

về mặc định chỉ cần sửa lại tên file là được.

Kiểm tra hostname bằng lệnh hostname lệnh này sẽ cho kết quả đầy đủ nhất dạngFQDN hoặc hostname -f hiện thị hostname dạng ngắn gọn

KeepAlive: chức năng duy trì connection và đóng sau khoảng thời gian timeout được

chỉ định, khi không được cấu hình đúng cách nó làm tăng lượng memory không giảiphóng được tài nguyên

<IfModule prefork.c> … </IfModule>: khai báo dùng module MPM prefork để mỗi

process xử lý một request

StartServers: thông số này quy định số process sinh ra khi khởi động Apache.

MinSpareServers, MaxSpareServers: quy định số process con nhàn rỗi nhỏ nhất và

lớn nhất được sinh ra để chờ xử lý request từ client

MaxClients: số requests được xử lý đồng thời.

MaxRequestsPerChild: giới hạn số requests tối đa đến web server, giá trị 0 có nghĩa

là không giới hạn, nếu giá trị này quá thấp sẽ làm giảm hiệu suất vì các requests mới sẽphải đợi để được xử lý

KHỞI ĐỘNG LẠI APACHE trên CentOS 7 chạy lệnh

systemctl restart httpd.service

Xem dịch vụ httpd (apache) và mpm prefork đã start hay chưa dùng lệnh sau

cat /etc/httpd/logs/error_log | grep prefork

Trang 6

netstat -tulpn

Kết quả như trên là đã start thành công rồi, Module pmp prefork, apache đã chạyvới pid 20149, Web server đang lắng nghe trên port 80

8 Cấu hình virtual host:

Bây giờ Apache đã được tối ưu, nếu muốn chạy nhiều website trên một VPS bạn phảitạo Virtual Hosts cho Apache Nói chung thì, kể cả có chạy một website duy nhất thìcũng nên tạo Virtual Hosts sau này muốn cài cắm thêm cũng dễ

TẠO THƯ MỤC CẦN THIẾT VÀ PHÂN QUYỀN

mkdir -p /var/www/web.com/public_html

mkdir -p /var/www/web.com /logs

mkdir -p /var/www/web.com /backup

Khi triển khai bất kỳ một trang web nào mình sẽ tạo một thư mục có tên là domaincủa trang web, trong đó sẽ có 3 folder:

public_html: bạn sẽ để sourcecode của trang web vào đây.

logs: để chứa log của trang web.

backup: chứa các file backup định kỳ hoặc các file cấu hình.

Bạn phải chuyển quyền sở hữu sang cho user apache là user quản trị webserver

chown -R apache:apache /var/www/ web.com

Tham số -R này sẽ chuyển toàn bộ thư mục bao gồm cả files và subfolder từ root sangcho apache

TẠO VIRTUAL HOSTS

Trong thư mục conf.d tạo file vhosts.conf đây là file chứa cấu hình Virtual hosts Bên

dưới là mẫu cho web web.com, bạn thay đổi các giá trị cho phù hợp với domain của

Trang 7

ServerAdmin: đơn giản chỉ là mail quản trị viện.

ServerName: root domain của virtual host được người dùng gõ trên trình duyệt ServerAlias: tên gọi khác của root domain, còn được dùng để cấu hình www và nonwww

ErrorLog: ghi lại log các lỗi phát sinh.

CustomLog: ghi lại log các truy cập.

Bạn nên cấu hình ghi lại log cho web server để debug và theo dõi truy cập đây cũngnguồn dữ liệu quan trọng tạo cơ sở để cấu hình web server và thiết lập tường lửa, nếu cầntối ưu tốc độ bạn có thể tạm thời vô hiệu hóa đi cũng được

Nói chung không có gì phức tạp cả, từ giờ khi muốn thêm trang web khác bạn chỉ

việc thêm tiếp một cái <VirtualHost>…</VirtualHost> là xong.

Hoặc bạn tách mỗi cặp thẻ Virtual Host ra một file, đặt đuôi mở rộng

là conf đấy cũng là cách hay để quản lý nhiều domain

9 Tạo các web thử nghiệm:

TẠO INDEX.HTML TEST WEB SERVER

Muốn biết Virtual Hosts hoạt động thế nào thì tạo một file index.html đơngiản vi/var/www/web.com/public_html/index.html

Với nội dung sau:

10 Kiểm tra thử nghiệm:

CẤU HÌNH CHO APACHE KHỞI ĐỘNG CÙNG MÁY CHỦ

systemctl enable httpd.service

Thế là xong từ giờ webserver sẽ tự khởi động mỗi khi start VPS

Trang 8

Xong đâu đấy mở trình duyệt ra truy cập domain thuysys.com xem để kiểm tra hoặcdùng lệnh curl -I http://www.web.com nếu trả vềkết quả như bên dưới là đã thành côngrồi.

[root@srv1 ~]# curl -I http://www.web.com

HTTP/1.1 200 OK

KÊT LUẬN

Các thao tác đơn giản đã tạo được một Vhost trong có vẻ khá giống với một tên miềnthật

Bạn có thể cấu hình một server cho riêng bạn

Với Apache thì không có giới hạn về số lượng domain có thể quản lý do đó ta có thểthoại mái tạo ra server để handling (xử lý)

Tương tự cũng có thể cấu hình Vhost với WAMP, APPServer, USBServer các cấuhình cũng không khác nhiều lắm Vì tất cả các phần mềm này đều dùng Apache, Mysql

và PHP Vhost là một tình năng của Apache nên đều có thể cấu hình Vhost theo cáchtương tự, điểm khác biệt chỉ là khác về nơi đặt file httpd.conf

TÀI LIỆU THAM KHẢO

Trang 9

Nhiều máy chủ ảo trên CentOS 7 hoặc RHEL 7

Bước 1: Trỏ tên miền

Trỏ lưu lượng truy cập web của tên miền của bạn vào máy chủ của bạn theo yêu cầucủa nhà cung cấp tên miền của bạn Về cơ bản, điều đó có nghĩa là bạn sẽ cần tạo mộtbản ghi phân giải thành IP của máy chủ web của bạn

Bước 2: Thêm máy chủ ảo vào cấu hình của máy chủ web

Giả sử chúng tôi muốn xây dựng trang web có tên cutepuppies.com và các tệp và thưmục cấu hình có liên quan trong máy chủ của chúng tôi sẽ được đặt tên tương ứng

là cutepuppies

Tạo thư mục gốc riêng cho trang web mới của bạn:

mkdir /var/www/cutepuppies

Trao quyền sở hữu thư mục cho người dùng web Apache (đó là apache )

chown apache:apache -R /var/www/cutepuppies

Ngoài ra, nếu bạn hành động không thuộc tài khoản root, hãy thêm tên người dùngcủa bạn vào nhóm web:

usermod -aG apache YOUR_USER_NAME

Giả sử bạn có bản cài đặt Apache mới, rất có thể không biết rằng sẽ có nhiều hơn mộttrang web

Chúng tôi cần làm cho máy chủ web của bạn để tìm kiếm các tệp cấu hình cho mỗitrang web được tạo trong tương lai Tới /etc/httpd/conf/httpd.conf và thêm dòng này vàotệp:

IncludeOptional sites-enabled/*.conf

Kiểm tra thư mục cấu hình Apache / etc / httpd Bạn cần phải xóa hai thư mục nếuchúng không tồn tại: / etc / httpd / sites- Available và / etc / httpd / sites-enable Truy cập / etc / httpd / sites- Available và tạo tập tin cấuhình cutepuppies.conf trong đó Để làm cho trang web của bạn hoạt động, tệp này phảichứa ít nhất dữ liệu sau:

Trang 11

Tạo Virtual Host trên Apache để chạy nhiều web trên 1 server

Sử dụng lệnh sau để cài đặt Apache:

$ sudo apt-get update

$ sudo apt-get install apache2

Trong bài viết này, mình sẽ thêm hai tên miền là vidu1.com và vidu2.com để làm ví

dụ Bạn vui lòng thay đổi thông tin thành tên miền của bạn nhé

Tạo Virtual Host trên Apache

Bước 1: Tạo thư mục cho trang web

Đầu tiên, bạn cần tạo ra hai thư mục để chứa tập tin và dữ liệu của hai trang web trên.Mặc định Apache sử dụng /var/www làm thư mục chủ Và mình sẽ tạo ra hai thư mục ở

đó để lưu trữ dữ liệu cho hai trang web Bạn có thể tạo thư mục ở bất kỳ đâu mà bạnmuốn, theo ví dụ ở đây mình sẽ có hai thư mục

là /var/www/vidu1.com và /var/www/vidu2.com

Thông thường người ta sẽ sử dụng một thư mục con để lưu trữ dữ liệu để xử lý trangweb cho người truy cập là public_html Mục đích của điều này là để phục vụ lưu trữ dữliệu một cách linh hoạt, bạn có thể lưu dữ liệu chỉ dành cho admin ở một thư mục khác.Tạo hai thư mục bằng hai lệnh sau:

$ sudo mkdir -p /var/www/vidu1.com/public_html

$ sudo mkdir -p /var/www/vidu2.com/public_html

Bước 2: Tạo tập tin cấu hình virtual host

Trên Ubuntu, các tập tin cấu hình virtual host của Apache sẽ nằm trong thưmục /etc/apache2/sites-available Bạn sẽ nhìn thấy hai virtual host mặc định là 000-default.conf và default-ssl.conf, ở đây mình sẽ dựa trên 2 virtual host này để thêm cấuhình cho domain khác

Để kiểm tra các virtual host có sẵn, sử dụng lệnh sau:

$ ls -l /etc/apache2/sites-available

Sao chép 2 virtual host mặc định cho hai tên miền mới:

$ sudo cp /etc/apache2/sites-available/000-default.conf/etc/apache2/sites-available/vidu1.com.conf

$ sudo cp /etc/apache2/sites-available/000-default.conf/etc/apache2/sites-available/vidu2.com.conf

Trang 12

Mở và chỉnh sửa tập tin cấu hình/etc/apache2/sites-available/vidu1.com.conf

$ sudo nano /etc/apache2/sites-available/vidu1.com.conf

Bạn sẽ nhìn thấy nội dung như sau:

# The ServerName directive sets the request scheme, hostname and port that

# the server uses to identify itself This is used when creating

# redirection URLs In the context of virtual hosts, the ServerName

# specifies what hostname must appear in the request’s Host: header to

# match this virtual host For the default virtual host (this file) this

# value is not decisive as it is used as a last resort host regardless

# However, you must set it for any further virtual host explicitly

#ServerName www.example.com

DocumentRoot /var/www/html

# Available loglevels: trace8, …, trace1, debug, info, notice, warn,

# It is also possible to configure the loglevel for particular

#LogLevel info ssl:warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are

# enabled or disabled at a global level, it is possible to

# include a line for only one particular virtual host For example the

# following line enables the CGI configuration for this host only

# after it has been globally disabled with “a2disconf”

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Ở trên bạn sẽ có một số thông tin cần cấu hình lại:

ServerName: ở đây cần sửa lại thành domain của bạn, như ví dụ ở trên là vidu1.com

Bỏ dấu # ở trước đi nhé

ServerAdmin: email của bạn cho domain này

DocumentRoot: đây là thư mục sẽ lưu trữ trang web mà bạn đã tạo ở trên, như ví dụ ởtrên là /var/www/vidu1.com/public_html

ServerAlias: mặc định sẽ không có mục này Tuy nhiên bạn có thể thêm nó ở phíadưới ServerName Thông số này giống như Parked domain hay CNAME vậy

Sau khi chỉnh sửa, bạn sẽ có một tập tin cấu hình virtual host với nội dung như sau:

# The ServerName directive sets the request scheme, hostname and port that

# the server uses to identify itself This is used when creating

# redirection URLs In the context of virtual hosts, the ServerName

Trang 13

# specifies what hostname must appear in the request’s Host: header to

# match this virtual host For the default virtual host (this file) this

# value is not decisive as it is used as a last resort host regardless

# However, you must set it for any further virtual host explicitly.ServerName vidu1.com

ServerAlias www.vidu1.com

ServerAdmin webmaster@vidu1.com

DocumentRoot /var/www/vidu1.com/public_html

# Available loglevels: trace8, …, trace1, debug, info, notice, warn,

# It is also possible to configure the loglevel for particular

#LogLevel info ssl:warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are

# enabled or disabled at a global level, it is possible to

# include a line for only one particular virtual host For example the

# following line enables the CGI configuration for this host only

# after it has been globally disabled with “a2disconf”

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Lưu lại và tiếp tục mở tập tin virtual host thứ 2:

$ sudo nano /etc/apache2/sites-available/vidu2.com.conf

Cũng chỉnh sửa tương tự như trước:

ServerName vidu2.com

ServerAlias www.vidu2.com

ServerAdmin webmaster@vidu2.com

DocumentRoot /var/www/vidu2.com/public_html

Đối với virtual host sử dụng SSL để chạy HTTPS, mình sẽ nói ở bài tiếp theo

Bước 3: Bật virtual host để các cấu hình hoạt động

Sử dụng lệnh sau để bật virtual host:

$ sudo a2ensite vidu1.com.conf

$ sudo a2ensite vidu2.com.conf

Khởi động lại máy chủ web Apache

$ sudo service apache2 restart

Có thể bạn sẽ gặp thông báo sau, nhưng nó không ảnh hưởng tới trang web của bạnnhé

AH00558: apache2: Could not reliably determine the server’s fully qualified domainname, using 127.0.0.1 Set the ‘ServerName’ directive globally to suppress this messageBước 4: kiểm tra xem việc tạo virtual host trên Apache đã đúng chưa

Trang 14

Để kiểm tra xem việc tạo virtual host trên Apache xem đã đúng chưa, bạn cần phải tạo

2 tập tin và chạy nó trên trình duyệt

tin index.html trong /var/www/vidu1.com/public_html và /var/www/vidu2.com/

public_html

$ sudo nano /var/www/vidu1.com/public_html/index.html

$ sudo nano /var/www/vidu2.com/public_html/index.html

Với nội dung như sau, nhớ thay thế nội dung để phân biệt 2 trang web nhé:

Bạn có thể tạo virtual host trên Apache để thêm domain vào VPS và chạy nhiều webtrên 1 server với số lượng không giới hạn Miễn là server của bạn có đủ khả năng để xử

lý Chúc thành công!

Trang 15

Chào các bạn hôm nay mình sẽ chia sẻ những kiến thức mình biết về việc cấu hình để tạo một tên miền ảo, chạy trên máy tính của chúng ta với những thao tác khá đơn giản với Apache web server trên hệ điều hành Ubuntu 16.04

Cài đặt Apache server

sudo apt-get update

sudo apt-get install apache2

Sau khi cài đặt thành công apache server thì thư mục làm việc với apache mặc định

là /var/www/html, giờ chúng ta cần tạo một folder chứa project demo của chúng ta ở đâymình đặt tên là myproject, sau đó tạo một file index.html trong myproject.com với nộidung đơn giản để chạy thử

Tạo Virtual host file

Việc tạo virtual host file khá đơn giản là mình sẽ copy lại một file cấu hình defaultcủa apache và sau đó custom lại nó

Trang 16

sudo cp /etc/apache2/sites-available/000-default.conf/etc/apache2/sites-available/myproject.conf

Chỉnh sửa file vừa tạo, bạn có thể sử dụng Vim hoặc Nano, với mình sử dụng nano: sudo nano /etc/apache2/sites-available/myproject.conf

Các option trong file conf

<VirtualHost></VirtualHost> Đây là cặp thẻ báo hiệu mở đầu và kết thúc của mộtkhai báo về Vhost

ServerAdmin (Không bắt buộc): khai bái địa chỉ server admin

DocumentRoot: Khai báo đường dẫn tới thư mục project của bạn mà sẽ được gọi tớikhi bạn truy cập vào đường dẫn trong file cấu hình

ServerName: Tên domain mình muốn đặt

ErrorLog (Không bắt buộc): đường dẫn tới file chứa log khi có lỗi

Bạn cần chú ý ở đây là listen port 80 nhưng nếu bạn đã sửa (8080, 8000, 9000, )config mặc định của apache thì cần để đúng với port đó

Enable virtual host

Trang 17

Enable virtual host

sudo a2ensite myproject.conf

Sau khi lệnh này được thực hiện file myproject.conf sẽ được copy

từ /etc/apache2/site-available/myproject.conf sang /etc/apache2/site-enable/

myproject.conf

Restart apache server

sudo service apache2 restart

và thêm vào một dòng như sau [địa chỉ ip sẽ lắng nghe các request gửi tới]

Ok giờ bạn restart server apache và truy cập vào đường dẫn theo tên miền mà bạn đãconfig ở đây mình để là myproject.dev

Kết quả

Nếu không muốn sử dụng virtualhost hay thay đổi liên quan đến file conf

Bạn chỉ cần đi tới đường dẫn chứa file conf, và sử dụng a2dissite để disable virtualhost Nên nhớ sau mỗi lần chỉnh sửa cần restart apache2 để có sự thay đổi

cd /etc/apache2/site-available

sudo a2dissite `tên miền bạn muốn thay đổi`.conf

sudo service apache2 restart

Nếu chỉ thay đổi tên miền, port listen, hay bất kỳ cấu hình nào thì khi đã hoàn thànhcần enable lại file conf và làm các bước tương tự như trên đã làm

Virtual Host

Giờ các bạn mở tệp vhosts.conf copy đoạn code bên dưới và paste vào trong file httpd-vhosts.conf

Trang 18

CustomLog "logs/yourdomain.com-access.log" common

<Directory "<đường dẫn thư mục">

ServerAdmin Từ khóa khai báo địa chỉ email của admin (Không bắt buộc)

DocumentRoot Đây là từ khóa khai báo đường dẫn của thư mục sẽ được gọi khingười dùng truy cập vào domain được cấu hình Đường dẫn này có thể nằm ở bất kỳ mộtphân vùng nào

ServerName Chính là domain mà bạn muốn đặt

ErrorLog Chỉ định đường dẫn của file log khi có lỗi (không bắtbuộc) <thu_muc_cai_dat_xampp>/apache/logs là thư mục chứa file log

CustomLog Log lại tất cả các Uri mà người dùng request không bắtbuộc) <thu_muc_cai_dat_xampp>/apache/logs là thư mục chứa file log

<Directory></Directory> Đây là cặp thẻ dùng để cấp quyền truy cập cho thư mục nếuthư mục không được cấp quyền sẽ gặp lỗi 403 khi các bạn cố gắng truy cập Đường dẫnthư mục của bạn có thể là một regular expression Nếu các bạn không rõ về Regex thì cácbạn có thể dùng đường dẫn thư mục giống với khai báo trong DocumentRoot hoặc thamkhảo thêm tại: http://httpd.apache.org/docs/2.4/en/mod/core.html#directory

Options FollowSymLinks Option này cho phép bạn truy cập theo symbolic link(giống như shortcut trong windows vậy) Ngoài ra còn có nhiều các options khác, các bạn

có thể tham khảo thêm tại: http://httpd.apache.org/docs/2.4/en/mod/core.html#options

AllowOverride All cho phép bạn overwrite các config bằng file htaccess

DirectoryIndex index.php Khi các bạn truy cập vào thư mục ( không chỉ rõ cụ thể làfile nào) thì file index.php sẽ được gọi

Require all granted là cho phép tất cả các máy khác được truy cập vào thư mục đangđược cấu hình Chú ý: từ phiên bản 2.2 trở về trước thì Apache sử dụng Allow from all đểthay thế cho Require all granted

Các bạn khởi động lại Apache bằng cách là khởi động phần mềm XAMPP ControlPanel dòng nếu dòng Apache đang running thì các bạn stop và start lại, còn nếu đang ởchế độ tắt rồi thì các bạn chỉ cần start là được

Ok vậy là bạn đã cấu hình xong về phần của Apache giờ chỉ việc đăng ký DNS cho

Các bạn mở file %windir%/system32/drivers/etc/hosts bằng notepad hoặc bất kỳ trìnheditor nào Thêm vào cuối file và lưu lại Nếu bạn không lưu được file hosts thì nhớ tắttình năng readonly và thử chạy lại bằng mode Administrator nhé

Trang 19

127.0.0.1 yourdomain.com

Khi các bạn gõ địa chỉ yourdomain.com thì máy sẽ ưu tiên tìm địa chỉ IP của domain

đó trong file hosts của hệ điều hành trước tiên.Nếu không có thì nó sẽ đi tìm địa chỉ IP của domain này thông qua các DNS Server trênInternet Vì bạn đã khai báo trong file hosts nên nó sẽ sử dụng địa chỉ IP được khai báotrong đó luôn Ở đây địa chỉ IP 127.0.0.1 trỏ về chính máy đang truy cập (chính là máycủa bạn - còn nếu cấu hình trên server thì đó chính là bản thân máy server luôn) Bạn cóthể sử dụng dài IP từ 127.0.0.1 -> 127.255.225.254 đây là dải IP trỏ về máy của bạn( Nguyên dải luôn chứ không phải chỉ là 127.0.0.1 nhé )

Giờ các bạn mở trình duyệt và gõ vào thanh địa chỉ thay thế dòng localhost xấu xíbằng một domain của riêng bạn http://yourdomain.com yourdomain cũng có thể làtuan.tv, doan-totnghiep.com(chấm local chấm canh, chấm mắm, hay chấm bất kì thứ gìbạn thích nhé, chỉ cần nhớ là đã khai báo trong ServerName và file host là được)

Tổng kết

Việc sử dụng Virtual Host có vài lợi ích sau

Bạn có thể truy cập vào bất kỳ thư mục code nào mà không cần phải copyvào htdocs trong XAMPP

Nếu bạn dùng folder code ở một phân vùng khác thì bạn không cần phải lo lắngbackup lại folder code mỗi lần cài lại windows

Nhìn có vẻ nguy hiểm hơn :v

Các bạn cũng có thể cấu hình Vhost với WAMP, APPServer, USBServer các cấu hìnhcũng không khác nhiều lắm Vì tất cả các phần mềm này đều dùng Apache, Mysql vàPHP Vhost là một tình năng của Apache chứ không phải của XAMPP nên phần mềmnào dùng Apache thì đều có thể cấu hình Vhost theo cách tương tự, điểm khác biệt chỉ làkhác về nơi đặt file httpd.conf Chúc các bạn thành công

Trang 20

Hi các bạn,

1/ Mẫu VirtualHost cơ bản

Đây là mẫu VirtualHost mà chúng ta sẽ dùng để setup như trên:

Và các bạn cũng sửa lại cái đường dẫn mà các bạn muốn truy xuất

ở DocumentRoot, bỏ trong giữa 2 dấu ngoặc kép nhé

ServerAdmin thì kệ nó, sửa hay không tùy các bạn

2/ Thiết lập VirtualHost

Bước 1: Thiết lập Apache

Đầu tiên các bạn vào thư mục apache, mở file conf như sau:

Đối với Xampp: conf/httpd.conf

Đối với Ampps: conf/httpd.conf

Đối với VertrigoServ: conf/vertrigo.conf

Ta sẽ kéo tới đến khúc cuối cùng và copy cái VirtualHost mẫu bên trên và paste ngaycuối file

Bước 2: Thiết lập host

Các bạn mở file host tại đường dẫn này:

Bây giờ bạn hãy restart lại Ampps, Xampp,… của bạn và bắt đầu vào domain của bạn

đã set và xem kết quả (với mình mình sẽ vào xyz.com)

Khi vào thì bạn sẽ thấy trang của bạn hiện ra ngay

3/ Kết luận

Trang 21

Ở bài viết trước mình có hướng dẫn các bạn cách cài wordpress trên localhost với xampp Với cách đó mình chỉ hướng dẫn các bạn truy cập theo tên miền là http://localhost/wordpress chẳng hạn Vậy làm sao có thể truy cập được dạng giống như một tên miền thực trên xampp kiểu dev.wordpress.vn chẳng hạn Để làm được domain kiểu này chạy trực tiếp trên xampp thì bạn phải tìm hiểu khái niệm Virtual Host Xampp Bài viết dưới đây sẽ giúp bạn điểu đó nào hãy cùng bắt đầu tạo virtual host trong xampp ngay bây giờ nhé.

Hướng dẫn cách tạo Virtual Host trong Xampp

Đầu tiên bạn mình nhắc qua khái niệm xampp là gì đã? Xampp là chương trình tạo máy chủ Web (Web Server) được tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server và các công

cụ như phpMyAdmin là phần mềm hữu ích cho những lập trình viên website như vậy bạn đã hiểu sơ lược về nó rồi chứ Hãy bắt đầu tạo virtual host trong xampp nào.

Bước 1: Trước tiên bạn cần xác định được tên miền cần chạy cho dự án của bạn ví dụ mình dev.wordpress.vn chẳng hạn Bây giờ mình sẽ vào file host máy tính mình để thiết lập 1 ip local chạy cho tên miền này bạn cũng làm tương tự nhé.

– Bạn ấn Windows+R và điền đường dẫn sau: C:\Windows\system32\drivers\etc\ để vào file host máy tính (Nếu bạn gõ đúng và Enter nó sẽ ra như hình này).

– Tiếp tục để sửa file host này bạn ấn và giữ kéo nó ra màn hình như hình mình làm nhé

Trang 22

– Sau khi đã kéo ra khỏi màn hình bạn ấn chuột phải và chọn Open để mở nhé bằng notepad (nếu bạn đã xem bài này thì bạn là IT rồi lên mình không hướng dẫn cụ thể nữa) Sau đó bạn thêm dòng này 127.0.0.10 dev.wordpress.vn vào.

Giải thích: mình đang xét cho domain dev.wordpress.vn chạy với ip 127.0.0.10 bạn để ip thế nào cũng được nhé.

Ngày đăng: 23/12/2021, 10:27

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w