LEMP – Cài đặt Multiphp – Multisite trên Ubuntu 22.04
Hôm nay Nhân Hòa sẽ cùng các bạn tìm hiểu cách cài đặt nhiều domain trên cùng một máy chủ, mỗi domain chạy một phiên bản php
Demo của mình như sau:
- Hệ điều hành Ubuntu
- Webserver Nginx
- MySQL8
- PHP
- PhpMyAdmin
- Remote MySQL
- Site1.itvn.xyz chạy php8.2 fpm
- Site2.itvn.xyz chạy php8.1 fpm
I – Cài Nginx
Update OS và phần mềm
apt update -y apt upgrade -y reboot apt install nginx -y systemctl enable nginx systemctl start nginx unlink /etc/nginx/sites-enabled/default
II – Cài MultiPHP
apt-get install software-properties-common -y add-apt-repository ppa:ondrej/php apt-get update -y
Cài php 8.2
apt install php8.2 -y
Cài extension
apt-get install -y php8.2-cli php8.2-common php8.2-fpm php8.2-mysql php8.2-zip php8.2-gd php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath php -m php -v
systemctl start php8.2-fpm systemctl enable php8.2-fpm systemctl status php8.2-fpm
Cài và start PHP 8.1
apt-get install php8.1 php8.1-fpm apt-get install php8.1-mysql php8.1-mbstring php8.1-xml php8.1-gd php8.1-curl systemctl start php8.1-fpm systemctl enable php8.1-fpm systemctl status php8.1-fpm
Cài và start PHP 7.4
apt-get install php7.4 php7.4-fpm apt-get install php7.4-mysql php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl
Cài và start PHP 5.6
apt-get install php5.6 php5.6-fpm apt-get install php5.6-mysql php5.6-mbstring php5.6-xml php5.6-gd php5.6-curl
Switch the Default PHP Version for CLI
update-alternatives --config php
III – Cài đặt MySQL8
apt install mysql-server
Lấy password root mysql
mysql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456aA@'; FLUSH PRIVILEGES; exit;
Bảo mật MySQL
mysql_secure_installation
Cấu hình Nginx để sử dụng PHP 8.2 cho website www.site1.itvn.xyz
vi /etc/nginx/sites-available/site1.itvn.xyz.conf
Thêm vào
server { listen 80; server_name site1.itvn.xyz www.site1.itvn.xyz; root /var/www/site1.itvn.xyz; 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.2-fpm.sock; } location ~ /\.ht { deny all; } }
Tạo liên kết với site-enable
ln -s /etc/nginx/sites-available/site1.itvn.xyz.conf /etc/nginx/sites-enabled/
Tạo folder chứa source code website site1.itvn.xyz
mkdir -p /var/www/site1.itvn.xyz
vi index.php
Thêm vào
<?php phpinfo(); ?>
Cấu hình Nginx để sử dụng PHP 8.1 cho website www.site2.itvn.xyz
vi /etc/nginx/sites-available/site2.itvn.xyz.conf
Thêm vào
server { listen 80; server_name site2.itvn.xyz www.site2.itvn.xyz; root /var/www/site2.itvn.xyz; 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; } }
Tạo liên kết với site-enable
ln -s /etc/nginx/sites-available/site2.itvn.xyz.conf /etc/nginx/sites-enabled/
Tạo folder chứa source code website site2.itvn.xyz
mkdir -p /var/www/site2.itvn.xyz
vi index.php
Thêm vào
<?php phpinfo(); ?>
IV – Cài đặt phpMyAdmin
apt install phpmyadmin
Trong quá trình cài đặt, bạn sẽ được nhắc chọn một máy chủ web (Apache hoặc Lighttpd) để cấu hình. phpMyAdmin có thể tự động thực hiện một số thay đổi cấu hình để đảm bảo rằng nó hoạt động chính xác với một trong các máy chủ web này khi cài đặt. Tuy nhiên, vì bạn đang sử dụng Nginx làm máy chủ web, bạn không nên chọn một trong hai tùy chọn này. Thay vào đó, hãy nhấn TAB để đánh dấu <Ok> và sau đó nhấn ENTER để tiếp tục quá trình cài đặt.
Tiếp theo, bạn sẽ được nhắc có sử dụng dbconfig-common để định cấu hình cơ sở dữ liệu ứng dụng hay không. Chọn <Yes> . Thao tác này sẽ thiết lập cơ sở dữ liệu nội bộ và người dùng quản trị cho phpMyAdmin. Bạn sẽ được yêu cầu xác định mật khẩu mới cho người dùng phpmyadmin MySQL, nhưng vì đây không phải là mật khẩu bạn cần nhớ nên bạn có thể để trống và để phpMyAdmin tạo mật khẩu ngẫu nhiên.
Tạo liên kết phpMyadmin với website của bạn
ln -s /usr/share/phpmyadmin /var/www/site1.itvn.xyz/phpmyadmin
ln -s /usr/share/phpmyadmin /var/www/site2.itvn.xyz/phpmyadmin
vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
mysql -u root -p CREATE USER 'site'@'%' IDENTIFIED WITH mysql_native_password BY '123456aA@'; ALTER USER 'site'@'%' IDENTIFIED WITH mysql_native_password BY '123456aA@'; GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'site'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; exit
mysql -u root -p
RENAME USER 'site'@'localhost' TO 'site'@'%';
CREATE USER 'site'@'%' IDENTIFIED BY '123456aA@';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'site'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
Như vậy mình đã giới thiệu cách cấu hình Ubuntu-Nginx-MySQL-PHP-phpMyadmin và RemoteMySQL , chúc các bạn thực hiện thành công và
Hẹn gặp lại các bạn tại các bài viết sau tại wiki.nhanhoa.com