Chi tiết các bước cài đặt LAMP trên Ubuntu 20.04 LTS
Hướng dẫn chi tiết các bước cài đặt LAMP (Linux, Apache, MariaDB/MySQL và PHP) trên Ubuntu 20.04 LTS
LAMP là software stack phổ biến nhất cho các trang web động và ứng dụng web. Linux là hệ điều hành, Apache là web server, MariaDB/MySQL là database server và PHP là ngôn ngữ kịch bản (scripting language) phía máy chủ chịu trách nhiệm tạo các trang web động.
Điều kiện tiên quyết
- 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ủ từ xa.
- Ngoài ra, bạn có thể xem xét một VPS (máy chủ riêng ảo) hoặc thiết lập LAMP với một tên miền.
Hướng dẫn các bước cài đặt LAMP trên Ubuntu
Bước 1: Cập nhật gói phần mềm
Trước khi cài đặt LAMP, bạn nên cập nhật gói phần mềm và kho lưu trữ. Chạy các lệnh sau trên hệ điều hành Ubuntu 20.04:
sudo apt update sudo apt upgrade
Bước 2: Cài đặt Apache Web Server
- Nhập lệnh sau để cài đặt Apache Web server. Gói apache2-utils 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 apache2-utils
- Sau khi được cài đặt, Apache sẽ tự động được khởi động. Kiểm tra trạng thái của nó với systemctl.
systemctl status apache2
- Đầu ra mẫu:
apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-04-11 11:31:31 CST; 2s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 53003 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 53011 (apache2) Tasks: 55 (limit: 19072) Memory: 6.4M CGroup: /system.slice/apache2.service ├─53011 /usr/sbin/apache2 -k start ├─53012 /usr/sbin/apache2 -k start └─53013 /usr/sbin/apache2 -k start
Gợi ý: Nếu lệnh trên không thoát ngay lập tức, bạn có thể nhấn phím Q để giành lại quyền kiểm soát Terminal.
- Nếu nó không chạy, hãy sử dụng systemctl để khởi động.
sudo systemctl start apache2
- Bạn cũng nên cho phép Apache tự động khởi động tại thời điểm boot hệ thống.
sudo systemctl enable apache2
- Kiểm tra phiên bản Apache:
apache2 -v
- Đầu ra:
Server version: Apache/2.4.41 (Ubuntu) Server built: 2020-03-05T18:51:00
- Bây giờ, hãy nhập địa chỉ IP public của Ubuntu 20.04 server vào thanh địa chỉ trình duyệt. Bạn sẽ thấy trang “It works!”, có nghĩa là Apache Web server đang chạy bình thường. Nếu bạn đang cài đặt LAMP trên máy tính Ubuntu 20.04 cục bộ, hãy nhập 127.0.0.1 hoặc localhost vào thanh địa chỉ trình duyệt.
Nhập địa chỉ IP public của Ubuntu 20.04 server vào thanh địa chỉ trình duyệt
- Nếu kết nối bị từ chối hoặc không thể hoàn tất, có thể có tường lửa ngăn các yêu cầu đến cổng TCP 80. Nếu bạn đang sử dụng tường lửa iptables, thì bạn cần chạy lệnh sau để mở cổng TCP 80.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
- Nếu bạn đang sử dụng tường lửa UFW, hãy chạy lệnh này để mở cổng TCP 80.
sudo ufw allow http
- Bây giờ, bạn cần đặt www-data (người dùng Apache) làm chủ sở hữu của document root (hay còn gọi là web root). Theo mặc định, nó 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ử 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.
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
- Để giải quyết vấn đề này, bạn có thể đặt ServerName toàn cầu trong Apache. Sử dụng trình soạn thảo dòng lệnh Nano để tạo file cấu hình mới.
sudo nano /etc/apache2/conf-available/servername.conf
- Thêm dòng sau vào file này.
ServerName localhost
- Lưu và đóng file. Để lưu file trong trình soạn thảo Nano, nhấn Ctrl + O, sau đó nhấn Enter để xác nhận. Để thoát, nhấn Ctrl + X. Sau đó kích hoạt file cấu hình này.
sudo a2enconf servername.conf
- Load lại Apache để thay đổi có hiệu lực.
sudo systemctl reload apache2
- Bây giờ, nếu chạy lại lệnh sudo apache2ctl -t, bạn sẽ không thấy thông báo lỗi ở trên.
Bước 3: Cài đặt MariaDB Database Server
MariaDB là phiên bản thay thế cho MySQL. 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.
- Nhập lệnh sau để cài đặt MariaDB trên Ubuntu 20.04.
sudo apt install mariadb-server mariadb-client
- Sau khi cài đặt, MariaDB server sẽ tự động được khởi động. Sử dụng systemctl để kiểm tra trạng thái của nó.
systemctl status mariadb
- Đầu ra:
mariadb.service - MariaDB 10.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 9161 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 9451) Memory: 64.7M CGroup: /system.slice/mariadb.service └─9161 /usr/sbin/mysqld
- Nếu nó không chạy, hãy khởi động bằng lệnh sau:
sudo systemctl start mariadb
- Để cho phép MariaDB tự động khởi động khi boot, hãy chạy:
sudo systemctl enable mariadb
- Bây giờ chạy script bảo mật sau cài đặt.
sudo mysql_secure_installation
- Bạn được yêu cầu nhập mật khẩu root MariaDB, hãy nhấn phím Enter vì mật khẩu root chưa được đặt. Sau đó, nhập y để đặt mật khẩu root cho MariaDB server.
Nhập y để đặt mật khẩu root cho MariaDB server
- Tiếp theo, bạn có thể nhấn Enter để trả lời tất cả các câu hỏi còn lại, thao tác này sẽ xóa người dùng ẩn danh, vô hiệu hóa đăng nhập root từ xa và xóa cơ sở dữ liệu thử nghiệm. Bước này là yêu cầu cơ bản để bảo mật cơ sở dữ liệu MariaDB. (Lưu ý rằng Y được viết hoa, có nghĩa nó là câu trả lời mặc định).
Bạn có thể nhấn Enter để trả lời tất cả các câu hỏi còn lại
- Theo mặc định, gói MariaDB trên Ubuntu sử dụng unix_socket để xác thực đăng nhập của người dùng, về cơ bản có nghĩa là bạn có thể sử dụng tên người dùng và mật khẩu của hệ điều hành để đăng nhập vào bảng điều khiển MariaDB. Vì vậy, bạn có thể chạy lệnh sau để đăng nhập mà không cần cung cấp mật khẩu root MariaDB.
sudo mariadb -u root
- Để thoát, hãy chạy:
exit;
- Kiểm tra thông tin phiên bản máy chủ MariaDB.
mariadb --version
- Như bạn thấy, MariaDB 10.3.22 đã được cài đặt.
mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Bước 4: Cài đặt PHP7.4
- Tại thời điểm viết bài này, PHP7.4 là phiên bản ổn định mới nhất của PHP. Nhập lệnh sau để cài đặt PHP7.4 và một số mô-đun PHP phổ biến.
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
- Kích hoạt mô-đun Apache php7.4 sau đó khởi động lại Apache Web server.
sudo a2enmod php7.4 sudo systemctl restart apache2
- Kiểm tra thông tin phiên bản PHP.
php --version
- Đầu ra:
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
- Để 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.
sudo nano /var/www/html/info.php
- Dán code PHP sau vào file.
<?php phpinfo(); ?>
Để lưu file trong trình soạn thảo văn bản Nano, nhấn Ctrl + O, sau đó nhấn Enter để xác nhận. Để thoát, nhấn Ctrl + X. Bây giờ trong thanh địa chỉ của trình duyệt, nhập server-ip-address/info.php. Thay thế server-ip-address bằng IP thực của bạn. Nếu bạn làm theo hướng dẫn này trên máy tính cục bộ , hãy nhập 127.0.0.1/info.php hoặc localhost/info.php.
Bạn sẽ thấy thông tin PHP của máy chủ. Điều này có nghĩa là các script PHP có thể chạy đúng với Apache Web server.
Thông tin PHP của máy chủ
Cách chạy PHP-FPM với Apache
Về cơ bản có hai cách để chạy code PHP với Apache Web server:
- Mô-đun PHP của Apache
- PHP-FPM
Trong các bước trên, mô-đun Apache PHP7.4 được sử dụng để xử lý code PHP, điều này thường ổn. Nhưng trong một số trường hợp, bạn cần chạy code PHP với PHP-FPM để thay thế. Đây là cách thực hiện.
- Vô hiệu hóa mô-đun Apache PHP7.4.
sudo a2dismod php7.4
- Cài đặt PHP-FPM.
sudo apt install php7.4-fpm
- Kích hoạt mô-đun setenvif và proxy_fcgi.
sudo a2enmod proxy_fcgi setenvif
- Kích hoạt file cấu hình /etc/apache2/conf-available/php7.4-fpm.conf.
sudo a2enconf php7.4-fpm
- Khởi động lại Apache để các thay đổi có hiệu lực.
sudo systemctl restart apache2
Bây giờ, nếu refresh trang info.php trong trình duyệt, bạn sẽ thấy rằng Server API được thay đổi từ Apache 2.0 Handler thành FPM/FastCGI, có nghĩa là Apache Web server sẽ chuyển các yêu cầu PHP đến PHP-FPM.
Server API được thay đổi từ Apache 2.0 Handler thành FPM/FastCGI
Chúc mừng! Bạn đã cài đặt thành công LAMP (Apache, MariaDB và PHP7.4) trên Ubuntu 20.04. Để bảo mật cho máy chủ, bạn nên xóa file info.php ngay bây giờ để tránh những con mắt tò mò.
sudo rm /var/www/html/info.php