CHIA SẺ:

Tương tự như bài viết hướng dẫn add thêm website chạy trên VPS nginx CentOS, hôm nay mình sẽ hướng dẫn các bạn cách thực hiện trên webserver Apache.

Giới thiệu Virtual Hosts

Virtual Hosts được sử dụng để giúp cho một VPS có thể chạy được nhiều website khác nhau. Các bước add thêm website trên VPS Apache chạy CentOS bằng Virtual Hosts như sau:

Chuẩn bị server

Đã cài đặt sẵn webserver Apache trên CentOS, có thể tham khảo bài viết cài đặt LAMP trên CentOS

Tạo thư mục chứa website

Ví dụ mình sẽ tạo thư mục ở folder /var/www nhé

sudo mkdir -p /var/www/example.com/public_html

Chú ý thay example.com bằng domain của bạn.

Gán quyền

Đảm bảo cho website hoạt động bình thường

sudo chown -R apache:apache /var/www/example.com/public_html

Ngoài ra chmod 755 để đảm bảo mọi người có thể xem được website của bạn

sudo chmod 755 /var/www

Cài đặt Virtual Hosts

Mình sẽ chỉnh sửa file cấu hình mặc định của Apache

sudo nano /etc/httpd/conf/httpd.conf

Thêm đoạn sau vào cuối file:

NameVirtualHost *:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#    

#    
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
# 
<VirtualHost *:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /var/www/example.com/public_html
     ServerName www.example.com
     ServerAlias example.com
     ErrorLog /var/www/example.com/error.log
     CustomLog /var/www/example.com/requests.log common
</VirtualHost>

Bạn cần chú ý các dòng NameVirtualHost, Virtual Host, Document Root, and Server Name để sửa lại cho phù hợp.

Lưu lại và thoát.

Khởi động lại Apache

Dừng tất cả tiến trình Apache

sudo apachectl -k stop

Khởi động Apache

sudo /etc/init.d/httpd start

Test thử domain

Giờ mình sẽ tạo thử file index.html để test thử domain example.com có hoạt động đúng không nhé.

sudo nano /var/www/example.com/public_html/index.html

Thêm đoạn code html vào file

<html>
  <head>
    <title>www.example.com</title>
  </head>
  <body>
    <h1>Success: You Have Set Up a Virtual Host</h1>
  </body>
</html>

Lưu và thoát.

Bây giờ bạn hãy test thử với link http://example.com, nếu kết quả hiện ra như bên dưới là thành công.

test thu example.com

Cài đặt thêm Virtual Hosts

Để add thêm nhiều website nữa, bạn có thể lặp đi lặp lại bước. Cấu trúc file config của Apache lúc nãy sẽ tương tự như sau:

<VirtualHost *:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /var/www/example.com/public_html
     ServerName www.example.com
     ServerAlias example.com
     ErrorLog /etc/var/www/example.com/error.log
     CustomLog /var/www/example.com/requests.log common
</VirtualHost>
<VirtualHost *:80>
     ServerAdmin webmaster@example.org
     DocumentRoot /var/www/example.org/public_html
     ServerName www.example.org
     ServerAlias example.org
     ErrorLog /var/www/example.org/error.log
     CustomLog /var/www/example.org/requests.log common
</VirtualHost>

Khởi động lại Apache là tất cả các website sẽ hoạt động.

75 Comments

  1. trần chí thiện 1

    cái này mình phải thuê hoặc mua một host và domain với cài được hay sao ạ

    1. Luân Trần Admin

      Nếu cài HocVPS Script rồi thì không cần mày mò theo cách này làm gì, bạn chỉ cần chạy menu hocvps rồi chọn Thêm website là được.

      1. Thiện 16

        mình chạy lệnh thêm website trước rồi
        nó có thêm website
        mình trỏ domain về nhưng không chạy !
        báo không có trang này !

        1. Luân Trần Admin

          Domain của bạn là gì để mình check. Có thể domain chưa nhận IP đó bạn.

          1. Thiện 16

            đã làm được rồi Luân ơi
            mình xóa VPS cento đi
            cài bản Cento 7 vào rồi cài lại
            tên miền thứ 2 mình trỏ theo dạng IP mới nhận

  2. Triều 1

    Cho mình hỏi là mình mua VPS tại nhân hoàn , họ cài sẵn apache, mysql.. và Driect Admin. Giờ muốn thêm domain thì làm theo cách này à bạn, với muốn cài cái hocvps script thì có cần phải rebuild lại vps hay không

    1. Luân Trần Admin

      Nếu cài Direct Admin rồi thì mọi thao tác bạn thực hiện trên đó nhé. Muốn cài HocVPS Script thì phải rebuild lại VPS.

    1. Luân Trần Admin

      HocVPS Script không dùng Apache mà cài Nginx nên không có thư mục kia nhé bạn

  3. Ngọc Tú 1

    Luân cho mình hỏi mình cài 2 web trên cùng 1 vps chạy hocvps. khi creat user và databas thì 2 site chạy cùng 1 cái hay là mình phải tạo thêm 1 user nữa. làm sao để phân biệt rõ ràng được 2 cái user cho từng site vậy bạn? không hiểu sao mình thêm 1 web vào mà cái thứ 2 nó cứ bị lỗi 400 Bad Request

    1. Luân Trần Admin

      Mỗi một user tương ứng với 1 database. 2 site riêng thì 2 database, 2 user nhé bạn.

      1. van minh 17

        Mình cài vectacp có sẵn home/admin/web rồi, mình trỏ về web về đây thay vì var/www/example.com/public_html/index.html được không bác.

        1. Dinh Le Giang 47

          Ý bác này nói cái thư mục chứa web mặc định của vestacp là /home/user/
          Giờ muốn cài web ở thư mục /var/ww có được không.
          Mình thì nghĩ là được, chỉ cần cấu hình lại file vhost hoặc file nginx

          1. van minh 17

            Đúng rồi bạn mà mình đã thêm Virtual Hosts vào vhost trỏ tới thư mục chứa source.

            Đã thêm DB, Domain, DNS trong VectaCP và cấu hình kết nối DB trên Source. nhưng khi truy cập vào web vẫn bị thông báo “500 Internal Server Error”. Không biết sao luôn

          1. Dinh Le Giang 47

            Xét kỹ hơn xíu thì thế này:
            Lúc cài xong chưa có web thì Sentora ít tốn tài nguyên hơn Vestacp
            Nhưng lúc có web thì ngược lại, vì vesta sử dụng webserver nginx, tốc độ xử lý nhanh hơn, nên tiết kiệm được tài nguyên.

            Nói vậy chứ mình vẫn thích giao diện của Vesta như bạn. Hiện tại mình đang xài Sentora.
            Mình có 3 giao diện: Zentora, Cpanel x3, DirectAdmin

  4. Thái Đức Khánh 7

    Mình cài Hocvps scrip, dùng lệnh thêm website và đã thêm thành công, nhưng sao vào filemanager thì lại k thấy folder của domain đó mà chỉ thấy 1 folder mới tên là false (chắc bị lỗi) nhỉ

    1. Luân Trần Admin

      Bị lỗi gì đó rồi, gửi mình thông tin login SSH vào mail để mình check được không?

      1. Thái Đức Khánh 7

        Chào anh, em đã add được domain mới rồi ạ. Nhưng hiện cái domain mới đó k dẫn về site mới (site mà mình up lên folder của domain đó) mà nó lại dẫn về main domain của VPS. không biết là lỗi gì ạ?

      2. Thái Đức Khánh 7

        Mình add được rồi bạn ạ nhưng k hiểu sao cái domain mình mới add nó k load dữ liệu từ folder của domain đó mà nó cứ tự động chuyển hướng về main-domain của VPS nhỉ?

        1. Luân Trần Admin

          Nếu không check cụ thể được thì mình cũng không biết nguyên nhân ở đâu nữa

  5. Đinh Quốc Toản 2

    Bạn ơi cho mình hỏi.
    Khi mình chạy thì các file .php bị lỗi “Internal Server Error” còn nếu là các file html thì vẫn chạy được bình thường.
    Lỗi đó là do đâu bạn nhỉ? Do mình phân quyền sai hay như thế nào vậy bạn

    1. Việt Phương Moderator

      Bạn mô tả hệ thống cài đặt của bạn và lỗi, cũng như check error log chứ hiện tại chung chung quá mình chưa hiểu

      1. Toản 2

        Cảm ơn bạn đã trả lời nhé.
        Hôm đó mình up file php lên server, để owner là nobody nhưng group vẫn là root nên không được. Mình đổi cả lại group cũng là nobody thì đã hoạt động được rồi.
        Cảm ơn các bạn đã nhiệt tình hỗ trợ :))

  6. mynuke 2

    Hi bạn, theo cript này mình muốn thực thi để quản lý domain bằng php script, thêm sửa xóa bằng PHP, có cách nào không bạn nhỉ?

    1. Việt Phương Moderator

      Script không hỗ trợ sẵn vấn đề này rồi bạn à. Bạn thử các hệ quản trị khác như VestaCP, Sentora xem

Comment của bạn

Your email address will not be published. Required fields are marked *