Giới thiệu
LEMP stack là một nhóm phần mềm có thể được sử dụng để phục vụ các trang web động và ứng dụng web được viết bằng PHP. Đây là từ viết tắt mô tả hệ điều hành Linux, với máy chủ web Nginx (phát âm giống như “ Engine-X”). Dữ liệu phụ trợ được lưu trữ trong cơ sở dữ liệu MySQL và quá trình xử lý động do PHP xử lý.
Hướng dẫn này trình bày cách cài đặt LEMP trên máy chủ Ubuntu 22.04. Hệ điều hành Ubuntu đảm nhiệm phần Linux của ngăn xếp. Chúng tôi sẽ mô tả cách thiết lập và chạy các thành phần còn lại.
Yêu cầu
Để hoàn thành hướng dẫn này, bạn sẽ cần quyền truy cập vào máy chủ Ubuntu 22.04 với tư cách là người dùng thông thường, không phải root sudo
và bật tường lửa trên máy chủ của bạn.
Bước 1 – Cài đặt máy chủ web Nginx
Để hiển thị các trang web cho khách truy cập, bạn sẽ sử dụng Nginx, một máy chủ web hiệu suất cao. Bạn sẽ sử dụng trình quản lý gói APT để tải phần mềm này.
Vì đây là lần đầu tiên bạn sử dụng apt
phiên này, hãy bắt đầu bằng cách cập nhật chỉ mục gói máy chủ của bạn:
sudo apt update
Sau đó, chạy apt install
để cài đặt Nginx:
sudo apt install nginx
Khi được nhắc, hãy nhấn Y
và ENTER
để xác nhận rằng bạn muốn cài đặt Nginx. Sau khi quá trình cài đặt hoàn tất, máy chủ web Nginx sẽ hoạt động và chạy trên máy chủ Ubuntu 22.04 của bạn.
Nếu bạn đã ufw
bật tường lửa, như được khuyến nghị trong hướng dẫn thiết lập máy chủ ban đầu của chúng tôi, bạn sẽ cần cho phép kết nối với Nginx. Nginx đăng ký một vài cấu hình ứng dụng UFW khác nhau khi cài đặt. Để kiểm tra cấu hình UFW nào có sẵn, hãy chạy:
sudo ufw app list
OutputAvailable applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Bạn nên kích hoạt cấu hình hạn chế nhất để vẫn cho phép lưu lượng truy cập bạn cần. Vì bạn chưa định cấu hình SSL cho máy chủ của mình trong hướng dẫn này nên bạn sẽ chỉ cần cho phép lưu lượng HTTP thông thường trên cổng 80
.
Kích hoạt tính năng này bằng cách chạy như sau:
sudo ufw allow 'Nginx HTTP'
Bạn có thể xác minh thay đổi bằng cách kiểm tra trạng thái:
sudo ufw status
Đầu ra này hiển thị rằng lưu lượng HTTP hiện được cho phép:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Với quy tắc tường lửa mới được thêm vào, bạn có thể kiểm tra xem máy chủ có hoạt động hay không bằng cách truy cập tên miền hoặc địa chỉ IP public của máy chủ trong trình duyệt web của bạn.
Viết địa chỉ mà bạn nhận được trong trình duyệt web của mình và nó sẽ đưa bạn đến trang đích mặc định của Nginx:
http://server_domain_or_IP
Nếu bạn nhận được trang này, điều đó có nghĩa là bạn đã cài đặt thành công Nginx và kích hoạt lưu lượng HTTP cho máy chủ web của mình.
Bước 2 – Cài đặt MySQL
Bây giờ bạn đã thiết lập và chạy máy chủ web, bạn cần cài đặt hệ thống cơ sở dữ liệu để lưu trữ và quản lý dữ liệu cho trang web của mình. MySQL là một hệ thống quản lý cơ sở dữ liệu phổ biến được sử dụng trong môi trường PHP.
Một lần nữa, hãy sử dụng apt
để tải và cài đặt phần mềm này:
sudo apt install mysql-server
Khi được nhắc, hãy xác nhận cài đặt bằng cách nhấn Y
, rồi nhấn ENTER
.
Khi quá trình cài đặt hoàn tất, bạn nên chạy 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 cơ sở dữ liệu của bạn. Bắt đầu tập lệnh tương tác bằng cách chạy lệnh sau:
sudo mysql_secure_installation
Bạn sẽ được nhắc bằng một câu hỏi hỏi xem bạn có muốn định cấu hình tệp VALIDATE PASSWORD PLUGIN
.
Lưu ý: Nếu được bật, mật khẩu không phù hợp với tiêu chí đã chỉ định sẽ bị MySQL từ chối kèm theo lỗi. Việc tắt xác thực là an toàn nhưng bạn phải luôn sử dụng mật khẩu mạnh, duy nhất cho thông tin xác thực cơ sở dữ liệu.
Trả lời Y
có hoặc bất kỳ điều gì khác để tiếp tục mà không bật:
OutputVALIDATE PASSWORD COMPONENT 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 component?
Press y|Y for Yes, any other key for No:
Nếu trả lời “Yes”, bạn sẽ được yêu cầu chọn mức xác thực mật khẩu. Hãy nhớ rằng nếu bạn nhập 2
ở cấp độ mạnh nhất, bạn sẽ gặp lỗi khi cố gắng đặt bất kỳ mật khẩu nào không chứa số, chữ hoa và chữ thường và ký tự đặc biệt:
OutputThere 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
Bất kể bạn có chọn thiết lập hay không VALIDATE PASSWORD PLUGIN
, máy chủ của bạn sẽ yêu cầu bạn chọn và xác nhận mật khẩu cho người dùng root MySQL . Đừng nhầm lẫn điều này với root hệ thống . Người dùng root database là người dùng quản trị có đầy đủ đặc quyền đối với hệ thống cơ sở dữ liệu. Mặc dù phương thức xác thực mặc định cho người dùng root MySQL không cần sử dụng mật khẩu, ngay cả khi mật khẩu được đặt , bạn vẫn nên xác định mật khẩu mạnh ở đây như một biện pháp an toàn bổ sung.
Nếu bạn bật xác thực mật khẩu, bạn sẽ được hiển thị độ mạnh mật khẩu cho mật khẩu gốc bạn đã nhập và máy chủ của bạn sẽ hỏi bạn có muốn tiếp tục với mật khẩu đó không. Nếu bạn hài lòng với mật khẩu hiện tại của mình, hãy nhấn Y
“có” tại dấu nhắc:
OutputEstimated 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, hãy nhấn Y
và nhấn ENTER
phím ở mỗi dấu nhắc. Thao tác này sẽ xóa một số người dùng ẩn danh và cơ sở dữ liệu thử nghiệm, vô hiệu hóa thông tin đăng nhập root từ xa và tải các quy tắc mới này để MySQL ngay lập tức tôn trọng 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 bảng điều khiển MySQL hay không:
sudo mysql
Điều này sẽ kết nối với máy chủ MySQL với tư cách là người dùng cơ sở dữ liệu quản trị root. Bạn sẽ nhận được kết quả đầu ra sau:
OutputWelcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.28-0ubuntu4 (Ubuntu)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
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 bảng điều khiển MySQL, hãy viết như sau:
exit
Lưu ý rằng bạn không cần cung cấp mật khẩu để kết nối với tư cách là người dùng root , mặc dù bạn đã xác định mật khẩu khi chạy mysql_secure_installation
. Điều này là do, khi được cài đặt trên Ubuntu, phương thức xác thực mặc định cho người dùng MySQL quản trị là auth_socket
, thay vì phương thức sử dụng mật khẩu. Điều này ban đầu có vẻ giống như một mối lo ngại về bảo mật, nhưng nó làm cho máy chủ cơ sở dữ liệu an toàn hơn vì người dùng duy nhất được phép đăng nhập với tư cách là người dùng MySQL gốc là những người dùng hệ thống có đặc quyền sudo
kết nối từ bảng điều khiển hoặc thông qua một ứng dụng chạy với cùng đặc quyền . Trong thực tế, điều đó có nghĩa là bạn sẽ không thể sử dụng người dùng root cơ sở dữ liệu quản trị để kết nối từ ứng dụng PHP của mình.
Máy chủ MySQL của bạn hiện đã được cài đặt và bảo mật. Tiếp theo, bạn sẽ cài đặt PHP, thành phần cuối cùng trong ngăn xếp LEMP.
Bước 3 – Cài đặt PHP
Trong khi Apache nhúng trình thông dịch PHP vào mỗi yêu cầu, Nginx yêu cầu một chương trình bên ngoài để xử lý việc xử lý PHP và đóng vai trò là cầu nối giữa chính trình thông dịch PHP và máy chủ web. Điều này cho phép hiệu suất tổng thể tốt hơn ở hầu hết các trang web dựa trên PHP, nhưng nó yêu cầu cấu hình bổ sung. Bạn sẽ cần cài đặt php8.1-fpm
, viết tắt của “PHP fastCGI process manager” và sử dụng phiên bản PHP hiện tại, để yêu cầu Nginx chuyển các yêu cầu PHP tới phần mềm này để xử lý. Ngoài ra, bạn sẽ cần php-mysql
một mô-đun PHP cho phép PHP giao tiếp với cơ sở dữ liệu dựa trên MySQL. Các gói PHP lõi sẽ tự động được cài đặt dưới dạng phụ thuộc.
Để cài đặt các gói php8.1-fpm
và php-mysql
, hãy chạy:
sudo apt install php8.1-fpm php-mysql
Khi được nhắc, hãy nhấn Y
và ENTER
để xác nhận cài đặt.
Bây giờ bạn đã cài đặt các thành phần PHP của mình. Tiếp theo, bạn sẽ định cấu hình Nginx để sử dụng chúng.
Bước 4 – Định cấu hình Nginx để sử dụng Bộ xử lý PHP
Khi sử dụng máy chủ web Nginx, chúng ta có thể tạo các khối máy chủ (tương tự như máy chủ ảo trong Apache) để đóng gói chi tiết cấu hình và lưu trữ nhiều miền trên một máy chủ. Trong hướng dẫn này, chúng tôi sẽ sử dụng your_domain làm tên miền mẫu.
Trên Ubuntu 22.04, Nginx có một khối máy chủ được bật theo mặc định và được định cấu hình để phân phát các tài liệu ngoài thư mục tại /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ó quản lý nếu bạn lưu trữ nhiều trang web. Thay vì sửa đổi /var/www/html
, chúng tôi sẽ tạo cấu trúc thư mục bên trong /var/www
cho trang web your_domain , giữ /var/www/html
nguyên làm thư mục mặc định sẽ được cung cấp nếu yêu cầu của khách hàng không khớp với bất kỳ trang web nào khác.
Tạo thư mục web gốc cho your_domain như sau:
sudo mkdir /var/www/your_domain
Tiếp theo, gán quyền sở hữu thư mục với $USER
biến môi trường, biến này sẽ tham chiếu đến người dùng hệ thống hiện tại của bạn:
sudo chown -R $USER:$USER /var/www/your_domain
Sau đó, mở tệp cấu hình mới trong sites-available
thư mục của Nginx bằng trình soạn thảo dòng lệnh ưa thích của bạn. Ở đây, chúng ta sẽ sử dụng nano
:
sudo nano /etc/nginx/sites-available/your_domain
Điều này sẽ tạo ra một tập tin trống mới. Chèn cấu hình cơ bản sau: /etc/nginx/sites-available/your_domain
server {
listen 80;
server_name your_domain www.your_domain;
root /var/www/your_domain;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Dưới đây là chức năng của từng lệnh và khối vị trí này:
listen
— Xác định port Nginx sẽ lắng nghe. Trong trường hợp này, nó sẽ lắng nghe trên port80
, port mặc định cho HTTP.root
— Xác định thư mục gốc của tài liệu nơi lưu trữ các tệp được cung cấp bởi trang web này.index
— Xác định thứ tự Nginx sẽ ưu tiên các tệp chỉ mục cho trang web này. Thực tế phổ biến làindex.html
các tệp có mức độ ưu tiên cao hơnindex.php
các tệp để cho phép thiết lập nhanh chóng trang đích bảo trì trong các ứng dụng PHP. Bạn có thể điều chỉnh các cài đặt này để phù hợp hơn với nhu cầu ứng dụng của mình.server_name
— Xác định tên miền và/hoặc địa chỉ IP nào mà khối máy chủ này sẽ phản hồi. Trỏ lệnh này tới tên miền hoặc địa chỉ IP public của máy chủ của bạn.location /
— Khối vị trí đầu tiên bao gồm mộttry_files
lệnh kiểm tra sự tồn tại của các tệp hoặc thư mục khớp với yêu cầu URL. Nếu Nginx không thể tìm thấy tài nguyên thích hợp, nó sẽ trả về lỗi 404.location ~ \.php$
— Khối vị trí này xử lý quá trình xử lý PHP thực tế bằng cách trỏ Nginx vàofastcgi-php.conf
tệp cấu hình vàphp8.1-fpm.sock
tệp khai báo socket nào được liên kết vớiphp8.1-fpm
.location ~ /\.ht
— Khối vị trí cuối cùng xử lý.htaccess
các tệp mà Nginx không xử lý. Bằng cách thêmdeny all
lệnh này, nếu bất kỳ.htaccess
tệp nào tình cờ tìm được đường vào thư mục gốc của tài liệu, chúng sẽ không được cung cấp cho khách truy cập.
Khi bạn chỉnh sửa xong, hãy lưu và đóng tệp.
Kích hoạt cấu hình của bạn bằng cách liên kết đến tệp cấu hình từ sites-enabled
thư mục của Nginx:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Sau đó, hủy liên kết tệp cấu hình mặc định khỏi /sites-enabled/
thư mục:
sudo unlink /etc/nginx/sites-enabled/default
Lưu ý : Nếu cần khôi phục cấu hình mặc định, bạn có thể thực hiện bằng cách tạo lại liên kết tượng trưng, như sau:
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
Điều này sẽ yêu cầu Nginx sử dụng cấu hình vào lần tải lại tiếp theo. Bạn có thể kiểm tra cấu hình của mình để tìm lỗi cú pháp bằng cách chạy như sau:
sudo nginx -t
Nếu có bất kỳ lỗi nào được báo cáo, hãy quay lại tệp cấu hình của bạn để xem lại nội dung trước khi tiếp tục.
Khi bạn đã sẵn sàng, hãy tải lại Nginx để áp dụng các thay đổi:
sudo systemctl reload nginx
Trang web mới của bạn hiện đang hoạt động, nhưng web root vẫn trống. Tạo một tệp ở vị trí đó để bạn có thể kiểm tra xem khối máy chủ mới của bạn có hoạt động như mong đợi hay không: /var/www/your_domain/index.html
nano /var/www/your_domain/index.html
Bao gồm nội dung sau trong tập tin 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 tên miền hoặc địa chỉ IP của máy chủ của bạn, như được liệt kê trong server_name
lệnh trong tệp cấu hình khối máy chủ của bạn:
http://server_domain_or_IP
Bạn sẽ nhận được một trang như sau:
Nếu bạn nhận được trang này, điều đó có nghĩa là máy chủ Nginx của bạn đang hoạt động như mong đợi.
Bạn có thể để tệp này làm trang đích tạm thời cho ứng dụng của mình cho đến khi bạn thiết lập tệp index.php
để thay thế nó. Khi bạn thực hiện việc đó, hãy nhớ xóa hoặc đổi tên tệp khỏi thư mục gốc tài liệu của bạn, vì theo mặc định, tệp index.html
này sẽ được ưu tiên hơn tệp.index.php
Ngăn xếp LEMP của bạn hiện đã được định cấu hình đầy đủ. Trong bước tiếp theo, bạn sẽ tạo một tập lệnh PHP để kiểm tra xem Nginx trên thực tế có thể xử lý .php
các tệp trong trang web mới được định cấu hình của bạn hay không.
Bước 5 –Kiểm tra PHP với Nginx
LEMP stack bây giờ sẽ được thiết lập hoàn toàn. Bạn có thể kiểm tra nó để xác thực rằng Nginx có thể xử lý chính xác .php
các tệp cho bộ xử lý PHP của bạn.
Bạn có thể thực hiện việc này bằng cách tạo tệp PHP thử nghiệm trong thư mục gốc của mình. Mở một tệp mới có tên info.php
trong thư mục gốc của bạn bằng trình soạn thảo văn bản ưa thích của bạn:
nano /var/www/your_domain/info.php
Thêm các dòng sau vào tập tin mới. Đây là mã PHP hợp lệ sẽ trả về thông tin về máy chủ của bạn: /var/www/your_domain/info.php
<?php
phpinfo();
Khi bạn hoàn tất, hãy lưu và đóng tệp.
Bây giờ bạn có thể truy cập trang này trong trình duyệt web bằng cách truy cập tên miền hoặc địa chỉ IP public mà bạn đã thiết lập trong tệp cấu hình Nginx của mình, sau đó là /info.php
:
http://server_domain_or_IP/info.php
Bạn sẽ nhận được một trang web chứa thông tin chi tiết về máy chủ của bạn:
Sau khi kiểm tra thông tin liên quan về máy chủ PHP của bạn thông qua trang đó, tốt nhất bạn nên xóa tệp bạn đã tạo vì nó chứa thông tin nhạy cảm về môi trường PHP và máy chủ Ubuntu của bạn. Bạn có thể sử dụng rm
để xóa tập tin đó:
sudo rm /var/www/your_domain/info.php
Bạn luôn có thể tạo lại tệp này nếu sau này bạn cần.
Bước 6 – Kiểm tra kết nối cơ sở dữ liệu 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 hiện các truy vấn cơ sở dữ liệu 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ừ tập lệnh PHP. Trước khi làm như vậy, bạn cần tạo cơ sở dữ liệu thử nghiệm và người dùng MySQL mới được cấu hình đúng cách để truy cập cơ sở dữ liệu đó.
Lưu ý: Một số bản phát hành cũ hơn của thư viện MySQL PHP gốc mysqlnd
không hỗ trợ caching_sha2_authentication
, phương thức xác thực mặc định cho MySQL 8, bạn có thể cần đảm bảo rằng chúng được định cấu hình để sử dụng mysql_native_password
thay thế.
Chúng ta sẽ tạo một cơ sở dữ liệu có tên example_database và một người dùng có tên example_user nhưng bạn có thể thay thế những tên này bằng các giá trị khác.
Đầu tiên, kết nối với bảng điều khiển MySQL bằng tài khoản root :
sudo mysql
Để tạo cơ sở dữ liệu mới, hãy chạy lệnh sau từ bảng điều khiển MySQL của bạn:
CREATE DATABASE example_database;
Bây giờ bạn có thể tạo người dùng mới và cấp cho họ đầy đủ đặc quyền trên cơ sở dữ liệu tùy chỉnh mà bạn đã tạo.
Lệnh sau tạo một người dùng 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. Chúng tôi đang xác định mật khẩu của người dùng này là password
, nhưng bạn nên thay thế giá trị này bằng mật khẩu an toàn do chính bạn chọn.
CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
Bây giờ chúng ta cần cấp quyền cho người dùng này trên example_database
cơ sở dữ liệu:
GRANT ALL ON example_database.* TO 'example_user'@'%';
Điều này sẽ cung cấp cho người dùng example_user toàn quyền đối với cơ sở dữ liệu example_database đồng thời ngăn người dùng này tạo hoặc sửa đổi các cơ sở dữ liệu khác trên máy chủ của bạn.
Bây giờ hãy thoát khỏi shell MySQL bằng lệnh sau:
exit
Bạn có thể kiểm tra xem người dùng mới có quyền thích hợp hay không bằng cách đăng nhập lại vào bảng điều khiển MySQL, lần này bằng thông tin xác thực người dùng tùy chỉnh. Hãy lưu ý -p
trong lệnh này, nó sẽ nhắc bạn nhập mật khẩu được sử dụng khi tạo người dùng example_user :
mysql -u example_user -p
Sau khi đăng nhập vào bảng điều khiển MySQL, hãy xác nhận rằng bạn có quyền truy cập vào cơ sở dữ liệu example_database :
SHOW DATABASES;
Output:
Output+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)
Tiếp theo, chúng ta sẽ tạo một bảng thử nghiệm có tên todo_list . Từ bảng điều khiển 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 dòng nội dung vào bảng kiểm tra. Bạn có thể muố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 rằng 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;
Đầu ra của bạn sẽ hiển thị như 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 rằng bạn có dữ liệu hợp lệ trong bảng thử nghiệm, bạn có thể thoát khỏi bảng điều khiển MySQL:
exit
Bây giờ 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 tệp PHP mới trong thư mục gốc web tùy chỉnh của bạn bằng trình chỉnh sửa ưa thích của bạn:
nano /var/www/your_domain/todo_list.php
Tập lệnh PHP sau đây kết nối với cơ sở dữ liệu MySQL và truy vấn nội dung của bảng todo_list
, hiển thị kết quả dưới dạng danh sách. Nếu có vấn đề với kết nối cơ sở dữ liệu, nó sẽ đưa ra một ngoại lệ.
Thêm nội dung sau vào todo_list.php
tập lệnh 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 và đóng tệp khi bạn chỉnh sửa xong.
Bây giờ bạn có thể truy cập trang này trong trình duyệt web của mình bằng cách truy cập tên miền hoặc địa chỉ IP công cộng được định cấu hình cho trang web của bạn, sau đó /todo_list.php
:
http://server_domain_or_IP/todo_list.php
Bạn sẽ nhận được một trang như sau, hiển thị nội dung bạn đã chèn vào bảng thử nghiệm của mình:
Điều đó có 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 máy chủ MySQL của bạn.
Phần kết luận
Trong hướng dẫn này, bạn đã xây dựng một nền tảng linh hoạt để phục vụ các trang web và ứng dụng PHP cho khách truy cập, sử dụng Nginx làm máy chủ web và MySQL làm hệ thống cơ sở dữ liệu.
This Post Has One Comment