Viettel IDC

VNNIC
Cooky

Contacts
seozie-img
Để đủ điều kiện một website chạy bằng ngôn ngữ mã nguồn mở php hoạt động được ngoài hạ tầng máy chủ (cloud server) thì cần có ít nhất các services sau: Php, apache (nginx), mysql (maria db). Sau đây chúng tôi sẽ hướng dẫn bạn cách cài đặt các service trên một cách đơn giản nhất:

1. Cài đặt php 7.4 và apache 2 trên Ubuntu 18.04 và 20.04

# sudo apt-get update
Tiếp theo, cài đặt software-properties-common, bổ sung quản lý cho các nguồn phần mềm bổ sung:
# sudo apt -y install software-properties-common
Tiếp theo, cài đặt kho lưu trữ ppa:ondrej/php, kho lưu trữ này sẽ cung cấp cho bạn tất cả các phiên bản PHP của bạn:
# sudo add-apt-repository ppa:ondrej/php
Bắt đầu cài đặt php 7.4:
# sudo apt -y install php7.4
Kiểm version:
# php -v
PHP 7.4.21 (cli) (built: Jul 1 2021 16:09:41) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies
Cài đặt các module cần thiết theo php 7.4
# sudo apt-get install -y php7.4-cli php7.4-json php7.4-common php7.4-mysql php7.4-zip php7.4-gd php7.4-mbstring php7.4-curl php7.4-xml php7.4-bcmath

2. Cài đặt maria db trên Ubuntu 18.04 và Ubuntu 20.04

2.1 Cài đặt maria db

# sudo apt-get update
# sudo apt-get install software-properties-common
# sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
# sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.4/ubuntu bionic main'
# sudo apt-get update
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
# sudo mysql_secure_installation
Làm theo tuần tự các bước như sau:
  • Enter current password for root (enter for none):  Enter
  • Set root password? [Y/n]: Y
  • New password: Enter password
  • Re-enter new password: Repeat password
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y

2.2. Tạo database name

# sudo mysql -u root -p
# GRANT ALL ON database_name.* TO 'database_user@localhost' IDENTIFIED BY 'database_user_password';

2.3. Bật chế độ remote access cho maria db

Chỉnh file 50-server.cnf trong mariadb.conf.d cho phép ip ngoài kết nối đến database, mặc định ip localhost: 127.0.0.1
  • Nếu mở cho tất cả ip được kết nối tới database thì thay bằng IP 0.0.0.0
  • Nếu chỉ cho phép một ip kết nối tới thì đặt IP server đó, ở đây server web của mình ip: 10.0.100.10
# sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
# this is read by the standalone daemon and embedded servers
# this is only for the mysqld standalone daemon
[mysqld]

#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

# Instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure.
bind-address            = 10.0.100.11

#
# * Fine Tuning
# sudo systemctl restart mariadb.service
# sudo apt install net-tools
# sudo netstat -anp | grep 3306
tcp       0      10.0.100.10:3306          0.0.0.0:*        LISTEN         1938/mysqld
Tiếp theo tạo user cho phép remote access
# GRANT ALL ON database_name.* TO 'database_user@10.0.100.10' IDENTIFIED BY 'database_user_password';
Kiểm tra kết nối database:
# mysql -u database_user -p database_user_password -h database_server
Cuối cùng, Server mở port cho phép ip server web kết nối vào database Xem mục 3 ufw.

3. Cài đặt firewall ufw trên Ubuntu 18.04 và Ubuntu 20.04

Cài đặt firewall ufw:
# sudo apt install ufw
Kiểm tra tình trạng ufw:
# sudo ufw status verbose
Bật ufw trên máy chủ ubuntu 20.04:
# sudo ufw enable
Kiểm tra danh sách port:
# sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Kiểm tra services apache dùng những port nào:
# sudo ufw app info 'Apache Full'
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
80,443/tcp
Mở port SSH:
# sudo ufw allow ssh
hoặc
# sudo ufw allow 22/tcp
Mở port http, https:
# sudo ufw allow ssh
hoặc
# sudo ufw allow 80/tcp
# sudo ufw allow 443/tcp
Mở port cho phép ip truy cập vào service: cụ thể ở đây cho phép IP 10.0.0.10 vào MariaDB:
# sudo ufw allow from 10.0.100.10 to any port 3306

4. Kiểm tra

4.1. Kiểm tra kết nối Web

Mở browser lên và nhập địa chỉ ip server: https://yourip/

4.2. Kiểm tra kết nối remote access Maria DB

Trên server ip 10.0.100.11 kiểm tra như sau: # telnet 10.0.100.11 3306

5. Remove Maria DB và upgrade từ version mariadb 10.3 lên 10.4 hoặc cao hơn

Remove maria DB cũ ra:
# sudo apt-get purge mariadb-server
hoặc
# sudo apt-get remove mariadb-server
Tiến hành cài lại mariadb mới, làm theo các lệnh dưới đây
# sudo apt-get update
# sudo apt-get install software-properties-common
# sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
# sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.4/ubuntu bionic main'
# sudo apt-get install mariadb-server galera-4 mariadb-client libmariadb3 mariadb-backup mariadb-common
# sudo systemctl start mysql
# sudo mysql_upgrade --verbose --verbose other-options --force

Write a Reply or Comment

Your email address will not be published.