Tháng trước tớ có 1 task switch qua PHP để làm 1 tool hack data nho nhỏ, sử dụng Apache 2 làm webserver. Trước giờ tớ toàn chạy bằng XAMPP hoặc Laragon, chỉ cần chọn webserver folder là cứ code thôi, không cần config riêng gì cả. Sang thằng Apache 2 này thì cần config
riêng nên tớ loay hoay mãi chả biết config thế nào, đành nhờ anh @Phúc cấu hình giúp. Cơ mà anh ấy cấu hình nhanh quá, tớ chả kịp nhìn. Lại phải làm task gấp nên tớ quên khuấy mất hỏi lại. Vừa rồi tớ làm 1 cái tool nho nhỏ để generate ra config cho đỡ mệt, sử dụng PHP, nên tớ tạt qua hỏi lại anh cách cấu hình và về note ra bài này :))) Quá trình sửa gồm 3 bước cd vào /etc/apache2/sites-available, tạo file config cho website của bạn. Nên đặt ở dạng ten-web.conf. Nếu apache của bạn đặt ở folder khác thì thay đường dẫn apache 2 của bạn vào. VD: web bạn có tên miền ảo là learn-vue.vn thì đặt là learn-vue.conf Sửa file config với nội dung như sau: Trong đó: – Server name: tên miền ảo mà bạn muốn đặt. – Document root: là thư mục chứa code website – Directory: cũng đặt trùng với document root Sau đó coppy file này vào /etc/apache2/sites-enabled. Có thể sử dụng lệnh này cho nhanh cp learn-vue.conf ../sites-enabled/learn-vue.conf Thêm tên miền ảoĐể thêm tên miền ảo, bạn sửa file hosts trong máy ở đường dẫn /etc/hosts. Thêm tên miền ảo mà bạn định sử dụng vào đây. Cụ thể như hình dưới, tớ thêm tên miền 127.0.0.1 learn-vue.vn Sửa file hosts trên linux Restart lại apacheCuối cùng, bạn cần restart lại apache2 sudo service apache 2 restart Tham khảo thêmNgoài ra tớ có 1 bài hướng dẫn cấu hình tên miền ảo cho XAMPP ở đây: [Hướng dẫn] Thêm tên miền ảo – Virtual domain trong XAMPP và cho tomcat ở đây: [Hướng dẫn] Thêm tên miền ảo – Virtual Domain trong Apache Tomcat trên Window Good luck ^^ Trong bài này mình sẽ hướng dẫn các bạn cách tạo Apache Virtual Host trên Ubuntu, đây là cách mà bạn thiết lập để chạy nhiều website trên Server Ubuntu. Máy chủ ảo (virtual host) là cách cấu hình Apache cho phép bạn chạy nhiều domain trên một máy chủ Apache duy nhất. Với Máy chủ ảo, bạn có thể chỉ định thư mục gốc của trang web (thư mục chứa các file của trang web), tạo chính sách bảo mật riêng cho từng trang web, sử dụng các chứng chỉ SSL khác nhau. Để tạo một domain của server Apache Ubuntu thì trước tiên bạn phải chuẩn bị một số thứ sau:
Nếu bạn đang sử dụng Nginx thì có thể tham khảo tại bài viết cách thiết lập nhiều domain máy chủ Nginx trên Ubuntu 20.04. Ok, giờ ta bắt đầu thôi. 1. Cấu trúc thư mục của Virtual Host Apache trên LinuxTrên Apache Server, mỗi website sẽ có một thư mục chứa mã nguồn riêng, hay còn gọi là thư mục gốc. Nhiệm vụ của server là dựa vào domain đang request để gọi tới đúng thư mục gốc. Ví dụ dưới đây là cấu trúc thư mục của hai website, được đặt trong /var/www/ ├── domain1.com │ └── public_html ├── domain2.com │ └── public_html Như vậy, mỗi website sẽ có thư mục gốc dạng như sau: /var/www/<domain_name>/public_html Bây giờ mình cần tạo host cho Đầu tiên hãy chạy lệnh dưới đây để tạo thư mục gốc cho domain1 bằng cách sử dụng lệnh mkdir. sudo mkdir -p /var/www/domain1.com/public_html Bạn chú ý nhé, tên của thư mục phải trùng với tên của domain. Bây giờ ta sẽ tạo một file /var/www/domain1.com/public_html/index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Welcome to domain1.com</title> </head> <body> <h2>Success! domain1.com home page!</h2> </body> </html> Giống như trong bài Nginx, vì mình sử dụng lệnh sudo để tạo các file nên nó thuộc quyền sở hữu của nhóm root. Để tránh các vấn đề rắc rối về phân quyền sau này thì hãy đổi nó sang sở hữu của Apache (www-data). sudo chown -R www-data: /var/www/domain1.com 2. Tạo Virual Host Apache để chạy nhiều web trên Ubuntu 20.04Trên hệ thống của Ubuntu, file cấu hình virtual host các domain có sẵn nằm trong thư mục Hãy sử dụng text editor bất kì để mở file /etc/apache2/sites-available/domain1.com.conf <VirtualHost *:80> ServerName domain1.com ServerAlias www.domain1.com ServerAdmin DocumentRoot /var/www/domain1.com/public_html <Directory /var/www/domain1.com/public_html> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined </VirtualHost> Trong đó:
Bạn có thể đặt một cái tên bất kì cho file cấu hình mỗi trang web. Tuy nhiên, khuyến khích bạn đặt theo tên domain, vì khi bạn quản lý nhiều domain sẽ dễ dàng nhớ và phân biệt giữa chúng. Để
kích hoạt máy ảo thì mình sử dụng a2ensite script để hỗ trợ để tạo symbolic link từ virtual host đến thư mục sudo a2ensite domain1.com Và dưới đây là lệnh tạo symbolic link: sudo ln -s /etc/apache2/sites-available/domain1.com.conf /etc/apache2/sites-enabled/ Chạy xong tihì hãy tiếp tục thực hiện lệnh này để test nhé: sudo apachectl configtest Nếu kết quả trả vè như sau là bạn đã thành công: Khởi động lại Apache để áp dụng những thay đổi: sudo systemctl restart apache2 Cuối cùng, hãy truy cập vào http://domain1.com để xem thành quả mà bạn đã làm nhé. Như vậy là mình đã hướng dẫn xong cách tạo Virtual Host Apache trên Ubuntu 20.04. Qua bài này bạn đã biết cách tạo và quản lý nhiều domain trên Ubuntu server thông qua Apache.
|