Hướng dẫn cài đặt LAMP trên Ubuntu 20.04 chi tiết nhất

LAMP là một hệ thống các phần mềm xây dựng lên môi trường máy chủ web trên Linux. Cùng tìm hiểu cách cài đặt LAMP trên Ubuntu 20.04 sau đây nhé.

Ở phần trước, chúng ta đã tìm hiểu về cách cài đặt LAMP trên CentOS 7, bạn có thể xem lại tại đây. Tiếp theo chúng ta sẽ tiếp tục với bài viết hướng dẫn cách cài đặt LAMP trên Ubuntu 20.04 ngay dưới đây nhé.

I. LAMP là gì?

Chúng ta cùng nhắc lại một chút kiến thức cơ bản về LAMP nhé. LAMP hay L.A.M.P là tập hợp các phần mềm mã nguồn mở phổ biến được sử dụng để phát triển và triển khai các ứng dụng web.

LAMP bao gồm 4 thành phần:

  • LINUX: Là hệ điều hành cơ bản cho môi trường web LAMP. Nó cung cấp nền tảng cho các ứng dụng web chạy trên máy chủ.
  • APACHE: Là một máy chủ web phổ biến, được sử dụng để xử lý các yêu cầu HTTP từ trình duyệt web và cung cấp nội dung web đến với người dùng.
  • MySQL (hoặc MariaDB): MySQL hoặc MariaDB là hệ quản trị cơ sở dữ liệu, nơi lưu trữ và quản lý dữ liệu cho các ứng dụng web.
  • PHP/Python/Perl: Đóng vai trò là ngôn ngữ lập trình được sử dụng để phát triển những ứng dụng web động. Chúng sẽ tương tác với cơ sở dữ liệu và tạo ra các nội dung động cho người dùng.
Hình 1 - L.A.M.P 

II. Cài đặt LAMP trên Ubuntu 20.04

1. Yêu cầu trước khi cài đặt

Để làm theo hướng dẫn này, bạn cần có hệ điều hành Ubuntu 20.04 chạy trên máy tính cục bộ hoặc trên máy chủ được SSH(Telnet) từ xa.

Bạn cũng có thể xem xét một VPS (Virtual Private Server) hoặc thiết lập L.A.M.P với một tên miền.

2. Các bước cài đặt LAMP trên Ubuntu 20.04

2.1 Cập nhật gói phần mềm

Trước khi muốn cài đặt một phần mềm nào đó, ta đều cần phải nâng cấp hệ thống và cập nhật danh sách các gói. Bạn hãy vào Server và khởi chạy 2 câu lệnh sau:

sudo apt update 

sudo apt upgrade 

2.2 Cài đặt Apache Web Server

Sau khi đã nâng cấp hệ thống và cập nhật các gói hoàn tất, chúng ta tiến hành nhập câu lệnh để cài đặt Apache. Bạn cũng có thể cài đặt thêm gói apache2-utils - gói này sẽ cài đặt một số tiện ích hữu ích như công cụ benchmark Apache HTTP Server.

sudo apt install -y apache2

sudo apt install -y apache2-utils

Sau khi đã cài đặt xong, mặc định Ubuntu Server sẽ tự động khởi động Apache cho chúng ta. Tuy nhiên, để chắc chắn, chúng ta cũng nên tự khởi động thủ công bằng 2 câu lệnh sau:

sudo systemctl start apache2

sudo systemctl enable apache2

Sau khi khởi động thủ công hoàn tất, chúng ta có thể kiểm tra lại trạng thái của Apache.

systemctl status apache2

Nếu có đầu ra như hình 2.1  nghĩa là bạn đã khởi động thành công Apache.

Hình 2.1 - Trạng thái khởi động Apache thành công

Lưu ý: Nếu sau khi nhập lệnh kiểm tra trạng thái nhưng không thoát được ngay lập tức, bạn có thể bấm phím Q hoặc bấm tổ hợp phím Ctrl + C để trở về Terminal.

Kiểm tra lại phiên bản sau khi đã cài đặt thành công:

apache2 -v

Đầu ra: 

Server version: Apache/2.4.52 (Ubuntu)

Server built:   2023-10-26T13:44:44

Kiểm tra hoạt động của Apache:

Bạn hãy kiểm tra xem địa chỉ IP của Server Ubuntu của mình là gì bằng câu lệnh:

ip a

Sau khi biết địa chỉ IP của Server, bạn hãy truy cập vào một trình duyệt bất kì và nhập IP của Server vào ô tìm kiếm. Nếu trang web Apache2 Default Page hiện ra như hình 2.2 nghĩa là bạn đã hoàn thành tiến trình cài đặt Apache.

Hình 2.2 - Trang web Apache2 Default Page

Một số lỗi thường gặp:

Nếu như bạn gõ IP nhưng không truy cập được, đừng lo, vấn đề chỉ nằm ở phần tường lửa của máy mà thôi. Bạn hãy tiến hành mở Port theo hướng dẫn bên dưới

  • Nếu bạn sử dụng iptables

sudo iptables -I INPUT -p tcp  - -dport 80 -j ACCEPT 

  • Nếu bạn đang sử dụng tường lửa UFW

sudo ufw allow http

Lỗi cũng có thể sẽ phát sinh do chưa phân quyền owner. Bây giờ, bạn cần đặt www-data (Apache user) làm chủ sở hữu của document root (hay còn gọi là web root). Theo như mặc định của Ubuntu Server, nó sẽ thuộc sở hữu của người dùng root.

sudo chown www-data:www-data  /var/www/html/ -R

Theo mặc định, Apache sẽ sử dụng hostname hệ thống làm ServerName toàn cầu của nó. Nếu không thể phân giải tên máy chủ hệ thống trong DNS, thì bạn có thể sẽ gặp lỗi sau khi chạy lệnh sudo apache2ctl -t. Lỗi sẽ trông như sau:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

Để khắc phục lỗi này, bạn có thể đặt Servername toàn cầu trong Apache. Ta có thể sử dụng trình soạn thảo VIM để tạo một file cấu hình mới. File cấu hình sẽ nằm trong đường dẫn /etc/apache2/conf-available.

sudo vim /etc/apache2/conf-available/servername.conf

Bấm I để vào chế độ Insert và thêm vào nội dung sau:

Servername 127.0.0.1

Lưu và đóng file. Để lưu và đóng một file trong VIM, ta thoát chế độ hiện tại bằng cách bấm ESC, sau đó bấm tổ hợp :wq để lưu và thoát khỏi VIM. Sau đó, ta tiến hành kích hoạt file cấu hình này.

sudo a2ensite servername.conf

Reload lại Apache để áp dụng các thay đổi mới:

sudo systemctl reload apache2

Bây giờ bạn đã hoàn thành cài đặt Apache.

2.3 Cài đặt MariaDB Database Server

MariaDB là một phiên bản thay thế cho MySQL Server. Nó được phát triển bởi các thành viên cũ của nhóm MySQL - những người lo ngại rằng Oracle có thể biến MySQL thành một sản phẩm mã nguồn đóng. Ta nhập các lệnh sau để cài đặt MariaDB trên UbuntuServer.

  • Cài đặt MariaDB Database Server:

sudo apt install -y mariadb-server  mariadb-client

  • Khởi động dịch vụ MariaDB và kiểm tra trạng thái

sudo systemctl start mariadb

sudo systemctl enable mariadb

systemctl status mariadb

Kết quả đầu ra sẽ hiển thị như hình 2.3.

Hình 2.3 - Trạng thái MariaDB
  • Chạy Script bảo mật sau cài đặt:

Bây giờ các bạn sẽ cài đặt mật khẩu root cho Mariadb và thiết lập một số tùy chỉnh với lệnh:

sudo mysql_secure_installation

Tiến trình cài đặt sẽ thực hiện ở hình 2.4 và hình 2.5:

Hình 2.4 - Quá trình cài đặt bảo mật MariaDB

Giải thích:

1: Mục này nhập Enter khi bạn chưa có mật khẩu.

2: Chuyển sang kiểu xác thực unix_socket.

3: Thay đổi root password: Nhập Y để thiết lập mật khẩu mới. Nhập mật khẩu và nhập lại 1 lần. Lưu ý rằng mật khẩu sẽ không hiển thị.

Hình 2.5 - Quá trình cài đặt bảo mật MariaDB

Giải thích:

4: Nhấn Y để xóa bỏ các user khác.

5: Nhấn Y để không cho phép root đăng nhập từ xa.

6: Nhấn Y để xóa bỏ database.

7: Nhấn Y để khởi chạy lại bảng Privilege (bảng phân quyền).

Sau khi hoàn thành, bạn hãy thực hiện kiểm tra lại version của Mariadb.

mariadb  - -version

Như bạn đã thấy, MariaDB đã được cài đặt thành công.

mariadb  Ver 15.1 Distrib 10.6.12-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

2.4 Cài đặt PHP

Tại thời điểm mình viết bài này, PHP8.1 hiện đang là phiên bản mới nhất của PHP, nó có hiệu suất cao vượt trội hơn so với các phiên bản tiền nhiệm. Vậy nên mình sẽ thực hiện cài đặt PHP8.1, kèm theo đó là một số modules cần thiết.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt install -y php8.1 libapache2-mod-php8.1

sudo apt install php-net-ldap2 php-net-ldap3 php-imagick php8.1-common php8.1-gd php8.1-imap php8.1-mysql php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-gmp php8.1-redis

Khi cài đặt xong, PHP8.1 sẽ mặc định được enable sẵn, tuy nhiên nếu máy của bạn chưa được enable sẵn, bạn có thể dùng lệnh sau để khởi động PHP.

sudo a2ensite php8.1.conf

sudo systemctl restart apache2

Để kiểm tra các script PHP với Apache Server, bạn cần tạo một file info.php trong thư mục document root của Apache2. Ta sẽ sử dụng trình soạn thảo văn bản VIM.

sudo VIM /var/www/html/info.php

Tiếp đó, hãy chép đoạn code sau vào trong file. Lưu ý: Bấm I để vào chế độ chỉnh sửa để khi thực hiện chép code sẽ không bị mất chữ.

<?php

phpinfo();

?>

Bây giờ, bạn thực hiện lưu file và thoát khỏi VIM. Thực hiện khởi động lại httpd.

systemctl restart httpd

Sau đó, truy cập vào một trình duyệt web bất kì, trong thanh địa chỉ của trình duyệt, hãy nhập ServerIP/info.php(hãy thay thế ServerIP bằng địa chỉ IP Server của bạn).

Bạn sẽ thấy thông tin PHP máy chủ, điều này có nghĩa là các script PHP đã chạy đúng với Apache WebServer.

Hình 2.6 - Trang web trạng thái PHP

Như vậy là quá trình cài đặt PHP đã hoàn tất. L.A.M.P đã được cài đặt thành công trên UbuntuServer của bạn.

3. Một số lưu ý khi cài đặt LAMP trên Ubuntu 20.04

Khi cài đặt LAMP trên Ubuntu 20.04, có một số điều quan trọng cần lưu ý để đảm bảo quá trình triển khai diễn ra mượt mà và an toàn. Dưới đây là một số lưu ý:

  • Firewall: Hãy chắc chắn rằng firewall của bạn đã được cấu hình đúng để cho phép lưu lượng truy cập qua các cổng cần thiết, như cổng 80 cho HTTP và cổng 443 cho HTTPS.
  • Sao lưu dữ liệu: Trước khi thực hiện bất kỳ thay đổi lớn nào trên hệ thống, đảm bảo bạn đã sao lưu dữ liệu quan trọng. Điều này có thể bao gồm cả cơ sở dữ liệu và các tệp tin cấu hình.
  • Overwrite Default Apache Page: Khi Apache được cài đặt, trang mặc định có thể là "It works!" hoặc một trang chào mừng khác. Nếu bạn muốn, hãy thay thế nó bằng trang web của bạn để chắc chắn rằng máy chủ của bạn hoạt động đúng.
  • Giám sát và Log: Thiết lập giám sát hệ thống và theo dõi các file log để theo dõi tình trạng của máy chủ và phát hiện các vấn đề ngay từ khi chúng xuất hiện.
  • SSL/TLS Encryption: Nếu bạn triển khai trang web của mình, xem xét việc cài đặt chứng chỉ SSL/TLS để bảo vệ dữ liệu truyền tải giữa máy chủ và người dùng.
  • Tối ưu hóa và Cấu hình: Tùy chỉnh cấu hình của Apache, MySQL và PHP để đáp ứng yêu cầu cụ thể của ứng dụng của bạn và tối ưu hóa hiệu suất.

Những lưu ý này sẽ giúp bạn có một hệ thống LAMP ổn định, an toàn và dễ quản lý trên Ubuntu Server.

>>> Xem thêm: Hướng dẫn cài đặt cPanel trên Ubuntu 20.04 chi tiết nhất

Tổng kết

LAMP là một bộ công cụ mạnh mẽ để phát triển các ứng dụng web. Hy vọng qua bài viết trên bạn có thể thực hiện cài đặt LAMP trên hệ điều hành Ubuntu 20.04 của mình một cách dễ dàng. Trong quá trình thực hiện có khó khăn gì, bạn hãy liên hệ với chúng tôi để được hỗ trợ nhanh nhất nhé. Chúc bạn thực hiện thành công!

Tác giả:
author avatar
Mình là Huy, hiện mình đang là kỹ sư hệ thống tại SunCloud. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn về mạng, hệ thống, điện toán mây và an ninh bảo mật. Mình đã triển khai và vận hành rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số chứng chỉ quốc tế như CCNP, LPI, VCP, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.

Tin tức nổi bật
Tin tức khác