Lenh start httpd trong linux

Apache HTTP là một trong những web server được sử dụng rộng rãi nhất trên thế giới. Trong bài viết này sẽ hướng dẫn cách cài đặt web server trên CentOS 7 cách đơn giản nhất.

Nội dung

Giới thiệu

Máy chủ Apache HTTP cung cấp nhiều tính năng mạnh mẽ bao gồm các module có thể load dynamic, hỗ trợ phương tiện truyền thông 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.

Trong hướng dẫn này, bạn sẽ cài đặt một web Apache server với các virtual host trên server CentOS 7 của mình.

Apache

Điều kiện tiên quyết để cài đặt web server trên CentOS 7

Bạn sẽ cần những điều sau để hoàn thành hướng dẫn này:

  • Non-root user có quyền sudo được cấu hình trên server của bạn.
  • Tường lửa cơ bản được cấu hình bằng cách làm theo hướng dẫn. Các bước được đề xuất sẽ bổ sung cho máy chủ CentOS 7 mới.

Bước 1 – Cài đặt Apache

Apache có sẵn trong kho phần mềm của CentOS 7. Nghĩa là có thể cài đặt nó bằng

sudo firewall-cmd --reload
2 package manager.

Tiếp theo, hãy cập nhật

sudo firewall-cmd --reload
3 package index cục bộ để nhận những thay đổi mới nhất:

sudo yum update httpd

Tiếp theo là cài đặt các gói:

sudo yum install httpd

Sau khi xác nhận cài đặt,

sudo firewall-cmd --reload
2 sẽ cài đặt Apache và tất cả các dependencies bắt buộc.

Sau đó, bạn sẽ cài đặt

sudo firewall-cmd --reload
5 trên server mình và cần mở cổng 80 để Apache phục vụ các request qua HTTP. Cụ thể, hãy bật dịch vụ
sudo firewall-cmd --reload
6 của
sudo firewall-cmd --reload
5 bằng lệnh sau:

sudo firewall-cmd --permanent --add-service=http

Nếu bạn định cấu hình Apache để phục vụ nội dung HTTPs thì sẽ cần mở cổng

sudo firewall-cmd --reload
8 bằng cách bật dịch vụ
sudo firewall-cmd --reload
9:

sudo firewall-cmd --permanent --add-service=https

Tiếp theo, tải lại tường lửa để các quy tắc này có hiệu lực:

sudo firewall-cmd --reload

Sau đó, khởi động và kiểm tra lại web server của bạn.

Bước 2 – Kiểm tra máy chủ Web

Apache không tự động khởi động trên CentOS sau khi hoàn tất quá trình cài đặt. Vì vậy, nó cần được khởi động theo cách thủ công để có thể tiếp tụ c cài đặt web server trên CentOS 7:

sudo systemctl start httpd

Xác minh rằng dịch vụ đang chạy bằng lệnh sau:

sudo systemctl status httpd

Bạn sẽ thấy trạng thái

sudo systemctl start httpd
0 khi dịch vụ đang chạy:

Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...

Như bạn có thể thấy từ output này, đã bắt đầu có sự tiến triển tốt. Tuy nhiên, cách tốt nhất để kiểm tra là request một trang từ Apache.

Bạn có thể truy cập trang đích Apache để xác nhận phần mềm đang chạy thông qua địa chỉ IP của bạn. Nếu không biết địa chỉ IP của máy, hãy dùng các lệnh sau:

Nhập lệnh này vào command prompt của server:

hostname -I

Lệnh này sẽ hiển thị tất cả các địa chỉ mạng của host, được phân tách bằng dấu cách. Bạn có thể thử từng cái trong trình duyệt web để xem chúng có hoạt động không.

Ngoài ra còn có thể sử dụng

sudo systemctl start httpd
1 để yêu cầu IP của mình từ
sudo systemctl start httpd
2. Địa chỉ này sẽ cung cấp cho bạn địa chỉ IPv4 public:

curl -4 icanhazip.com

Khi đã có địa chỉ IP của máy chủ, hãy nhập nó vào thanh địa chỉ của trình duyệt:

sudo yum install httpd
0

Bạn sẽ thấy trang web CentOS 7 Apache mặc định:

Trang này chỉ ra rằng Apache đang hoạt động một cách chính xác. Bao cũng gồm cả thông tin cơ bản về các file Apache và vị trí folder. Bây giờ dịch vụ đã được cài đặt và đang chạy. Bạn có thể sử dụng các lệnh

sudo systemctl start httpd
3 khác nhau để quản lý dịch vụ.

Bước 3 – Quản lý process Apache

Bước tiếp theo trong việc cài đặt web server trên CentOS 7 là thiết lập quy trình và chạy web server. Sau đây là một số lệnh quản lý cơ bản:

Để dừng máy chủ web của bạn, hãy nhập:

sudo yum install httpd
1

Khởi động máy chủ web khi nó bị dừng:

sudo systemctl start httpd

Để dừng và bắt đầu lại dịch vụ:

sudo yum install httpd
3

Nếu chỉ đơn giản là thay đổi cấu hình, Apache thường có thể tải lại mà không mất kết nối. Để làm điều này, hãy dùng lệnh sau:

sudo yum install httpd
4

Theo mặc định, Apache được cấu hình để tự khởi động khi máy chủ khởi động. Nếu tắt nó thì hãy nhập lệnh sau:

sudo yum install httpd
5

Để bật lại dịch vụ khởi động khi khởi động máy:

sudo yum install httpd
6

Apache bây giờ sẽ tự khởi động khi server khởi động lại.

Cấu hình mặc định cho Apache sẽ cho phép server được host một trang web duy nhất. Nếu bạn muốn lưu trữ nhiều tên miền trên máy, bạn cần định lại cấu hình virtual host trên web server Apache.

Bước 4 – Thiết lập virtual server

Khi sử dụng máy chủ web Apache thì bạn có thể sử dụng virtual host để lưu trữ nhiều miền trên một máy. Trong bước này, bạn sẽ thiết lập một miền có tên là

sudo systemctl start httpd
4. Nhưng bạn nên thay thế miền này bằng tên miền của riêng bạn.

Cách thiết lập virtual server

Apache trên CentOS 7 có một block server được kích hoạt dể cung cấp tài liệu từ folder

sudo systemctl start httpd
5. Mặc dù điều này tốt cho một trang web nhưng sẽ khó sử dụng nếu bạn host nhiều trang web. Thay vì sửa đổi
sudo systemctl start httpd
5, bạn sẽ tạo folder bên trong
sudo systemctl start httpd
7 cho trang web
sudo systemctl start httpd
4. Giữ nguyên
sudo systemctl start httpd
5làm folder mặc định được phục vụ nếu request của client không phù hợp với trang nào.

Tạo folder virtual server

Tạo folder html cho

sudo systemctl start httpd
4 như sau, sử dụng flag
sudo systemctl status httpd
1để tạo folder cần thiết:

sudo yum install httpd
7

Lập một folder bổ sung để lưu trữ file log cho trang web:

sudo yum install httpd
8

Tiếp theo, chỉ định quyền sở hữu folder html với biến $USER:

sudo yum install httpd
9

Đảm bảo rằng web của bạn có quyền mặc định.

sudo firewall-cmd --permanent --add-service=http
0

Tiếp theo, tạo một trang

sudo systemctl status httpd
2mẫu bằng
sudo systemctl status httpd
3hoặc trình soạn thảo:

sudo firewall-cmd --permanent --add-service=http
1

Nhấn

sudo systemctl status httpd
4để chuyển sang chế độ
sudo systemctl status httpd
5 và thêm HTML mẫu vào file:

sudo firewall-cmd --permanent --add-service=http
2
sudo firewall-cmd --permanent --add-service=http
3

Lưu và đóng file bằng cách nhấn

sudo systemctl status httpd
6, nhập
sudo systemctl status httpd
7 và nhấn
sudo systemctl status httpd
8.

Với directory web và file mẫu thì đủ để tạo virtual server. Các file virtual server chỉ định cấu hình của các trang web riêng biệt. Cho máy chủ web Apache biết cách phản hồi yêu cầu các tên miền khác nhau.

Trước khi tạo virtual server, cần tạo một directiry

sudo systemctl status httpd
9 để lưu trữ chúng. Ngoài ra, bạn cũng cần tạo một directory
Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...
0. Directoiry này sẽ chứa các symbolic link cho các virual host mà ta muốn publish. Tạo cả hai directiry này bằng lệnh sau:

sudo firewall-cmd --permanent --add-service=http
4

Tiếp theo, yêu cầu Apache tìm kiếm các virtual server trong directory

Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...
0. Để thực hiện điều này, hãy chỉnh sửa file cấu hình chính của Apache. Sau đó thêm một dòng khai báo directory cho các file cấu hình bổ sung:

sudo firewall-cmd --permanent --add-service=http
5

Thêm dòng này vào cuối file:

sudo firewall-cmd --permanent --add-service=http
6

Lưu và đóng file khi đã hoàn tất việc thêm dòng đó vào. Bây giờ các directory virtual server đã được tạo. Tiếp theo là tạo file virtual host.

Tạo file virtual host

Đầu tiên tạo một file mới trong directory

Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...
2

sudo firewall-cmd --permanent --add-service=http
7

Thay đổi miền

sudo systemctl start httpd
4 thành tên miền của bạn:

sudo firewall-cmd --permanent --add-service=http
8

sudo firewall-cmd --permanent --add-service=http
9

Thao tác này sẽ cho Apache biết nơi tìm root – lưu giữ các tài liệu web mà có thể được truy cập công khai. Ngoài ra, nói cũng cho biết nơi lưu trữ lỗi và request log cho trang web.

Lưu và đóng file khi hoàn tất.

Bây giờ đã tạo các file virtual host. Hãy kích hoạt chúng để Apache biết để phục vụ cho khách truy cập. Để làm việc này, hãy tạo một liên kết cho virtual host trong directory

Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...
4:

sudo firewall-cmd --permanent --add-service=https
0

Bây giờ, virtual host đã được cấu hình và sẵn sàng cung cấp nội dung. Trước khi khởi động lại Apache, hãy đảm bảo rằng SELinux có các chính sách phù hợp cho virtual host của bạn. Tiếp theo, hãy điều chỉnh quyền của SELinux để tiếp tục việc cài đặt web server trên CentOS 7.

Bước 5 – Điều chỉnh quyền SELinux cho virtual server

SELinux được cấu hình để hoạt động với Apache. Vì bạn đã thiết lập một custom log directory trong file config của virtual host. Nên có thể sẽ gặp lỗi nếu khởi động Apache. Để giải quyết vấn đề này, cần cập nhật các chính sách của SELinux. Điều này cho phép Apache ghi vào các file cần thiết. SELinux mang lại khả năng bảo mật cao hơn môi trường CentOS 7. Do đó không nên tắt toàn bộ các module kernel.

Có nhiều cách khác nhau để đặt chính sách. Vì SELinux cho phép bạn tùy chỉnh mức độ bảo mật của mình. Có hai phương pháp điều chỉnh chính sách Apache: trên phạm vị toàn bộ và trên directory cụ thể. Điều chỉnh trên directory thì sẽ an toàn hơn. Do vậy nó là cách tiếp cận được khuyến nghị cho người dùng.

Điều chỉnh các chính sách Apache

Việc đặt chính sách Apache trên phạm vi rộng sẽ yêu cầu SELinux xử lý các quy trình bằng cách sử dụng boolean

Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...
5 Mặc dù cách tiếp cận này thuận tiện, nhưng nó không cung cấp cho bạn mức độ kiểm soát giống như tiếp cận vào file hay directory.

Chạy lệnh sau để đặt một chính sách Apache chung:

sudo firewall-cmd --permanent --add-service=https
1

Lệnh

Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...
6 thay đổi giá trị boolean của SELinux. Flag
Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...
7 sẽ cập nhật giá trị boot-time. Điều này làm các thay đổi vẫn giữ nguyên sau các lần khởi động lại.
Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...
8là boolean yêu cầu SELinux xử lý tất cả các quy trình thuộc cùng một loại. Vì vậy hãy bật nó với giá trị là
Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded [/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled]
   Active: active [running] since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd[8]
           man:apachectl[8]
 Main PID: 1290 [httpd]
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...
9.

Điều chỉnh chính sách Apache trên directory

Việc đặt riêng các quyền SELinux cho directory

hostname -I
0 sẽ cung cấp nhiều quyền kiểm soát hơn, nhưng cũng yêu cầu bảo trì nhiều hơn. Vì việc này khác với việc đặt chính sách chung, nên ta cần set các loại context một cách thủ công, cho từng log directory mới trong cấu hình của virtual host.

Đầu tiền kiểm tra context type mà SELinux đã cung cấp cho directory

hostname -I
1:

sudo firewall-cmd --permanent --add-service=https
2

Lệnh này liệt kê và in cotext SELinux của directory. Bạn sẽ thấy output như sau:

sudo firewall-cmd --permanent --add-service=https
3

Context hiện tại là

hostname -I
2 Điều này cho SELinux biết Apache chỉ có thể đọc các file được tạo trong directory này. Trong hướng dẫn này, bạn sẽ thay đổi context type của directory
hostname -I
0 thành
hostname -I
4 Nó cho phép Apache tạo và nối các file log ứng dụng web lại với nhau:

sudo firewall-cmd --permanent --add-service=https
4

Tiếp theo, sử dụng lệnh

hostname -I
5 để áp dụng các thay đổi này và để chúng tồn tại qua các lần khởi động lại:

sudo firewall-cmd --permanent --add-service=https
5

Flag

hostname -I
6 chạy lệnh theo quy tắc đệ quy. Nghĩa là nó sẽ cập nhật mọi file hiện có thể sử dụng context mới. Flag
hostname -I
7sẽ in ra các thay đổi về context mà lệnh thực hiện. Kết quả:

sudo firewall-cmd --permanent --add-service=https
6

Hãy liệt kê các ngữ cách một lần nữa để xem các thay đổi:

sudo firewall-cmd --permanent --add-service=https
2

Output sẽ phản ánh các loại context được cập nhật:

sudo firewall-cmd --permanent --add-service=https
8

Bây giờ directory

hostname -I
1 đang sử dụng loại
hostname -I
9. Hãy kiểm tra lại cấu hình virtual server của mình. Bước cuối cùng trong việc cài đặt web server trên CentOS 7 là kiểm tra lại virtual host.

Bước 6 – Kiểm tra Virtual Host

Khi SELinux context đã được cập nhật, Apache sẽ có thể ghi vào directory

hostname -I
1. Bây giờ bạn có thể khởi động lại Apache:

sudo yum install httpd
3

Liệt kê content của directory

hostname -I
1để xem Apache có tạo các file hay không:

sudo firewall-cmd --reload
0

Bạn sẽ thấy Apache có thể tạo file

curl -4 icanhazip.com
2và
curl -4 icanhazip.com
3, các file này đã được chỉ định trong cấu hình virtual host:

sudo firewall-cmd --reload
1

Bây giờ virtual host và các quyền SELinux đã được cập nhật. Apache sẽ phục vụ tên miền của bạn. Kiểm tra điều này bằng cách truy cập

curl -4 icanhazip.com
4, bạn sẽ thấy một thứ như sau:

Điều này xác nhận virtual server đã được cấu hình thành công. Lặp lại bước 4 và 5 để tạo virtual host mới với quyền SELinux cho miền bổ sung. Sau đó kết thúc việc cài đặt web server trên CentOS 7.

Tổng kết

Trong bài viết này đã hướng dẫn bạn cách quản lý máy chủ web Apache và cài đặt web server trên CentOS 7. Bây giờ bạn đã có máy chủ web của mình. Bạn sẽ có nhiều tùy chọn với nhiều loại nội dung do bạn phân phối. Bạn có thể sử dụng các công nghệ tốt để tạo trải nghiệm phong phú hơn.

Chia sẻ bài viết

Đánh giá

Nguyễn Hưng

Kết nối với mình qua

Mình là Bo - admin của Quản Trị Linux. Mình đã có 10 năm làm việc trong mảng System, Network, Security và đã trải nghiệm qua các chứng chỉ như CCNP, CISSP, CISA, đặc biệt là chống tấn công DDoS. Gần đây mình trải nghiệm thêm Digital Marketing và đã hòan thành chứng chỉ CDMP của PearsonVUE. Mình rất thích được chia sẻ và hỗ trợ cho mọi người, nhất là các bạn sinh viên. Hãy kết nối với mình nhé!

Chủ Đề