Thứ tư, 29/04/2020 | 00:00 GMT+7

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:

Output
Available 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
Output
Status: 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 :

Ubuntu 20.04 Apache mặc định

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:

Output
Welcome 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
Output
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

Đế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:

/etc/apache2/sites-available/your_domain.conf
<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 YENTER .

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 ServerNameServerAlias 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:

/var/www/your_domain/index.html
<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:

Kiểm tra  server  ảo Apache

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
/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 :

/var/www/your_domain/info.php
<?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:

Thông tin PHP của Ubuntu 20.04

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:

/var/www/your_domain/todo_list.php
<?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 :

Ví dụ về danh sách việc cần làm trong PHP

Đ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í.


Tags:

Các tin liên quan

Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trên Ubuntu 20.04
2020-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, Nginx, MySQL, PHP (LEMP) trên CentOS 8 [Quickstart]
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 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