Hướng dẫn cài đặt PHP 7.4 apache2 maria db trên ubuntu 18.04 và 20.04 | Để đủ đ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).
Để đủ đ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 updateTiế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-commonTiế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/phpBắt đầu cài đặt php 7.4:
# sudo apt -y install php7.4Kiể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 TechnologiesCà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_installationLà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/mysqldTiế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_serverCuố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 ufwKiểm tra tình trạng ufw:
# sudo ufw status verboseBật ufw trên máy chủ ubuntu 20.04:
# sudo ufw enableKiểm tra danh sách port:
# sudo ufw app list
Available applications: Apache Apache Full Apache Secure OpenSSHKiể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/tcpMở port SSH:
# sudo ufw allow sshhoặc
# sudo ufw allow 22/tcpMở port http, https:
# sudo ufw allow sshhoặc
# sudo ufw allow 80/tcp
# sudo ufw allow 443/tcpMở 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 33065. 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-serverhoặc
# sudo apt-get remove mariadb-serverTiế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