Ở bài viết này mình sẽ Hướng dẫn cài đặt LEMP Stack trên Ubuntu 22.04, với các phần thường sử dụng nhất trên LEMP Stack. Ubuntu 22.04 Ubuntu 20.04, Ubuntu 18.04.. đều tương tự như nhau nhé.
Với CenOS 7 8 9.. thì bạn tham khảo thêm bài này: https://hoanggiangnam.com/cai-dat-lemp-tren-centos-nginx-mariadb-10-5-php-7-4-phpmyadmin/
I. LEMP Stack là gì?
LEMP là từ viết tắt của Linux, Nginx, MySQL, PHP(hay Perl hoặc Python), để tạo nên một môi trường máy chủ Web có khả năng chứa và phân phối các trang Web động. Bốn phần mềm nói trên tạo thành một gói phần mềm LEMP.
Các thành phần cài đặt LEMP.
- NGINX làm webserver
- MariaDB
- PHP (sử dụng phiên bản 7.4 trong bài viết này)
- phpMyAdmin
II. Cấu hình tối thiểu
1 – Yêu cầu cấu hình tối thiểu Server/VPS.
Để cài đặt LEMP, việc đầu tiên bạn cần làm là SSH hoặc truy cập VPS hoặc máy chủ của bạn với quyền root trước.
Và cấu hình đề nghị là VPS 1core – 2gb ram – 20gb SSD. Với cấu hình này thì bạn cấu hình thêm redis hoặc memcache + SWAP để có thể chạy 2-3 website có lượng truy cập tầm 1-2k online.
2 – Cập nhật hệ thống.
Bạn nên cập nhật các gói trên hệ thống lên bản mới nhất trước khi cài đặt. Và để cập nhật bạn hãy sử dụng lệnh sau
root@ubuntu:~# apt-get update && apt-get upgrade -y
Và cài đặt thêm mấy tool cần thiết:
apt-get install nano net-tools wget zip unzip -y
III – Cài đặt NGINX
Có nhiều cách để cài đặt NGINX. Và ở bài viết này mình sẽ cài đặt trực tiếp bằng lệnh apt-get install
root@ubuntu:~# apt-get install nginx -y
Tiếp theo bạn sử dụng 3 lệnh sau để kích hoạt và khởi động nginx.
root@ubuntu:~# systemctl enable nginx
#Bật khởi động cùng hệ thống
root@ubuntu:~# systemctl start nginx
#Khởi động nginx
root@ubuntu:~# systemctl status nginx
#Kiểm tra trạng thái
Để kiểm tra phiên bản nginx được cài vào là phiên bản bao nhiêu bạn có thể sử dụng lệnh dưới để kiểm tra.:
nginx -v
root@ubuntu:~# nginx -vnginx version: nginx/1.18.0 (Ubuntu)
Bây giờ bạn hãy truy cập IP trên trình duyệt. Nếu hiện như ảnh bên dưới là đã cài NGINX thành công.
Mở port 80, 443
Trường hợp nếu hệ thống bạn có cài firewall. Bạn hãy mở port 80 trên firewall để truy cập.
ufw allow 'Nginx HTTP'
Đối với iptables:
root@ubuntu:~# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
root@ubuntu:~# iptables -I INPUT -p tcp --dport 443 -j ACCEPT
IV – Cài đặt máy chủ cơ sở dữ liệu MariaDB
Gỡ MariaDB hiện tại trên Ubuntu:
apt-get remove mariadb-server
Ở đây mình sử dụng MariaDB làm máy chủ cơ sở dữ liệu. Để cài đặt bạn sử dụng lệnh sau:
root@ubuntu:~# apt-get install mariadb-server mariadb-client -y
Cài xong bạn kiểm tra dịch vụ cũng như bật khởi động cùng hệ thống.
root@ubuntu:~# systemctl enable mariadb
#Bật khởi động
root@ubuntu:~# systemctl start mariadb
#Khởi động dịch vụ
root@ubuntu:~# systemctl status mariadb
#Kiểm tra dịch vụ
● mariadb.service - MariaDB 10.6.7 database serverLoaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2022-05-13 15:09:50 +07; 4min 28s agoDocs: man:mariadbd(8)https://mariadb.com/kb/en/library/systemd/Main PID: 3220 (mariadbd)Status: "Taking your SQL requests now..."Tasks: 8 (limit: 1034)Memory: 60.1MCPU: 575msCGroup: /system.slice/mariadb.service└─3220 /usr/sbin/mariadbd
Cấu hình MariaDB
Chạy lệnh dưới để bắt đầu và mới đầu thì chưa có password nên nhấn Enter khi nó hỏi password nhé:
root@ubuntu:~# mysql_secure_installation
Switch to unix_socket authentication [Y/n] nChange the root password? [Y/n] y #Thay đổi mật khẩu root mariaDBNew password:Re-enter new password:Remove anonymous users? [Y/n] yDisallow root login remotely? [Y/n] yRemove test database and access to it? [Y/n] yReload privilege tables now? [Y/n] y
Kiểm tra phiên bản MariaDB
root@ubuntu:~# mariadb --version
mariadb Ver 15.1 Distrib 10.6.7-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
V – Cài đặt PHP
Cài phiên bản chỉ định là PHP 7.4:
apt install php7.4-fpm php7.4-common php7.4-mbstring php7.4-xmlrpc php7.4-soap php7.4-gd php7.4-xml php7.4-intl php7.4-mysql php7.4-cli php7.4-zip php7.4-curl
root@ubuntu:~# systemctl enable php7.4-fpm
#Bật khởi động cùng hệ thống
root@ubuntu:~# systemctl start php7.4-fpm
#Khởi động PHP
root@ubuntu:~# systemctl status php7.4-fpm
#Kiểm tra PHP
Kiểm tra lại phiên bản PHP php -v
Hoặc cài phiên bản PHP chỉ định là PHP8.1 thì bạn thay số tương ứng vào lệnh trên nhé!
Bây giờ ta đã cài đặt đủ các thành phần của LEMP stack. Nhưng vẫn cần phải thực hiện một số thay đổi về cấu hình để yêu cầu Nginx sử dụng PHP để xử lý nội dung.
Backup file config default: cp -a /etc/nginx/sites-available/default{,.orig}
Thay lại server_name _; thành domain của bạn nhé. ví dụ: server_name hoanggiangnam.com;
Mở thư mục: /etc/nginx/sites-available/
. Trong ví dụ này, tên máy chủ được đặt là hoanggiangnam.com
nano /etc/nginx/sites-available/default
Thay toàn bộ nội dung bên trong đó bằng nội dung sau:
server { listen 80; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /.ht { deny all; }}
Trong đó:
listen
: Xác định cổng Nginx lắng nghe. Trong trường hợp này là cổng 80 (mặc định của HTTP)root
: Xác định gốc lưu trữ các tệp của trang webindex
: thứ tự ưu tiên các file cấu hình, nếu chúng tồn tạiserver_name
: Xác định khối máy chủ nào được sử dụng. Nó trỏ đến tên miền hoặc IP public của bạnlocation /
: Kiểm tra sự tồn tại của các tệp khớp vớiuri
. Nếu nginx không thể tìm thấy tệp thích hợp, nó sẽ trả về 404location ~ .php$
: Khai báo nơi xử lý PHP bằng cách trỏ Nginx vào tệp cấu hìnhfastcgi-php.conf
và tệpphp7.4-fpm.sock
location ~ /.ht
: Xử lí các tệp.htaccess
mà Nginx không xử lí. Bằng cáchdeny all
chỉ thị, nếu bất kì tệp.htaccess
xảy ra để tìm đường vào tài liệu gốc thì chúng sẽ không được phục vụ cho khách truy cập.
Kiểm tra xem file cấu hình mới có lỗi gì không:
nginx -t
Nếu không có lỗi gì sẽ có thông báo tương tự như sau.
nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
Nếu có lỗi thì sẽ có thông báo lỗi.
Reload Nginx:
systemctl reload nginx
Tạo file info.php để check phiên bản ở /var/www/html/
nano /var/www/html/info.php
Thêm vào nội dung sau:
<?phpphpinfo();?>
Gõ ip_vps vào thanh URL trong trình duyệt:
<ip_vps>/info.php
Khi xuất hiện màn hình tương tự như hình có nghĩa là đã cài PHP thành công.
Sau khi cài đặt xong, bạn nên xóa file info.php
, vì nó có thể cho người dùng trái phép một số gợi ý về cấu hình của trang web và giúp họ cố gắng đột nhập.
rm -rf /var/www/html/info.php
Trỏ domain của bạn về ip nữa là chạy web được rồi đấy.
Thư mục chính để chứa code là /var/www/html/
Nếu bạn muốn thêm nhiều tên miền vào thì cần tạo vHost bên dưới.
Cấu hình vhost – thêm tên miền
Tạo thư mực /home/hoanggiangnam.com/public_html để chứa mã nguồn website. Ở đây mình sẽ tạo ở thư mục HOME/ cho dễ sử dụng nhé:
mkdir -p /home/hoanggiangnam.com/public_html
Cấu hình nginx – nginx.conf
Đường dẫn các file cấu hình nginx ở thư mục này: /etc/nginx/sites-available/
Tạo file cấu hình nginx cho tên miền hoanggiangnam.com tại /etc/nginx/sites-available/hoanggiangnam.com bằng lệnh:
nano /etc/nginx/sites-available/hoanggiangnam.com
Nội dung:
server { listen 80; listen [::]:80; root /home/hoanggiangnam.com/public_html; index index.php index.html index.htm index.nginx-debian.html; server_name hoanggiangnam.com www.hoanggiangnam.com; location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location / { # try_files $uri $uri/ =404; # try_files $uri $uri/ /forums/index.php?$args; # WordPress Permalinks nếu mã nguồn bạn để trong thư mục forums/sub-folder thì bật dòng này nhá. try_files $uri $uri/ /index.php?$args; }}
Nhớ thay tên miền của bạn vào và sửa lại phiên bản php ở dòng này fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
Tạo một symbolic link để liên kết file /etc/nginx/sites-available/hoanggiangnam.com sang thư mục /etc/nginx/sites-enabled/. Nginx sẽ đọc các file cấu hình tại thư mục /etc/nginx/sites-enabled/
mỗi khi khởi động.
# ln -s /etc/nginx/sites-available/hoanggiangnam.com /etc/nginx/sites-enabled/
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
Khởi động lại Web Server bằng lệnh
# systemctl restart nginx
Chmod – Phân quyền thư mục
# chown -R www-data:www-data /home/*
— đây là chmod toàn bộ thư mục có trong /home/
# chown -R www-data:www-data /home/hoanggiangnam.com
Tạo một file index.html chứa nội dung sau:nano /home/hoanggiangnam.com/public_html/index.html
<html> <body> <center><h1>Hello hoanggiangnam.com</h1></center> </body></html>
Vào domain vừa thêm để check xem web đã sẵn sàng chưa nào.
Thêm một tên miền khác vào nữa thì lặp lại các bước tạo VHOST
Đến đây thì bạn có thể tạo Database để chạy web được rồi.
Lệnh tạo Database nhanh
Tạo Database, User, Password bằng vài lệnh đơn giản như sau:
# mysql -u root
# mysql -u root -p
- Tạo Database
MariaDB [(none)]>CREATE DATABASE tendb;
- Tạo User
MariaDB [(none)]>CREATE USER 'tenbuser'@'localhost' IDENTIFIED BY 'Password12345678';
- Gán quyền User Database
MariaDB [(none)]>GRANT ALL PRIVILEGES ON tendb.* TO 'tenbuser'@'localhost';
- Reload all the privileges
MariaDB [(none)]>FLUSH PRIVILEGES;
- Show Database
MariaDB [(none)]>show databases;
- Thoát MariaDB
MariaDB [(none)]>exit
Sau khi upload mã nguồn vào thư mục /var/www/html thì nhứ chmod lại nhé
# chown -R www-data:www-data /home/*
— đây là chmod toàn bộ thư mục có trong /home/
# chown -R www-data:www-data /home/hoanggiangnam.com
VI – Cài đặt phpMyAdmin
phpMyAdmin là ứng dụng dùng để quản lý cơ sở dữ liệu dưới dạng giao diện, thông qua phpMyAdmin sẽ giúp bạn quản lý các database trực quan hơn.
1. Cài đặt phpMyAdmin
Hãy bắt đầu bằng cách cập nhật danh sách gói và cài đặt phpMyAdmin cho Nginx trên Ubuntu 20.04/20.10.
root@ubuntu:~#
apt-get install phpmyadmin -y
Sau khi bạn chạy lệnh sẽ xuất hiện một hộp thoại hỏi bạn chọn webserver để cài. Nếu webserver bạn không có ở đây, bạn không tick và nhấn Tab
để di chuyển xuống chữ OK
để cài. (cũng có thể nhấn ESC để tiếp tục cài)
Sau đó việc cài đặt sẽ tiếp tục và xuất hiện thêm một hộp thoại với thông tin người dùng với tên phpmyadmin
bạn chọn Yes.
Sau đó đặt mật khẩu cho phpmyadmin
. Bạn nhập mật khâu xong bấm tab để di chuyển xuống nút OK
Nhập lại mật khẩu một lần nữa để xác nhận.
Quá trình cài đặt hoàn tất, một cơ sở dữ liệu mới có tên là phpmyadmin sẽ được tạo và người dùng cơ sở dữ liệu phpmyadmin có các đặc quyền cần thiết để quản lý cơ sở dữ liệu này. Bạn có thể đăng nhập vào MariaDB và kiểm tra những đặc quyền mà người dùng phpmyadmin đã được cấp.
mysql -u root
MariaDB [(none)]> show grants for phpmyadmin@localhost;
2. Tạo liên kết tượng trưng
Để Nginx phục vụ chính xác các tệp phpMyAdmin, chúng ta phải tạo một liên kết tượng trưng từ thư mục phpMyAdmin /usr/share/phpmyadmin
đến thư mục gốc của tài liệu Nginx.
Vị trí mặc định của gốc tài liệu Nginx trong Ubuntu 20.04/20.10 phải là /var/www/html/
, mặc dù nó có thể khác tùy thuộc vào thiết lập của bạn. Nếu bạn đã làm theo hướng dẫn trước đây để thiết lập nhiều miền cho Nginx , thư mục gốc của bạn có thể nằm ở đâu đó như /home/phpyadmin.hoanggiangnam.com/public_html
.
Khi bạn đã xác nhận gốc tài liệu của mình, hãy tạo một liên kết tượng trưng từ thư mục phpMyAdmin đến gốc tài liệu của bạn. Ở đây tôi sẽ giả định IP gốc của bạn là trỏ về /var/www/html/
và tôi sẽ chỉ cần thêm phpmyadmin
vào cuối của nó.
Điều này sẽ cho phép tôi truy cập phpMyAdmin tại ipvps/phpmyadmin
.
ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
— dạng ipvps/phpmyadmin
ln -s /usr/share/phpmyadmin /home/phpyadmin.hoanggiangnam.com/public_html/phpmyadmin
— Dạng này là https://phpyadmin.hoanggiangnam.com/phpmyadmin
ln -s /usr/share/phpmyadmin /home/phpmyadmin.hoanggiangnam.com/public_html
Cấu hình để login phpMyAdmin
Bạn tạo một file cấu hình như sau:
root@ubuntu:~# nano /etc/nginx/conf.d/phpmyadmin.conf
phpmyadmin.hoanggiangnam.com
bằng tên miền của bạn.server { listen 80; listen [::]:80; server_name phpmyadmin.hoanggiangnam.com; root /home/phpmyadmin.hoanggiangnam.com/public_html; #root /usr/share/phpmyadmin/; index index.php index.html index.htm index.nginx-debian.html; access_log /var/log/nginx/phpmyadmin_access.log; error_log /var/log/nginx/phpmyadmin_error.log; location / { try_files $uri $uri/ /index.php; } location ~ ^/(doc|sql|setup)/ { deny all; } location ~ .php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } location ~ /.ht { deny all; }}
root@ubuntu:~# nginx -t
Sau đó khởi động lại nginx
root@ubuntu:~# systemctl restart nginx
——————————>
3. Kiểm tra phpMyAdmin
Giờ đây, bạn có thể truy cập giao diện web phpMyAdmin bằng cách truy cập tên miền hoặc địa chỉ IP công cộng của máy chủ, sau đó là /phpmyadmin
. ví dụ http://hoanggiangnam.com/phpmyadmin
hoặc http://192.168.1.10/phpmyadmin
4. Tạo siêu người dùng MySQL – USER PASSWORD quyền admin/root
Trong MySQL 5.7 trở lên, bạn sẽ không thể đăng nhập vào phpMyAdmin bằng tài khoản root của MySQL và sẽ gặp lỗi “Quyền truy cập bị từ chối đối với người dùng ‘root’@’localhost’” . Thay vào đó, bạn nên tạo một tài khoản siêu người dùng mới chỉ dành cho phpMyAdmin. Nếu bạn muốn buộc MySQL cho phép đăng nhập root qua phpMyAdmin, hãy xem: Không thể đăng nhập vào phpMyAdmin bằng root
Lưu ý:
- Để truy cập được từ tên miền thì bạn cần phải trỏ tên miền về IP máy chủ.
- Do các vấn đề bảo mật nên Ubuntu 18.04 và Ubuntu 20.04 không hỗ trợ đăng nhập bằng root mà thay vào đó bạn hãy tạo User phpMyAdmin và Pasword MySQL
Vậy nên bạn cần tạo User Pass để login
root@ubuntu:~# mysql -u root
hoặc mysql -u root -p
và nhập mật khẩu root lúc đầu cài đặt
sau đó:
MariaDB [(none)]> CREATE USER 'admin'@'localhost' IDENTIFIED BY '12345678';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
Nhớ thay lại user pass tô đỏ thành của bạn nhé
exit
Bạn nên thiết lập một số bảo mật bổ sung cho phpMyAdmin theo các bước bên dưới.
VII. Bảo Mật phpMyAdmin
Thông thường thì mình làm bước 3 và 4 cho nhanh.
1. URL phpMyAdmin ẩn (Được khuyến nghị)
Bot và những kẻ tấn công liên tục quét các máy chủ web để tìm trang đăng nhập phpMyAdmin, vì vậy bạn nên thay đổi URL thành một trang khác.
Trong ví dụ này, chúng tôi sẽ thay đổi nó từ hoanggiangnam.com/phpmyadmin
thành hoanggiangnam.com/pma_hidden
, mặc dù bạn có thể thay đổi nó thành bất cứ thứ gì bạn muốn.
Ở bước 2, chúng tôi đã tạo một liên kết tượng trưng trong thư mục gốc của tài liệu /var/www/html/phpmyadmin
Tất cả những gì chúng ta cần làm là đổi tên liên kết tượng trưng này, trong ví dụ này, thành: pma_hidden
. Hãy chắc chắn rằng bạn nhập gốc tài liệu chính xác ở đây. Mặc định là /var/www/html
mặc dù nó có thể giống như /var/www/hoanggiangnam.com/public_html/
trên máy chủ của bạn.
mv /var/www/html/phpmyadmin /var/www/html/pma_hidden
Bây giờ bạn có thể truy cập phpMyAdmin tại hoanggiangnam.com/pma_hidden
hoặc ipvps/pma_hidden
2. Bảo mật phpMyAdmin (Được khuyến nghị)
Cái tên apache2-utils
gây hiểu lầm. Nó không phải là một phần của máy chủ Apache. Apache chỉ phụ thuộc vào những thứ mà bạn có thể tìm thấy trong gói này.
Điều này có nghĩa là sau khi biên dịch và cài đặt, apache2-utils
có thể được gỡ bỏ một cách an toàn thông qua tệp apt-get remove apache-2utils
.
Để cung cấp thêm một lớp bảo mật, chúng ta có thể thiết lập xác thực trong Nginx.
Bây giờ chúng ta sẽ cài đặt apache2-utils
, có thể tạo .htpasswd
tệp hoạt động với cả Nginx và Apache.
apt install apache2-utils
Sau khi cài đặt, chúng tôi có thể tạo .htpasswd
tệp. Đơn giản chỉ cần thay đổi username
thành bất kỳ tên người dùng nào bạn muốn. Tạo một mật khẩu và giữ nó an toàn.
htpasswd -c /etc/nginx/.htpasswd username
Bây giờ sẽ có một .htpasswd
tệp chứa tên người dùng và mật khẩu được mã hóa của bạn. Bạn có thể kiểm tra với:
cat /etc/nginx/.htpasswd
Bạn sẽ thấy một cái gì đó nhưusername:$apr1sdfsdf4435sdtskLfWmmg1sfdsdgg4
Bây giờ chúng ta cần thêm hai lệnh vào tệp cấu hình Nginx của mình. Vị trí của tệp cấu hình có thể khác nhau tùy thuộc vào thiết lập của bạn, mặc dù mặc định thường ở định dạng /etc/nginx/sites-available/default
. Nếu bạn thiết lập nhiều miền trong hướng dẫn trước, tệp cấu hình của bạn có thể nằm ở đâu đó như /etc/nginx/sites-available/hoanggiangnam.com
Trong ví dụ này, chúng tôi sẽ giả sử tệp cấu hình ở định dạng /etc/nginx/sites-available/default
. Mở tệp để chỉnh sửa.
nano /etc/nginx/sites-available/default
Cuộn xuống và tìm location
các khối và dán vào một khối mới bên dưới chúng với tên của thư mục phpmyadmin bị đổi tên của bạn, trong ví dụ này pma_hidden
.
location /pma_hidden { auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd;}
Lưu tệp và thoát (nhấn CTRL
+ X
, nhấn Y
rồi nhấn ENTER
).
Kiểm tra xem tệp cấu hình Nginx có hợp lệ không, nếu không máy chủ có thể gặp sự cố khi khởi động lại.
nginx -t
Nếu hợp lệ, hãy tải lại cấu hình Nginx.
service nginx reload
Bây giờ khi truy cập hoanggiangnam.com/pma_hidden
, bạn sẽ thấy một cửa sổ xác thực.
3. Bảo mật bằng user password trên index.php nếu không muốn cài apache2-utils
Thêm 1 lớp bảo mật bằng user pass trong file index.php /usr/share/phpmyadmin/
bằng cách chạy lệnh dưới và thêm đoạn code dưới vào sau <?php
nano /usr/share/phpmyadmin/index.php
//===========Thay lại User Pass$config['user_login'] = 'useradmin';$config['pass_login'] = 'passadmin';if ($_SERVER['PHP_AUTH_USER'] != $config['user_login'] || $_SERVER['PHP_AUTH_PW'] != $config['pass_login']){header('WWW-Authenticate: Basic realm="Please declare admin login information."');header('HTTP/1.0 401 Unauthorized');//Trang sẽ hiển thị khi thông tin khai báo sai. (support HTML).echo '<center>Access Denied!!! This is page for administrators. <br></br><a href="#" title="Login">Login page for customers</a> </center>';exit;}//===========END
Nếu ko ko vào đc ip-vps/phpmyadmin thì khỏi động lại VPS thử nhé
User Pass login lần 1: Trong đoạn code php ở trên
User Pass login lần 2: root | password của MariaDB or MySQL đã cài lúc đầu.
4. Kích hoạt Google reCAPTCHA
Để kích hoạt Google reCAPTCHA trước tiên các bạn cần đăng ký một API V3 tại link sau: https://www.google.com/recaptcha/intro/v3.html
————————-
Sau khi đăng ký thành công bạn sẽ được cung cấp SITE KEY và SECRET KEY. Tiếp theo các bạn mở file /usr/share/phpMyAdmin/config.inc.php và thêm 2 dòng sau vào cuối file
$cfg['CaptchaLoginPublicKey'] = 'SITE KEY';$cfg['CaptchaLoginPrivateKey'] = 'SECRET KEY';
Thay thế SITE KEY và SECRET KEY của bạn vào, sau đó truy cập ip-vps/phpmyadmin để kiểm tra
Cách 2: Dạng tải thủ công theo phiên bản chỉ định. ( cái này là bài cũ bên centos mình chưa test lại)
1.1 – Cài đặt PhpMyAdmin 5.0.2
Để cài đặt PhpMyAdmin các bạn chạy lần lượt 7 lệnh sau
# cd /usr/share
# wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.zip
# unzip phpMyAdmin-5.2.0-all-languages.zip
# mv phpMyAdmin-5.2.0-all-languages phpMyAdmin
# rm -rf phpMyAdmin-5.2.0-all-languages.zip
# rm -rf /usr/share/phpMyAdmin/setup
# ln -s /usr/share/phpMyAdmin /usr/share/nginx/html/phpMyAdmin
Lưu ý: Truy cập phpmyadmin.net để lấy link down phiên bản mới nhất, nhớ sửa tên file phpMyAdmin vì linux phân biệt chử HOA – thường.
1.2 – Cấu hình PhpMyAdmin
File cấu hình của PhpMyadmin là file config.inc.php. Trước tiên các bạn cần chạy lệnh sau để đổi tên:
# mv /usr/share/phpMyAdmin/config.sample.inc.php /usr/share/phpMyAdmin/config.inc.php
Tiếp theo mở file /usr/share/phpMyAdmin/config.inc.php
và chỉnh sửa các thông số sau
– Tìm$cfg['blowfish_secret'] = '';
thêm một đoạn ký tự bất kỳ vào giữa cặp nháy đơn. Ví dụ:$cfg['blowfish_secret'] = 'DILHJClvsrljkvFGltr3ewg3s2df3sAD';
– Tiếp theo thêm vào cuối file doạn code sau$cfg['TempDir'] = '/usr/share/phpMyAdmin/tmp/';
Sau đó các bạn cần tạo thư mục tmp cho PhpMyAdmin
# mkdir -p /usr/share/phpMyAdmin/tmp
# chown -R www-data:www-data /usr/share/phpMyAdmin/tmp
1.3 – Cấu hình bảo mật cho PhpMyAdmin
Chặn truy cập thư mục
Các bạn mở file default ở trong thư mục /etc/nginx/sites-available/
Backup file: cp -a /etc/nginx/sites-available/default{,.orig}
nano /etc/nginx/sites-available/default
xoá toàn bộ nội dung và thay thế bằng nội dung sau:
server { listen 80; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /.ht { deny all; } location /phpmyadmin { auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; }# bật lên nếu muốn chặn truy cập phpmyadmin từ bên ngoài# location ~ ^/phpmyadmin {# rewrite ^/* /phpmyadmin last;# }# location ~ ^/pma {# rewrite ^/* /phpmyadmin last;# } location ^~ /phpmyadmin/log/ { deny all; } location ^~ /phpmyadmin/libraries/ { deny all; } location ^~ /phpmyadmin/templates/ { deny all; } location ^~ /phpmyadmin/tmp/ { deny all; }}
Mở file /etc/nginx/nginx.conf tìm và thêm vào bên trên dòng
include /etc/nginx/conf.d/*.conf;
đoạn rule sau: include /etc/nginx/default.conf;
Tham khảo thêm:
- https://hoanggiangnam.com/cach-cai-dat-va-bao-mat-redis-tren-ubuntu-20-04/
- https://hoanggiangnam.com/cau-hinh-ban-dau-sau-khi-cai-dat-wordpress-gioi-han-ram-cho-wordpress/
- https://hoanggiangnam.com/tao-database-va-user-trong-mysql-mariadb-bang-lenh-command/
Cảm ơn các bạn đã theo dõi bài viết này, tiếp tục về LEMP Stack trên Ubuntu. Ở các bài viết sau mình sẽ hướng dẫn các bạn cài đặt WordPress, SSL và các ứng dụng cache đi kèm.