Cách cài đặt LAMP Stack (Linux, Apache, MariaDB và PHP) trên Ubuntu 24.04

theanh

Administrator
Nhân viên
LAMP Stack (Linux, Apache, MySQL/MariaDB và PHP) là một gói công nghệ nguồn mở để xây dựng trang web và ứng dụng web. Mỗi thành phần của LAMP Stack đều miễn phí và bạn có thể cài đặt cho cả môi trường phát triển và sản xuất.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt LAMP Stack (Linux, Apache, MySQL/MariaDB và PHP) trên máy chủ Ubuntu 24.04 "Noble Numbat". Bạn cũng sẽ tìm hiểu cách bảo mật MariaDB và tạo máy chủ ảo bằng máy chủ web Apache.

Điều kiện tiên quyết​

Để bắt đầu với hướng dẫn này, hãy đảm bảo bạn có Ubuntu 24.04 "Noble Numbat" với người dùng root hoặc người dùng không phải root có quyền quản trị viên.

Cài đặt máy chủ web Apache​

Apache là một trong những phần mềm máy chủ web phổ biến nhất trên internet. Apache hỗ trợ một số trang web lớn trên Internet, bao gồm Wikipedia, Slack, LinkedIn, The New Your Times và nhiều trang web khác.

Máy chủ web Apache nổi tiếng với tính mô-đun, cho phép người dùng mở rộng các tính năng thông qua các mô-đun. Trong phần này, bạn sẽ cài đặt máy chủ web Apache trên máy chủ Ubuntu 24.04.

Để bắt đầu, hãy chạy lệnh sau để cập nhật danh sách gói Ubuntu của bạn và nhận thông tin gói mới nhất.
Mã:
sudo apt update

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22730%22%20height=%22219%22%3E%3C/svg%3E


Bây giờ hãy cài đặt máy chủ web Apache bằng lệnh 'apt install' bên dưới. Nhập Y để xác nhận cài đặt.
Mã:
sudo apt install apache2

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22334%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, dịch vụ apache2 sẽ tự động khởi động và chạy khi hệ thống khởi động. Kiểm tra trạng thái dịch vụ apache2 bằng lệnh sau.
Mã:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
Bạn sẽ thấy dịch vụ apache2 được 'bật' và sẽ tự động chạy khi khởi động. Trạng thái của dịch vụ apache2 hiện tại là 'hoạt động (đang chạy)'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22199%22%3E%3C/svg%3E


Nếu bạn đang chạy UFW (Tường lửa đơn giản) trên Ubuntu, bạn cần cho phép lưu lượng truy cập vào máy chủ web Apache của mình thông qua UFW.

Chạy lệnh 'ufw' sau để cho phép lưu lượng truy cập vào máy chủ web Apache thông qua cấu hình 'Apache Full'. Cấu hình 'Apache Full' trên UFW sẽ mở cả cổng HTTP và HTTPS.
Mã:
sudo ufw allow 'Apache Full'
Bây giờ hãy chạy lệnh bên dưới để xác minh các quy tắc danh sách trên UFW. Bạn sẽ thấy hồ sơ 'Apache Full' có trạng thái 'ALLOW'.
Mã:
sudo ufw status

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22558%22%20height=%22290%22%3E%3C/svg%3E


Cuối cùng, hãy mở trình duyệt web và truy cập địa chỉ IP máy chủ của bạn, chẳng hạn như http://192.168.5.30/. Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ nhận được trang 'index.html' của máy chủ web Apache như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22582%22%3E%3C/svg%3E


Nếu bạn không chắc chắn về địa chỉ IP của máy chủ Ubuntu, hãy chạy lệnh bên dưới để kiểm tra IP máy chủ của bạn địa chỉ.
Mã:
ip a

Cài đặt máy chủ cơ sở dữ liệu MariaDB​

MariaDB là một nhánh RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) mã nguồn mở và miễn phí của MySQL. Nó được tạo ra bởi các nhà phát triển MySQL ban đầu nhưng có nhiều tính năng hơn, tốc độ truy vấn cao hơn và khả năng mở rộng hơn.

Đối với cài đặt LAMP Stack này, bạn sẽ sử dụng MariaDB thay vì MySQL. Vì vậy, bây giờ bạn sẽ cài đặt và bảo mật máy chủ cơ sở dữ liệu MariaDB trên Ubuntu 24.04.

Để cài đặt máy chủ MariaDB trên Ubuntu, hãy chạy lệnh 'apt install' sau. Nhập Y để tiếp tục cài đặt.
Mã:
sudo apt install mariadb-server

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22429%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, dịch vụ MariaDB sẽ chạy và được bật trên hệ thống của bạn. Kiểm tra trạng thái dịch vụ MariaDB bằng lệnh bên dưới.
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
Bạn sẽ thấy đầu ra 'enabled' khi dịch vụ mariadb được bật. Bạn cũng sẽ thấy trạng thái hiện tại của dịch vụ mariadb là 'active (running)'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22232%22%3E%3C/svg%3E


Với máy chủ MariaDB đang chạy, bạn cần bảo mật máy chủ này thông qua tiện ích 'mariadb-secure-installation'. Điều này cho phép bạn thiết lập mật khẩu gốc MariaDB, vô hiệu hóa xác thực từ xa cho người dùng gốc MariaDB và cho phép bạn xóa dữ liệu mặc định khỏi máy chủ MariaDB của mình.

Chạy lệnh 'mariadb-secure-installation' bên dưới để bảo mật việc triển khai máy chủ MariaDB của bạn.
Mã:
sudo mariadb-secure-installation
Nhấn ENTER khi được nhắc nhập gốc MariaDB mật khẩu.
Mã:
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Nhập 'n' khi được yêu cầu chuyển sang xác thực unix_socket.
Mã:
Switch to unix_socket authentication [Y/n] n
 ... skipping.
Nhập Y để cấu hình mật khẩu gốc MariaDB. Sau đó, nhập mật khẩu mới và lặp lại.
Mã:
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
Nhập Y để xóa người dùng ẩn danh mặc định khỏi cài đặt máy chủ MariaDB của bạn.
Mã:
Remove anonymous users? [Y/n] Y
 ... Success!
Nhập Y để tắt chức năng đăng nhập từ xa cho người dùng gốc MariaDB. Người dùng root phải luôn kết nối từ máy chủ cục bộ.
Mã:
Disallow root login remotely? [Y/n] Y
 ... Success!
Bây giờ hãy nhập Y một lần nữa để xóa bài kiểm tra cơ sở dữ liệu mặc định và các đặc quyền của nó khỏi máy chủ MariaDB của bạn.
Mã:
Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Nhập Y để tải lại các bảng đặc quyền và áp dụng tất cả các thay đổi mà bạn đã thực hiện để far.
Mã:
Reload privilege tables now? [Y/n] Y
 ... Success!
Khi hoàn tất, bạn sẽ thấy thông báo sau:
Mã:
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Cài đặt PHP​

PHP là ngôn ngữ lập trình nguồn mở để phát triển web. Nó cũng hỗ trợ CMS (Hệ thống quản lý nội dung) phổ biến nhất như WordPress và Drupal. Trong phần này, bạn sẽ cài đặt PHP với một số tiện ích mở rộng bên dưới:
  • libapache2-mod-php: Gói này sẽ cho phép tích hợp giữa máy chủ web Apache và PHP.
  • php-mysql: Trình điều khiển MySQL/MariaDB cho PHP. Bạn phải cài đặt gói này, đặc biệt là khi bạn đang phát triển hoặc triển khai ứng dụng web PHP với MySQL/MariaDB làm cơ sở dữ liệu.
  • php-opcachephp-apcu: Gói này cung cấp hiệu suất bộ nhớ đệm cho các ứng dụng web PHP của bạn.
Trước tiên, hãy cài đặt các gói PHP vào Ubuntu của bạn bằng lệnh sau. Nhập Y để xác nhận cài đặt.
Mã:
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22282%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy chạy lệnh nano editor sau để sửa đổi cấu hình PHP 'php.ini' tập tin.
Mã:
sudo nano /etc/php/8.3/apache2/php.ini
Thay đổi cấu hình PHP mặc định bằng lệnh sau và đảm bảo điều chỉnh 'date.timezone' theo múi giờ máy chủ của bạn và 'memory_limit' theo bộ nhớ tối đa của máy chủ Ubuntu của bạn.
Mã:
date.timezone = Europe/Paris
memory_limit = 256M
upload_max_file_size = 64M
max_execution_time = 300
Lưu tập tin và thoát.

Cuối cùng, hãy chạy lệnh sau để khởi động lại dịch vụ apache2 và áp dụng các thay đổi của bạn vào cấu hình PHP.
Mã:
sudo systemctl restart apache2

Tích hợp Apache và PHP​

Để xác minh tích hợp Apache và PHP, bạn sẽ tạo tệp PHPINFO hiển thị thông tin chi tiết về cài đặt PHP của mình. Tệp PHPINFO của bạn phải nằm trong thư mục DocumentRoot mặc định /var/www/html.

Tạo tệp 'info.php' mới bằng lệnh sau.
Mã:
echo "" > /var/www/html/info.php
Mở trang web của bạn và truy cập http://192.168.5.30/info.php. Nếu cài đặt Apache và PHP thành công, bạn sẽ nhận được trang PHPINFO như sau:

Như bạn thấy, PHP 8.3 đang chạy với máy chủ web Apache thông qua Apache Handler.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22488%22%3E%3C/svg%3E


Cuộn xuống trang và bạn cũng sẽ thấy mô-đun PHP mysql đã được cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22562%22%3E%3C/svg%3E


Cuối cùng, hãy kiểm tra các mô-đun lưu trữ đệm PHP thông qua APC như sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22457%22%3E%3C/svg%3E

Tạo Máy chủ ảo trong Apache​

Máy chủ ảo là thuật ngữ dùng để chỉ việc lưu trữ nhiều trang web như site1.com và site2.com trên một máy chủ duy nhất. Trong phần này, bạn sẽ tìm hiểu cách thiết lập máy chủ ảo trên máy chủ web Apache.

Trước tiên, hãy chạy lệnh bên dưới để tạo thư mục DocumentRoot mới /var/www/mysite/public_html và trang 'index.html' tùy chỉnh mới.
Mã:
mkdir -p /var/www/mysite/public_html
echo "Welcome to mysite.com" > /var/www/mysite/public_html/index.html
Bây giờ hãy chạy lệnh bên dưới để thay đổi quyền sở hữu thư mục /var/www/mysite thành người dùng 'www-data'.
Mã:
sudo chown -R www-data:www-data /var/www/mysite
Sau đó, tạo cấu hình máy chủ ảo Apache mới '/etc/apache2/sites-available/mysite.conf' bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/apache2/sites-available/mysite.conf
Chèn cấu hình máy chủ ảo sau. Đảm bảo thay đổi tùy chọn ServerName bằng tên miền của bạn và thư mục DocumentRoot bằng đường dẫn '/var/www/mysite/public_html'.
Mã:
 ServerAdmin [emailprotected]

 ServerName mysite.com
 ServerAlias www.mysite.com

 DocumentRoot /var/www/mysite/public_html

 ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
 CustomLog ${APACHE_LOG_DIR}/mysite-access.log combined
Lưu và thoát tệp.

Tiếp theo, chạy lệnh sau để kích hoạt tệp máy chủ ảo mysite.conf và xác minh Apache của bạn cú pháp.
Mã:
sudo a2ensite mysite.conf
sudo apachectl configtest
Nếu cú pháp Apache của bạn đúng và phù hợp, bạn sẽ nhận được đầu ra 'Cú pháp OK'.

Bây giờ hãy chạy lệnh bên dưới để khởi động lại dịch vụ apache2 và áp dụng cấu hình máy chủ ảo mới của bạn.
Mã:
sudo systemctl restart apache2

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22739%22%20height=%22295%22%3E%3C/svg%3E

Kiểm tra máy chủ ảo Apache của bạn​

Để truy cập tên miền máy chủ ảo của bạn, bạn có thể sửa đổi tệp 'hosts' trên hệ thống cục bộ của mình.
  • Đối với người dùng Windows, hãy chỉnh sửa tệp 'C:\Windows\System32\drivers\etc\hosts' với tư cách là quản trị viên.
  • Đối với người dùng Linux hoặc MacOS, hãy chỉnh sửa tệp '/etc/hosts' với quyền sudo/root.
Nhập tên miền máy chủ ảo của bạn như 'mysite.com' và Địa chỉ IP của máy chủ Ubuntu.
Mã:
192.168.5.30 mysite.com
Lưu tệp và thoát khỏi trình chỉnh sửa.

Bây giờ hãy mở trình duyệt web của bạn và truy cập http://mysite.com/. Nếu cấu hình máy chủ ảo của bạn thành công, bạn sẽ nhận được 'index.html' tùy chỉnh như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22623%22%20height=%22155%22%3E%3C/svg%3E


Bạn đã hoàn tất cài đặt LAMP Stack (Linux, Apache, MySQL/MariaDB và PHP) trên máy chủ Ubuntu 24.04 "Noble Numbat".
 
Back
Bên trên