Close Menu
  • Trang chủ
  • Đời sống
    • Cách làm đẹp
    • Sức khỏe
    • Thể dục & Tập luyện
    • Thời trang
  • Khám phá
    • Người nổi tiếng
    • Công nghệ
    • Hướng dẫn du lịch
    • Kinh doanh
  • Thủ thuật
    • Hosting & Máy chủ
    • Hướng dẫn Blogger
    • WordPress & Plugin
  • Tiếng Việt
    • Tiếng Việt
    • Hmong
    • English
Facebook YouTube X (Twitter) Instagram
Trending
  • Cách tạo khung bình luận đẹp cho Blogger bằng CSS
  • Amazfit cập nhật ngưỡng lactate: Dùng dữ liệu để chạy vừa sức hơn
  • Yandex Webmaster cho người mới: Từ URL chính thức đến báo cáo tìm kiếm
  • Checklist Yandex Webmaster: nghiệm thu thiết lập và theo dõi 30 ngày
  • Yandex Webmaster và Metrica: Khi nào nên dùng cả hai?
  • Cách đọc lượt hiển thị, lượt nhấp, CTR và vị trí trong Yandex Webmaster
  • Thiết lập khu vực Yandex và kiểm tra website hiển thị ra sao
  • Cách đọc cảnh báo Yandex Webmaster khi trang chưa được lập chỉ mục
Facebook YouTube X (Twitter) Instagram
SaibABCSaibABC
Chú thích cho quảng cáo
  • Trang chủ
  • Đời sống
    1. Cách làm đẹp
    2. Sức khỏe
    3. Thể dục & Tập luyện
    4. Thời trang
    5. View All

    AI phân tích da có chính xác không? Cách dùng an toàn, tránh mua máy móc

    25/08/2026

    Chăm sóc da đầu tại nhà: Gội, tẩy tế bào chết và massage đúng cách

    25/08/2026

    Chăm sóc da khi giảm cân: Giữ da ẩm, khỏe và săn chắc hơn

    24/08/2026

    PDRN, peptide và mỹ phẩm công nghệ sinh học: Cách đọc quảng cáo

    24/08/2026

    Amazfit cập nhật ngưỡng lactate: Dùng dữ liệu để chạy vừa sức hơn

    28/09/2026

    Chạy bộ trong nắng nóng: Đọc WBGT và biết lúc nào phải dừng

    19/09/2026

    Tập luyện khi rung nhĩ: Bắt đầu và tăng vận động thế nào cho an toàn?

    19/09/2026

    Vì sao Suunto Run đã cập nhật nhưng vùng nhịp tim vẫn có thể sai?

    19/09/2026

    Chạy bộ trong nắng nóng: Đọc WBGT và biết lúc nào phải dừng

    19/09/2026

    Tập luyện khi rung nhĩ: Bắt đầu và tăng vận động thế nào cho an toàn?

    19/09/2026

    Bài tập 5 phút tại văn phòng: Lịch vận động snack-sized

    23/08/2026

    Bài tập core hiệu quả: Từ người mới đến nâng cao

    16/01/2024

    Trang phục du lịch mùa đông cho nam và nữ: Gợi ý theo thời tiết

    30/08/2026

    Digital Product Passport thời trang: Đọc gì trên mã QR quần áo?

    23/08/2026

    Thời trang 2026: Cách xây tủ đồ tối giản nhưng vẫn linh hoạt

    21/08/2026

    Amazfit cập nhật ngưỡng lactate: Dùng dữ liệu để chạy vừa sức hơn

    28/09/2026

    Chạy bộ trong nắng nóng: Đọc WBGT và biết lúc nào phải dừng

    19/09/2026

    Tập luyện khi rung nhĩ: Bắt đầu và tăng vận động thế nào cho an toàn?

    19/09/2026

    Vì sao Suunto Run đã cập nhật nhưng vùng nhịp tim vẫn có thể sai?

    19/09/2026
  • Khám phá
    1. Người nổi tiếng
    2. Công nghệ
    3. Hướng dẫn du lịch
    4. Kinh doanh
    Featured

    Review Samsung Galaxy S26 Ultra: Đáng mua ở điểm nào, còn thiếu gì?

    By Nuj Coom16/09/2026
    Recent

    Review Samsung Galaxy S26 Ultra: Đáng mua ở điểm nào, còn thiếu gì?

    16/09/2026

    So sánh iPhone 18 Pro Max và Galaxy S26 Ultra: Đâu là lựa chọn phù hợp?

    16/09/2026

    CPU Performance API: Chọn giao diện nhẹ hơn cho máy yếu

    13/09/2026
  • Thủ thuật
    1. Hosting & Máy chủ
    2. Hướng dẫn Blogger
    3. WordPress & Plugin
    4. View All

    Cài Let’s Encrypt trên Vultr: Bật HTTPS và tự động gia hạn chứng chỉ

    09/09/2026

    Cài WordPress trên VPS Vultr chi tiết và đưa website chạy HTTPS an toàn

    08/09/2026

    Kết nối tên miền với VPS Vultr và xác minh website hoạt động

    08/09/2026

    Đăng ký và triển khai VPS Ubuntu trên Vultr qua SSH

    07/09/2026

    Cách tạo khung bình luận đẹp cho Blogger bằng CSS

    28/09/2026

    Sao lưu Blogger đúng cách và phân quyền cộng tác viên an toàn

    26/09/2026

    Sau khi đăng ký AdSense: Đọc phản hồi, bật quảng cáo và theo dõi thanh toán

    26/09/2026

    Đăng ký hoặc liên kết AdSense với Blogger từng bước

    26/09/2026

    Yandex Webmaster cho người mới: Từ URL chính thức đến báo cáo tìm kiếm

    26/09/2026

    Checklist Yandex Webmaster: nghiệm thu thiết lập và theo dõi 30 ngày

    26/09/2026

    Yandex Webmaster và Metrica: Khi nào nên dùng cả hai?

    26/09/2026

    Cách đọc lượt hiển thị, lượt nhấp, CTR và vị trí trong Yandex Webmaster

    26/09/2026

    Cách tạo khung bình luận đẹp cho Blogger bằng CSS

    28/09/2026

    Yandex Webmaster cho người mới: Từ URL chính thức đến báo cáo tìm kiếm

    26/09/2026

    Checklist Yandex Webmaster: nghiệm thu thiết lập và theo dõi 30 ngày

    26/09/2026

    Yandex Webmaster và Metrica: Khi nào nên dùng cả hai?

    26/09/2026
  • Tiếng Việt
    • Tiếng Việt
    • Hmong
    • English
SaibABCSaibABC
Home»Thủ thuật Web»Hosting & Máy chủ»Cách cài đặt LAMP Stack trên Ubuntu: Linux, Apache, MySQL và PHP
Hosting & Máy chủ 9 Mins ReadKhông có bình luận

Cách cài đặt LAMP Stack trên Ubuntu: Linux, Apache, MySQL và PHP

Nuj CoomBy Nuj CoomUpdated:11/09/2026
Facebook Twitter Pinterest LinkedIn Tumblr Email
Chú thích cho quảng cáo

Contents

  1. Giới thiệu về LAMP Stack
  2. Điều kiện cần thiết
  3. Bước 1 — Cài đặt Apache và cập nhật tường lửa
    1. Ý nghĩa các cấu hình UFW
    2. Cách tìm địa chỉ IP công khai của máy chủ
  4. Bước 2 — Cài đặt MySQL
    1. Tạo cơ sở dữ liệu và tài khoản MySQL riêng
  5. Bước 3 — Cài đặt PHP
  6. Bước 4 — Tạo Virtual Host cho website
  7. Bước 5 — Kiểm tra PHP với Apache
  8. Bước 6 — Các bước tiếp theo
  9. Nguồn tham khảo

Giới thiệu về LAMP Stack

LAMP Stack là nhóm phần mềm mã nguồn mở thường được cài đặt cùng nhau để máy chủ có thể lưu trữ website và ứng dụng web động viết bằng PHP. Tên gọi này là viết tắt của Linux, máy chủ web Apache, cơ sở dữ liệu MySQL và ngôn ngữ xử lý phía máy chủ PHP.

Nếu là người mới và muốn triển khai máy chủ nhanh, bạn có thể dùng dịch vụ cài đặt một lần của nhà cung cấp VPS. Tuy nhiên, tự cài đặt sẽ giúp bạn hiểu rõ cấu hình hệ thống và chủ động hơn khi vận hành.

Trong hướng dẫn này, bạn sẽ thiết lập LAMP Stack trên máy chủ Ubuntu 22.04. Các lệnh cài đặt Apache, MySQL và PHP sử dụng kho phần mềm của Ubuntu, vì vậy phiên bản thực tế có thể thay đổi theo bản Ubuntu, kho cập nhật và thời điểm chạy lệnh. Tài liệu Ubuntu hiện được duy trì cho bản LTS mới nhất nhưng vẫn ghi chú khác biệt với các bản LTS cũ khi cần (theo tài liệu Ubuntu Server).

Điều kiện cần thiết

Để hoàn thành hướng dẫn, bạn cần một máy chủ Ubuntu 22.04 với tài khoản người dùng không phải root nhưng có quyền sudo, cùng tường lửa cơ bản. Bạn có thể tham khảo hướng dẫn thiết lập Ubuntu Server ban đầu.

Hãy đăng nhập SSH bằng tài khoản có quyền sudo và cập nhật danh sách gói trước khi bắt đầu:

Chú thích cho quảng cáo
sudo apt update
sudo apt upgrade

Bước 1 — Cài đặt Apache và cập nhật tường lửa

Apache là máy chủ web phổ biến trên Linux. Ubuntu cung cấp gói apache2 trong kho phần mềm chính thức (theo tài liệu cài đặt Apache2 của Ubuntu).

Cài đặt Apache bằng APT:

sudo apt install apache2

Khi được hỏi xác nhận, nhập Y rồi nhấn ENTER. Sau đó, kiểm tra trạng thái dịch vụ:

sudo systemctl status apache2

Nếu đang dùng UFW, hãy liệt kê các cấu hình ứng dụng hiện có:

sudo ufw app list
Output
Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Ý nghĩa các cấu hình UFW

  • Apache: chỉ mở cổng 80 cho HTTP.
  • Apache Full: mở cổng 80 và 443 cho HTTP và HTTPS.
  • Apache Secure: chỉ mở cổng 443 cho HTTPS.

Nếu chưa cấu hình chứng chỉ TLS, bạn có thể chỉ cho phép HTTP để kiểm tra ban đầu:

sudo ufw allow in "Apache"
sudo ufw status

Khi website đã có chứng chỉ TLS và cần phục vụ HTTPS, hãy sử dụng cấu hình Apache Full hoặc mở cổng HTTPS theo đúng thiết kế mạng. Không nên bật thêm dịch vụ nếu chưa cần thiết.

Mở địa chỉ IP công khai của máy chủ trong trình duyệt:

http://your_server_ip

Nếu thấy trang mặc định của Apache, máy chủ web đã được cài đặt và có thể truy cập qua tường lửa.

Trang mặc định của Apache trên Ubuntu

Cách tìm địa chỉ IP công khai của máy chủ

Thông thường, đây là địa chỉ được dùng để kết nối SSH. Bạn có thể kiểm tra các địa chỉ mạng cục bộ bằng:

ip addr

Để xem địa chỉ công khai mà một dịch vụ bên ngoài nhận diện, có thể dùng:

curl https://icanhazip.com

Nếu máy chủ nằm sau NAT hoặc dùng mạng đám mây, hãy kiểm tra thêm địa chỉ Public IP trong bảng điều khiển của nhà cung cấp. Không phải mọi địa chỉ xuất hiện trong ip addr đều có thể truy cập trực tiếp từ Internet.

Bước 2 — Cài đặt MySQL

MySQL đảm nhiệm việc lưu trữ và quản lý dữ liệu cho website. Cài đặt máy chủ MySQL bằng lệnh:

sudo apt install mysql-server

Dịch vụ thường được khởi động tự động sau khi cài đặt. Kiểm tra trạng thái bằng:

sudo systemctl status mysql

Nếu dịch vụ chưa chạy, khởi động bằng:

sudo systemctl start mysql

Trên Ubuntu, tài khoản MySQL root cục bộ thường xác thực qua auth_socket. Vì vậy, bạn có thể truy cập MySQL bằng:

sudo mysql -u root

Không nên dùng tài khoản root cho ứng dụng. Ubuntu hướng dẫn tạo tài khoản riêng với quyền phù hợp cho từng cơ sở dữ liệu (theo tài liệu cấu hình MySQL của Ubuntu). Hãy thoát khỏi giao diện MySQL:

exit;

Trên một số bản Ubuntu hoặc gói MySQL, bạn có thể chạy thêm trình kiểm tra bảo mật tương tác:

sudo mysql_secure_installation

Các câu hỏi và tùy chọn có thể khác nhau tùy phiên bản. Hãy đọc kỹ từng lời nhắc; thông thường nên xóa tài khoản ẩn danh, hạn chế đăng nhập root từ xa và xóa cơ sở dữ liệu thử nghiệm nếu hệ thống đưa ra các lựa chọn này. Không nên áp dụng máy móc câu trả lời của các phiên bản cũ.

Tạo cơ sở dữ liệu và tài khoản MySQL riêng

Ví dụ dưới đây tạo một cơ sở dữ liệu và người dùng riêng cho ứng dụng. Hãy thay các giá trị mẫu bằng tên và mật khẩu mạnh của bạn:

sudo mysql -u root
CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'app_user'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'ThayBangMatKhauManh';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost';
EXIT;

Ví dụ trên dùng cơ chế xác thực caching_sha2_password được tài liệu Ubuntu đề cập. Chỉ chọn cơ chế khác khi ứng dụng thực sự yêu cầu và bạn đã kiểm tra khả năng tương thích (theo tài liệu tài khoản MySQL của Ubuntu).

Máy chủ MySQL hiện đã được cài đặt và cấu hình cơ bản. Tiếp theo là cài PHP.

Bước 3 — Cài đặt PHP

Apache dùng để phân phối nội dung, MySQL dùng để lưu dữ liệu, còn PHP xử lý mã nguồn động. Để Apache có thể chạy PHP và PHP kết nối MySQL, hãy cài các gói cần thiết:

sudo apt install php libapache2-mod-php php-mysql

Ubuntu cung cấp các gói php, mô-đun PHP cho Apache và php-mysql trong kho phần mềm. Sau khi cài đặt, kiểm tra phiên bản PHP thực tế bằng:

php -v

Không nên ghi cứng một phiên bản cụ thể trong bài hướng dẫn, vì phiên bản phụ thuộc vào bản Ubuntu, kho cập nhật và thời điểm cài đặt. Tại thời điểm cập nhật bài viết ngày 2 tháng 9 năm 2026, PHP 8.5 và PHP 8.4 vẫn nằm trong các nhánh được hỗ trợ; PHP 8.3 chỉ còn nhận bản vá bảo mật đến ngày 31 tháng 12 năm 2027, còn PHP 8.2 đến ngày 31 tháng 12 năm 2026 (theo PHP.net). Hãy ưu tiên phiên bản mà kho Ubuntu cung cấp và kiểm tra tính tương thích của ứng dụng.

Khởi động lại Apache để bảo đảm mô-đun và cấu hình mới được nạp:

sudo systemctl restart apache2

Bước 4 — Tạo Virtual Host cho website

Apache cho phép tạo nhiều Virtual Host để lưu trữ nhiều tên miền trên cùng một máy chủ. Trong ví dụ này, hãy thay your_domain bằng tên miền thật của bạn và bảo đảm bản ghi DNS đã trỏ về địa chỉ IP máy chủ.

Bạn cũng có thể xem hướng dẫn trỏ tên miền về máy chủ.

Thay vì dùng trực tiếp thư mục mặc định /var/www/html, hãy tạo thư mục riêng cho website:

sudo mkdir -p /var/www/your_domain
sudo chown -R "$USER":"$USER" /var/www/your_domain

Tạo tệp cấu hình Virtual Host:

sudo nano /etc/apache2/sites-available/your_domain.conf

Thêm cấu hình cơ bản sau:

<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/your_domain

    <Directory /var/www/your_domain>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/your_domain_error.log
    CustomLog ${APACHE_LOG_DIR}/your_domain_access.log combined
</VirtualHost>

Lưu tệp rồi thoát nano bằng CTRL+X, nhấn Y và ENTER. Chỉ bật AllowOverride All nếu bạn cần dùng tệp .htaccess; nếu không, nên dùng cấu hình hạn chế hơn.

Kích hoạt Virtual Host, kiểm tra cú pháp và tải lại Apache:

sudo a2ensite your_domain.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

Nếu không cần trang mặc định của Apache, bạn có thể vô hiệu hóa site mặc định:

sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

Nếu chưa có tên miền, hãy giữ site mặc định hoặc tạo một cấu hình kiểm thử riêng. Khi dùng tên miền thật, hãy kiểm tra DNS và mở đúng cổng trên tường lửa trước khi truy cập.

Bước 5 — Kiểm tra PHP với Apache

Tạo tệp kiểm tra PHP trong thư mục website:

nano /var/www/your_domain/info.php
<?php
phpinfo();

Mở http://your_domain/info.php trong trình duyệt. Nếu trang thông tin PHP xuất hiện, Apache đã xử lý được tệp PHP.

Sau khi kiểm tra, hãy xóa tệp này vì nó hiển thị nhiều thông tin cấu hình có thể hỗ trợ kẻ tấn công:

rm /var/www/your_domain/info.php

Bước 6 — Các bước tiếp theo

  • Cấu hình HTTPS bằng chứng chỉ TLS hợp lệ trước khi đưa website vào sử dụng thực tế.
  • Chỉ mở các cổng cần thiết trên UFW và không cho phép MySQL truy cập từ Internet nếu ứng dụng không yêu cầu.
  • Sử dụng tài khoản MySQL riêng cho từng ứng dụng, với quyền tối thiểu cần thiết.
  • Thiết lập sao lưu cơ sở dữ liệu và kiểm tra khả năng khôi phục định kỳ.
  • Cập nhật Ubuntu, Apache, MySQL và PHP theo quy trình bảo trì của bạn.

Bạn đã hoàn tất các thành phần cơ bản của LAMP Stack trên Ubuntu: Apache phân phối website, MySQL quản lý dữ liệu và PHP xử lý nội dung động.

Đọc thêm: Cài WordPress trên VPS Vultr chi tiết và đưa website chạy HTTPS an toàn.

Nguồn tham khảo

  • Tài liệu Ubuntu Server
  • Tài liệu Ubuntu: cài đặt Apache2
  • Tài liệu Ubuntu: cài đặt và cấu hình MySQL
  • PHP.net: các phiên bản PHP được hỗ trợ
  • PHP.net: các bản phát hành PHP

Chú thích cho quảng cáo
Apache LAMP Stack MySQL PHP Ubuntu Virtual Host VPS
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Bài trước đó15 diễn viên nổi tiếng thế giới: vai diễn và phim nên xem trước
Bài tiếp theo Cấu hình HTTPS cho Apache bằng Let’s Encrypt trên Ubuntu
Nuj Coom
  • Website
  • Facebook
  • X (Twitter)
  • Instagram

I'm a doctor, for sure. But I also love writing and sharing knowledge, life experiences, web tricks, and useful lectures. Let's cheer for your passion.

Bài viết liên quan

Yandex Webmaster cho người mới: Từ URL chính thức đến báo cáo tìm kiếm

26/09/2026

Checklist Yandex Webmaster: nghiệm thu thiết lập và theo dõi 30 ngày

26/09/2026

Yandex Webmaster và Metrica: Khi nào nên dùng cả hai?

26/09/2026
Add A Comment
Leave A Reply Cancel Reply

Bài gần đây

Chăm sóc da đầu tại nhà: Gội, tẩy tế bào chết và massage đúng cách

Sau Core Update 2026, Google Discover ưu tiên blog nào?

WHOOP nhận diện tập sức mạnh: Khi nào nên tin, khi nào sửa?

Nhập cảnh Schengen với EES: Ai phải cung cấp sinh trắc học?

So sánh iPhone 18 Pro Max và Galaxy S26 Ultra: Đâu là lựa chọn phù hợp?

Advertisement
Chú thích cho quảng cáo

ĐĂNG KÝ THÔNG BÁO

Nhận tin tức sáng tạo mới nhất từ ​​SaibABC.Com về các thủ thuật, thiết kế và kinh doanh trên web.

Copyright © 2024. Designed by NujCoom.
  • Trang chủ
  • Chính sách
  • Liên hệ
  • Hmong
  • English

Type above and press Enter to search. Press Esc to cancel.