Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 20.04
LAMP là một group phần mềm nguồn mở thường được cài đặt cùng nhau để cho phép server lưu trữ các trang web động và ứng dụng web được viết bằng PHP. Thuật ngữ này là một từ viết tắt đại diện cho hệ điều hành L inux, với web server A pache. Dữ liệu trang web được lưu trữ trong database M ySQL và nội dung động được xử lý bởi P HP.Trong hướng dẫn này, ta sẽ cài đặt LAMP trên server Ubuntu 20.04.
Yêu cầu
 Để hoàn thành hướng dẫn này, bạn  cần  có  server  Ubuntu 20.04 với account   user  kích hoạt sudo không root và firewall  cơ bản. Điều này có thể được  cấu hình  bằng cách sử dụng hướng dẫn  cài đặt   server  ban đầu của  ta  cho Ubuntu 20.04 .
Bước 1 - Cài đặt Apache và Cập nhật Tường lửa
Web server Apache là một trong những web server phổ biến nhất trên thế giới. Nó được ghi chép đầy đủ, có một cộng đồng user tích cực và đã được sử dụng rộng rãi trong phần lớn lịch sử của web, điều này khiến nó trở thành một lựa chọn mặc định tuyệt vời để lưu trữ một trang web.
 Cài đặt Apache bằng trình quản lý gói của Ubuntu, apt :
- sudo apt update 
- sudo apt install apache2 
Nếu đây là lần đầu tiên bạn sử dụng sudo trong phiên này, bạn sẽ  được yêu cầu  cung cấp password  của  user  để  xác nhận  bạn có các  quyền  phù hợp để quản lý các gói hệ thống bằng apt . Bạn cũng sẽ  được yêu cầu  xác nhận cài đặt Apache bằng cách nhấn Y , sau đó ENTER .
Sau khi cài đặt xong, bạn cần điều chỉnh cài đặt firewall của bạn để cho phép truy cập HTTP . UFW có các cấu hình ứng dụng khác nhau mà bạn có thể tận dụng để hoàn thành điều đó. Để liệt kê tất cả các cấu hình ứng dụng UFW hiện có, bạn có thể chạy:
- sudo ufw app list 
Bạn sẽ thấy kết quả như thế này:
OutputAvailable applications:   Apache   Apache Full   Apache Secure   OpenSSH Đây là ý nghĩa của mỗi cấu hình này:
-  Apache : Cấu hình này chỉ mở cổng 80( truy cập web bình thường, không được mã hóa).
- Apache Full : Cấu hình này mở cả cổng 80 ( truy cập web bình thường, không được mã hóa) và cổng 443 ( truy cập được mã hóa TLS / SSL).
-  Apache Secure : Cấu hình này chỉ mở cổng 443( truy cập được mã hóa TLS / SSL).
 Hiện tại, tốt nhất là chỉ cho phép các kết nối trên cổng 80 , vì đây là bản cài đặt Apache mới và bạn vẫn chưa có certificate  TLS / SSL được  cấu hình  để cho phép  truy cập HTTP S trên  server   của bạn .
 Để chỉ cho phép lưu lượng trên cổng 80 , hãy sử dụng cấu hình Apache :
- sudo ufw allow in "Apache" 
Bạn có thể xác minh thay đổi bằng:
- sudo ufw status 
OutputStatus: active  To                         Action      From --                         ------      ---- OpenSSH                    ALLOW       Anywhere                                 Apache                     ALLOW       Anywhere                   OpenSSH (v6)               ALLOW       Anywhere (v6)                     Apache (v6)                ALLOW       Anywhere (v6)       Lưu lượng truy cập trên cổng 80 hiện đã được phép thông qua firewall .
Bạn có thể thực hiện kiểm tra tại chỗ ngay lập tức để xác minh mọi thứ đã diễn ra như kế hoạch bằng cách truy cập địa chỉ IP công cộng của server trong trình duyệt web (xem ghi chú dưới tiêu đề tiếp theo để tìm hiểu địa chỉ IP công cộng của bạn là gì nếu không có ):
http://your_server_ip Bạn sẽ thấy trang web Ubuntu 20.04 Apache mặc định, trang này dành cho mục đích thông tin và thử nghiệm. Nó trông giống như sau :
Nếu bạn nhìn thấy trang này, thì web server của bạn hiện đã được cài đặt chính xác và có thể truy cập thông qua firewall của bạn.
Cách tìm địa chỉ IP công cộng của server của bạn
Nếu bạn không biết địa chỉ IP công cộng của server của bạn là gì, bạn có thể tìm thấy nó bằng một số cách. Thông thường, đây là địa chỉ bạn sử dụng để kết nối với server của bạn thông qua SSH.
 Có một số cách khác nhau để thực hiện việc này từ dòng lệnh. Trước tiên, bạn có thể sử dụng các công cụ iproute2 để lấy địa chỉ IP  của bạn   bằng lệnh :
- ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' 
Điều này sẽ cung cấp cho bạn hai hoặc ba dòng trở lại. Chúng đều là địa chỉ chính xác, nhưng máy tính của bạn có thể chỉ sử dụng được một trong số chúng, vì vậy hãy thử từng địa chỉ.
 Một phương pháp thay thế là  sử dụng trình  curl để liên hệ với bên ngoài để cho bạn biết cách họ nhìn thấy  server  của bạn. Điều này được thực hiện bằng cách hỏi một  server  cụ thể địa chỉ IP của bạn là gì:
- curl http://icanhazip.com 
Dù phương pháp bạn sử dụng để lấy địa chỉ IP của bạn , hãy nhập nó vào thanh địa chỉ của trình duyệt web để xem trang Apache mặc định.
Bước 2 - Cài đặt MySQL
Đến đây bạn đã có một web server và đang chạy, bạn cần cài đặt hệ thống database để có thể lưu trữ và quản lý dữ liệu cho trang web của bạn . MySQL là một hệ quản trị database phổ biến được sử dụng trong môi trường PHP.
   , hãy sử dụng apt  để cài đặt phần  mềm này:
- sudo apt install mysql-server 
Khi  được yêu cầu , hãy xác nhận cài đặt  bằng lệnh  Y , sau đó ENTER .
Khi quá trình cài đặt hoàn tất, bạn nên chạy một tập lệnh bảo mật được cài đặt sẵn với MySQL. Tập lệnh này sẽ xóa một số cài đặt mặc định không an toàn và khóa quyền truy cập vào hệ thống database của bạn. Bắt đầu tập lệnh tương tác bằng lệnh:
- sudo mysql_secure_installation 
Điều này sẽ hỏi xem bạn có muốn  cấu hình  VALIDATE PASSWORD PLUGIN .
 Lưu ý: Việc kích hoạt tính năng này chỉ là một lời kêu gọi phán xét. Nếu được bật, password  không phù hợp với tiêu chí đã chỉ định sẽ bị MySQL  từ chối và báo lỗi . Việc tắt tính năng xác thực là an toàn, nhưng bạn phải luôn sử dụng password  mạnh, duy nhất cho thông tin đăng nhập database .
 Trả lời Y có hoặc bất kỳ điều gì khác để tiếp tục mà không cần bật.
VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin?  Press y|Y for Yes, any other key for No: Nếu bạn trả lời  “yes” ,  bạn cần  chọn mức độ xác thực password .  Lưu ý  nếu bạn nhập 2 cho cấp độ mạnh nhất, bạn sẽ nhận được lỗi  khi đặt  bất kỳ password  nào không chứa số, chữ hoa và chữ thường và các ký tự đặc biệt hoặc dựa trên các từ thông dụng trong từ điển.
There are three levels of password validation policy:  LOW    Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary              file  Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1  Dù  bạn có chọn  cài đặt  VALIDATE PASSWORD PLUGIN ,  server  của bạn tiếp theo sẽ yêu cầu bạn chọn và xác nhận password  cho  user  gốc MySQL. Điều này không được nhầm lẫn với gốc hệ thống .  User  gốc database  là  admin-user  có đầy đủ các  quyền  đối với hệ thống database . Mặc dù phương pháp xác thực mặc định cho  user  root  MySQL không cho phép sử dụng password , ngay cả khi một password  được đặt , bạn nên xác định một password  mạnh ở đây như một biện pháp an toàn bổ sung.  Ta  sẽ nói về vấn đề này trong giây lát.
 Nếu bạn đã   cài đặt  xác thực  password , bạn sẽ được hiển thị độ mạnh password  cho password  root  mà bạn vừa nhập và  server  của bạn sẽ hỏi bạn có muốn tiếp tục với password  đó hay không. Nếu bạn hài lòng với password  hiện tại  của bạn , hãy nhập Y cho "có" tại  dấu nhắc :
Estimated strength of the password: 100  Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y Đối với các câu hỏi còn lại, nhấn Y và nhấn ENTER tại mỗi  dấu nhắc . Thao tác này sẽ xóa một số  user  ẩn danh và database  thử nghiệm, vô hiệu hóa đăng nhập root  từ xa và tải các  luật  mới này để MySQL  áp dụng ngay  những thay đổi bạn đã thực hiện.
Khi bạn hoàn tất, hãy kiểm tra xem bạn có thể đăng nhập vào console MySQL hay không bằng lệnh :
- sudo mysql 
Thao tác này sẽ kết nối với  server  MySQL dưới dạng root của  user  database  quản trị, được suy ra bằng cách sử dụng sudo khi chạy lệnh này. Bạn sẽ thấy  kết quả  như thế này:
OutputWelcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 22 Server version: 8.0.19-0ubuntu5 (Ubuntu)  Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.  Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  mysql>  Để thoát khỏi console MySQL, hãy nhập:
- exit 
 Lưu ý  bạn không cần phải cung cấp password  để kết nối  với quyền  là  user  gốc , mặc dù bạn đã xác định password  khi chạy tập lệnh mysql_secure_installation . Đó là vì phương pháp xác thực mặc định cho  user  MySQL quản trị là unix_socket thay vì password . Mặc dù ban đầu điều này có vẻ là một mối lo ngại về bảo mật, nhưng nó làm cho  server  database  an toàn hơn vì  user  duy nhất được phép đăng nhập  với quyền  là  user  MySQL gốc là  user  hệ thống có  quyền  sudo kết nối từ console  hoặc thông qua một ứng dụng chạy với  quyền  như nhau. Về mặt thực tế, điều đó  nghĩa là  bạn sẽ không thể sử dụng  user  root database  quản trị để kết nối từ ứng dụng PHP  của bạn . Đặt password  cho account  MySQL gốc hoạt động như một biện pháp bảo vệ, trong trường hợp phương thức xác thực mặc định được thay đổi từ unix_socket thành password .
Để tăng cường bảo mật, tốt nhất bạn nên cài đặt các account user chuyên dụng với ít quyền mở rộng hơn cho mọi database , đặc biệt nếu bạn có kế hoạch lưu trữ nhiều database trên server của bạn .
 Lưu ý: Tại thời điểm viết bài này, thư viện MySQL PHP mysqlnd không hỗ trợ caching_sha2_authentication , phương thức xác thực mặc định cho MySQL 8. Vì lý do đó, khi tạo  user  database  cho các ứng dụng PHP trên MySQL 8, bạn  cần  thực hiện hãy chắc chắn rằng chúng được  cấu hình  để sử dụng mysql_native_password thay thế.  Ta  sẽ trình bày cách thực hiện điều đó trong Bước 6 .
Server MySQL của bạn hiện đã được cài đặt và bảo mật. Tiếp theo, ta sẽ cài đặt PHP, thành phần cuối cùng trong LAMP .
Bước 3 - Cài đặt PHP
 Bạn đã cài đặt Apache để phân phát nội dung  của bạn  và đã cài đặt MySQL để lưu trữ và quản lý  dữ liệu . PHP là thành phần  cài đặt  của  ta  sẽ xử lý mã để hiển thị nội dung động cho  user  cuối cùng. Ngoài gói php , bạn  cần  php-mysql , một module  PHP cho phép PHP giao tiếp với database  dựa trên MySQL. Bạn cũng  cần  libapache2-mod-php để cho phép Apache xử lý các file  PHP. Các gói PHP cốt lõi sẽ tự động được cài đặt dưới dạng các gói phụ thuộc.
Để cài đặt các gói này, hãy chạy:
- sudo apt install php libapache2-mod-php php-mysql 
Sau khi cài đặt xong, bạn có thể chạy lệnh sau để xác nhận version PHP của bạn :
- php -v 
OutputPHP 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 Đến đây, LAMP của bạn đã hoạt động hoàn toàn, nhưng trước khi bạn có thể kiểm tra cài đặt của bạn bằng tập lệnh PHP, tốt nhất bạn nên cài đặt Server ảo Apache thích hợp để chứa các file và folder trên trang web . Ta sẽ làm điều đó trong bước tiếp theo.
Bước 4 - Tạo server ảo cho trang web
Khi sử dụng web server Apache, bạn có thể tạo server ảo (tương tự như khối server trong Nginx) để đóng gói chi tiết cấu hình và lưu trữ nhiều hơn một domain từ một server duy nhất. Trong hướng dẫn này, ta sẽ cài đặt domain có tên your_domain , nhưng bạn nên thay thế domain này bằng domain của riêng mình .
 Lưu ý : Trong trường hợp bạn đang sử dụng DigitalOcean làm nhà cung cấp dịch vụ lưu trữ DNS, bạn có thể kiểm tra tài liệu sản phẩm của  ta  để biết hướng dẫn chi tiết về cách  cài đặt  domain  mới và trỏ nó đến  server  của bạn.
 Apache trên Ubuntu 20.04 có một khối  server  được bật theo mặc định được cấu hình để cung cấp tài liệu từ folder  /var/www/html . Mặc dù điều này hoạt động tốt cho một trang web, nhưng nó có thể trở nên khó sử dụng nếu bạn đang lưu trữ nhiều trang web. Thay vì sửa đổi /var/www/html ,  ta  sẽ tạo cấu trúc folder  bên trong /var/www cho trang your_domain , giữ nguyên /var/www/html làm folder  mặc định được cung cấp nếu khách hàng không yêu cầu phù hợp với bất kỳ trang web nào khác.
Tạo folder cho your_domain như sau:
- sudo mkdir /var/www/your_domain 
Tiếp theo, chỉ định quyền sở hữu folder  với biến môi trường $USER , biến này sẽ tham chiếu đến  user  hệ thống hiện tại của bạn:
- sudo chown -R $USER:$USER /var/www/your_domain 
Sau đó, mở một file  cấu hình mới trong folder  sites-available của Apache bằng trình soạn thảo dòng lệnh  bạn muốn . Ở đây,  ta  sẽ sử dụng nano :
- sudo nano /etc/apache2/sites-available/your_domain.conf 
Thao tác này sẽ tạo một file trống mới. Dán vào 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     ErrorLog ${APACHE_LOG_DIR}/error.log     CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>  Lưu file   khi bạn hoàn tất. Nếu bạn đang sử dụng nano ,  bạn có thể thực hiện bằng cách  nhấn CTRL+X , sau đó nhấn Y và ENTER .
 Với cấu hình VirtualHost này,  ta  yêu cầu Apache phân phát your_domain bằng cách sử dụng /var/www/ your_domain làm folder  root  của web. Nếu bạn muốn kiểm tra Apache mà không có domain , bạn có thể xóa hoặc  comment  các tùy chọn ServerName và ServerAlias bằng cách thêm ký tự # vào đầu mỗi dòng của tùy chọn.
  Đến đây bạn  có thể sử dụng a2ensite để kích hoạt  server  ảo mới:
- sudo a2ensite your_domain 
Bạn có thể cần vô hiệu hóa trang web mặc định được cài đặt với Apache. Điều này là bắt buộc nếu bạn không sử dụng domain tùy chỉnh, vì trong trường hợp này, cấu hình mặc định của Apache sẽ overrides server ảo của bạn. Để tắt trang web mặc định của Apache, hãy nhập:
- sudo a2dissite 000-default 
Để đảm bảo file cấu hình của bạn không có lỗi cú pháp, hãy chạy:
- sudo apache2ctl configtest 
Cuối cùng, reload Apache để những thay đổi này có hiệu lực:
- sudo systemctl reload apache2 
Trang web mới của bạn hiện đã hoạt động, nhưng root  web /var/www/ your_domain vẫn trống. Tạo index.html ở vị trí đó để  ta  có thể kiểm tra xem  server  ảo có hoạt động như mong đợi hay không:
- nano /var/www/your_domain/index.html 
Đưa nội dung sau vào file này:
<html>   <head>     <title>your_domain website</title>   </head>   <body>     <h1>Hello World!</h1>      <p>This is the landing page of <strong>your_domain</strong>.</p>   </body> </html> Bây giờ hãy truy cập trình duyệt của bạn và truy cập lại domain hoặc địa chỉ IP của server của bạn:
http://server_domain_or_IP Bạn sẽ thấy một trang như thế này:
Nếu bạn thấy trang này, điều đó nghĩa là server ảo Apache của bạn đang hoạt động như mong đợi.
 Bạn có thể để file  này ở vị trí như một trang đích tạm thời cho ứng dụng  của bạn  cho đến khi bạn  cài đặt  index.php để thay thế nó. Khi bạn làm điều đó, hãy nhớ xóa hoặc đổi tên index.html khỏi root  tài liệu của bạn, vì nó sẽ được ưu tiên hơn index.php theo mặc định.
 Lưu ý về DirectoryIndex trên Apache
 Với cài đặt DirectoryIndex mặc định trên Apache, file  có tên index.html sẽ luôn được ưu tiên hơn index.php . Điều này rất hữu ích cho việc  cài đặt  các trang bảo trì trong các ứng dụng PHP, bằng cách tạo một index.html tạm thời chứa thông báo cung cấp thông tin cho khách truy cập. Bởi vì trang này sẽ được ưu tiên hơn trang index.php , sau đó nó sẽ trở thành trang đích cho ứng dụng. Khi quá trình bảo trì kết thúc, index.html được đổi tên hoặc bị xóa khỏi root  tài liệu, đưa trở lại trang  ứng dụng flask  thường.
 Trong trường hợp bạn muốn thay đổi hành vi này, bạn cần phải chỉnh sửa file  /etc/apache2/mods-enabled/dir.conf và sửa đổi thứ tự mà index.php được liệt kê trong chỉ thị DirectoryIndex :
- sudo nano /etc/apache2/mods-enabled/dir.conf 
<IfModule mod_dir.c>         DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> Sau khi lưu file , bạn cần reload Apache để các thay đổi có hiệu lực:
- sudo systemctl reload apache2 
Trong bước tiếp theo, ta sẽ tạo một tập lệnh PHP để kiểm tra xem PHP có được cài đặt và cấu hình chính xác trên server của bạn hay không.
Bước 5 - Kiểm tra PHP processor trên Server Web của bạn
Đến đây bạn đã có một vị trí tùy chỉnh để lưu trữ các file và folder trên trang web của bạn , ta sẽ tạo một tập lệnh thử nghiệm PHP để xác nhận Apache có thể xử lý và xử lý các yêu cầu đối với file PHP.
 Tạo một file  mới có tên info.php bên trong folder  root  web tùy chỉnh của bạn:
- nano /var/www/your_domain/info.php 
Thao tác này sẽ mở một file trống. Thêm văn bản sau, là mã PHP hợp lệ, bên trong file :
<?php phpinfo(); Khi bạn hoàn tất, hãy lưu file .
 Để kiểm tra tập lệnh này, hãy truy cập  trình duyệt web  và truy cập vào domain  hoặc địa chỉ IP của  server , theo sau là tên tập lệnh, trong trường hợp này là info.php :
http://server_domain_or_IP/info.php Bạn sẽ thấy một trang tương tự như sau:
Trang này cung cấp thông tin về server của bạn . Nó rất hữu ích để gỡ lỗi và đảm bảo cài đặt của bạn đang được áp dụng chính xác.
Nếu bạn có thể thấy trang này trong trình duyệt của bạn , thì quá trình cài đặt PHP của bạn đang hoạt động như mong đợi.
 Sau khi kiểm tra thông tin liên quan về  server  PHP của bạn thông qua trang đó, tốt nhất là xóa file  bạn đã tạo vì nó chứa thông tin nhạy cảm về môi trường PHP của bạn - và  server  Ubuntu của bạn. Bạn có thể sử dụng rm  để thực hiện :
- sudo rm /var/www/your_domain/info.php 
Bạn luôn có thể tạo lại trang này nếu sau này cần truy cập lại thông tin.
Bước 6 - Kiểm tra kết nối database từ PHP (Tùy chọn)
Nếu bạn muốn kiểm tra xem PHP có thể kết nối với MySQL và thực thi các truy vấn database hay không, bạn có thể tạo một bảng kiểm tra với dữ liệu giả và truy vấn nội dung của nó từ một tập lệnh PHP. Trước khi có thể làm điều đó, ta cần tạo một database thử nghiệm và một user MySQL mới được cấu hình đúng cách để truy cập nó.
 Tại thời điểm viết bài này, thư viện MySQL PHP mysqlnd không hỗ trợ caching_sha2_authentication , phương thức xác thực mặc định cho MySQL 8.  Ta   cần  tạo một  user  mới với phương thức xác thực mysql_native_password để có thể kết nối với  Database  MySQL từ PHP.
Ta sẽ tạo database có tên example_database và user có tên example_user , nhưng bạn có thể thay thế các tên này bằng các giá trị khác nhau.
Đầu tiên, kết nối với console MySQL bằng account gốc :
- sudo mysql 
Để tạo database mới, hãy chạy lệnh sau từ console MySQL của bạn:
- CREATE DATABASE example_database; 
Đến đây bạn có thể tạo một user mới và cấp cho họ các quyền đầy đủ trên database tùy chỉnh mà bạn vừa tạo.
 Lệnh sau tạo một  user  mới có tên example_user , sử dụng mysql_native_password làm phương thức xác thực mặc định.  Ta  đang xác định password  của  user  này là password , nhưng bạn nên thay thế giá trị này bằng một password  an toàn do chính bạn chọn.
- CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 
Bây giờ  ta  cần cấp quyền cho  user  này trên database  example_database :
- GRANT ALL ON example_database.* TO 'example_user'@'%'; 
Điều này sẽ cung cấp cho user example_user toàn quyền đối với database example_database , đồng thời ngăn user này tạo hoặc sửa đổi database khác trên server của bạn.
Bây giờ thoát khỏi shell MySQL với:
- exit 
Bạn có thể kiểm tra xem user mới có quyền thích hợp hay không bằng cách đăng nhập lại vào console MySQL, lần này bằng cách sử dụng thông tin đăng nhập user tùy chỉnh:
- mysql -u example_user -p 
Lưu ý cờ -p trong lệnh này, nó sẽ nhắc bạn nhập password  được sử dụng khi tạo  user  example_user . Sau khi đăng nhập vào console  MySQL, hãy  xác nhận  bạn có quyền truy cập vào database  example_database :
- SHOW DATABASES; 
Điều này sẽ cung cấp cho bạn kết quả sau:
Output+--------------------+ | Database           | +--------------------+ | example_database   | | information_schema | +--------------------+ 2 rows in set (0.000 sec) Tiếp theo, ta sẽ tạo một bảng thử nghiệm có tên là todo_list . Từ console MySQL, hãy chạy câu lệnh sau:
- CREATE TABLE example_database.todo_list ( 
-     item_id INT AUTO_INCREMENT, 
-     content VARCHAR(255), 
-     PRIMARY KEY(item_id) 
- ); 
Chèn một vài hàng nội dung trong bảng kiểm tra. Bạn có thể cần lặp lại lệnh tiếp theo một vài lần, sử dụng các giá trị khác nhau:
- INSERT INTO example_database.todo_list (content) VALUES ("My first important item"); 
Để xác nhận dữ liệu đã được lưu thành công vào bảng của bạn, hãy chạy:
- SELECT * FROM example_database.todo_list; 
Bạn sẽ thấy kết quả sau:
Output+---------+--------------------------+ | item_id | content                  | +---------+--------------------------+ |       1 | My first important item  | |       2 | My second important item | |       3 | My third important item  | |       4 | and this one more thing  | +---------+--------------------------+ 4 rows in set (0.000 sec)  Sau khi xác nhận bạn có dữ liệu hợp lệ trong bảng kiểm tra của bạn , bạn có thể thoát khỏi console MySQL:
- exit 
 Đến đây bạn  có thể tạo tập lệnh PHP sẽ kết nối với MySQL và truy vấn nội dung của bạn. Tạo một file  PHP mới trong folder  root  web tùy chỉnh của bạn bằng trình soạn thảo  bạn muốn .  Ta  sẽ sử dụng nano cho điều đó:
- nano /var/www/your_domain/todo_list.php 
Tập lệnh PHP sau kết nối với database  MySQL và truy vấn nội dung của bảng todo_list , hiển thị kết quả trong danh sách. Nếu có vấn đề với kết nối database , nó sẽ đưa ra một ngoại lệ.
 Sao chép nội dung này vào tập lệnh todo_list.php của bạn:
<?php $user = "example_user"; $password = "password"; $database = "example_database"; $table = "todo_list";  try {   $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);   echo "<h2>TODO</h2><ol>";    foreach($db->query("SELECT content FROM $table") as $row) {     echo "<li>" . $row['content'] . "</li>";   }   echo "</ol>"; } catch (PDOException $e) {     print "Error!: " . $e->getMessage() . "<br/>";     die(); } Lưu file khi bạn chỉnh sửa xong.
  Đến đây bạn  có thể truy cập trang này trong trình duyệt web  của bạn  bằng cách truy cập vào domain  hoặc địa chỉ IP công cộng được  cấu hình  cho  trang web , theo sau là /todo_list.php :
http://your_domain_or_IP/todo_list.php Bạn sẽ thấy một trang như thế này, hiển thị nội dung bạn đã chèn vào bảng thử nghiệm của bạn :
Điều đó nghĩa là môi trường PHP của bạn đã sẵn sàng kết nối và tương tác với server MySQL của bạn.
Kết luận
Trong hướng dẫn này, ta đã xây dựng một nền tảng linh hoạt để cung cấp các trang web và ứng dụng PHP cho khách truy cập của bạn, sử dụng Apache làm web server và MySQL làm hệ thống database .
Bước tiếp theo ngay lập tức, bạn nên đảm bảo các kết nối đến web server của bạn được bảo mật bằng cách cung cấp chúng qua HTTPS. Để đạt được điều đó, bạn có thể sử dụng Let's Encrypt để bảo mật trang web của bạn bằng certificate TLS / SSL miễn phí.
Các tin liên quan
Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trên Ubuntu 20.042020-04-29
Thiết lập bảo mật server quan trọng với Ubuntu 20.04
2020-04-23
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên CentOS 7
2020-04-21
Cách theo dõi tình trạng server với Checkmk trên Ubuntu 18.04
2020-04-16
Cách cài đặt Linux, Apache, MariaDB, PHP (LAMP) trên CentOS 8 [Quickstart]
2020-04-16
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên CentOS 8 [Quickstart]
2020-04-16
Cách cài đặt server phát nhạc trực tuyến Ampache trên Ubuntu 18.04
2020-04-08
Cách cài đặt Linux, Apache, MariaDB, PHP (LAMP) trên CentOS 8
2020-04-07
Cách cài đặt Linux, Nginx, MariaDB, PHP ( LEMP) trên Debian 10
2020-03-30
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên CentOS 8
2020-02-24
 

