注:操作有风险,请自行备份好数据,本教程仅供参考。
1.本例网站介绍
本例网站主要由Apache、MySQL、PHP、WordPress、phpMyAdmin构成,并由Certbot提供免费的SSL证书,(Tomcat暂未迁移,仅做数据备份)
# 迁移数据/配置-目录结构(参考)
~ | /home/**/
|-path
phpMyAdmin-***.zip
wordpress -***.tar.gz
|-web
|-tomcat (/var/lib/tomcat)
|-webapps
ROOT.war
|-www (/var/www)
www.tar.gz
|-workbench
|-httpd (/etc/httpd)
conf
|-letsencrypt (/etc/letsencrypt)
|-tomcat (/usr/share/tomcat)
conf (/etc/tomcat)
软件 | 数据文件 | 目录/来源 |
---|---|---|
Apache | www.tar.gz | /var/www |
MySQL | localhost.sql | phpMyAdmin->导出 |
WordPress | ***.WordPress.xml | WordPress->导出 |
Tomcat | ROOT.war | /var/lib/tomcat |
2.软件安装(在CentOS 8系统安装完成之后)
a.添加el源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
b.启用Cockpit/建立个人用户(可选)
dnf install cockpit
systemctl enable --now cockpit.socket
systemctl start cockpit
useradd ***
passwd ***
groups ***
c.安装/配置MySQL-Server
dnf install mysql-server
# 查看软件配置文件 (安装: /var/lib/mysql , /usr/share/mysql)
rpm -qc mysql-server
# 添加专用账户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
# 初始化
mysqld --initialize --user=mysql
# 从日志中获取获取初始密码
cat /var/log/mysql/mysqld.log | grep password
# 服务管理
systemctl status mysqld
systemctl enable mysqld
systemctl start mysqld
# 由MySQL Shell修改密码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
d.安装/配置Apache
dnf install httpd
dnf install mod_ssl
tar -xzf www.tar.gz
e.安装/配置snap和Certbot,并获取SSL证书
# 更新软件
dnf install epel-release
dnf upgrade
# 安装/配置snap
dnf install snapd
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap
sudo snap install core
sudo snap refresh core
# 安装/配置Certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --standalone
certbot certonly --preferred-challenges dns --manual -d *.sky963.cn --server https://acme-v02.api.letsencrypt.org/directory
f.安装PHP80及插件
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf install php80-php
dnf install php80-php-mysqlnd php80-php-gd php80-php-pecl-zip php80-php-pecl-imagick
g.配置Apache服务自启动
systemctl restart httpd
systemctl enable httpd
3.可选配置
a.修改为阿里源
cd /etc/yum.repos.d
mkdir repo_bak
mv CentOS-Linux-* repo_bak/
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
yum makecache
b.启用PowerTools存储库
(默认CentOS 8/RHEL 8 Linux上未启用PowerTools存储库,该存储库包含许多在安装其他应用程序时需要作为依赖项的软件包,并且大多数情况下是从源代码构建应用程序)
dnf config-manager --set-enabled PowerTools
dnf repolist
c.ssh,禁止root登陆/修改登陆端口
vim /etc/ssh/sshd_config
->Port ***
->PermitRootLogin no
systemctl restart sshd