本文分三部分,安装docker、部署discuz社区网站、安装mysql。
一、安装docker
1.首先安装其它工具:
[root@test02 ~]# yum -y install gcc gcc-c++ yum-utils
2.安装完工具后配置stable镜像仓库
[root@test02 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.更新yum软件包索引
[root@test01 ~]# yum makecache fast
注意:如果安装配置stable镜像仓库报错,则要配置yum源,可参考:
[root@test01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@test01 ~]# yum clean all #清除所有
[root@test01 ~]# yum makecache #重新建立源数据
[root@test01 ~]# yum update
4.安装docker工具,不指定版本就是安装最新版
[root@test01 ~]# yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5.启动docker,并设置开机自启
#启动docke
[root@test01 ~]# systemctl start docker
[root@test01 ~]# systemctl enable docker
6.查看是否启动成功,也可以使用docker ps命令
查看是否启动成功
[root@test01 ~]# ps -ef|grep docker
7.设置阿里的镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://o9pi04r6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
至此,docker成功安装。
二、部署discuz
1.查找是否有discuz镜像
[root@test02 ~]# docker search discuz
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tencentci/discuz 每月或周构建腾讯旗下最新Discuz3.5+,并同步更…
discuzamoy/jd_scripts discuzamoy/jd_scripts:latest
locoz666666/discuz-x Discuz X 容器镜像每日自动构建(基于官方Gitee…
cloud96/discuz 基于Docker技术,一键安装 Discuz 最新版(X3.4)…
2.拉取并运行discuz镜像,运行镜像时,有docker参数 --restart=always 表示启动docker时会同时启动容器,docker run容器之后,浏览器访问自己服务器ip到达论坛安装页面,但填写信息下一步时会提示报错,需要下面的步骤配置myslq权限。
[root@test02 ~]# docker pull tencentci/discuz
[root@test02 ~]# docker run -p 80:80 -d --restart=always tencentci/discuz
3.查看是否有php镜像
[root@test02 ~]# docker search php
4.拉取php镜像
[root@test02 ~]# docker pull php
5.最后查看有哪些拉取的镜像
[root@zzz ~]# docker images
三、安装mariadb-server,并修改为discuz访问的权限
1.安装mariadb-server
[root@test02 ~]# yum install mariadb-server -y
2.启动mariadb服务
[root@test02 ~]# systemctl start mariadb
3.新建数据库和配置权限
#Mysql安全启动配置向导——mysql_secure_installation(生产环境必做的设置)
[root@zzz ~]# mysql_secure_installation
Set root password? [Y/n] - 为root用户设置密码
Remove anonymous users? [Y/n] - 删除匿名账号
Disallow root login remotely? [Y/n] - 取消root用户远程登录
Remove test database and access to it? [Y/n] - 删除test库和对test库的访问权限
Reload privilege tables now? [Y/n] - 刷新授权表使修改生效
#用root用户的身份进入数据库,输入自己设置的密码 admin123
[root@zzz ~]# mysql -u root -padmin123
MariaDB [(none)]> show databases; #查看现有数据库
MariaDB [(none)]> create database discuz; #创建一个数据库 discuz
MariaDB [(none)]> show databases; #查看现有数据库
到此打开网页,创建数据库,输入基本信息,输入完成后点击下一步跳转页面,显示“不允许访问”。
回到命令行,查看docker容器的tencentci/discuz的主机名
[root@test02 ~]# docker exec 容器的NAMES hostname -I
#进入myql,在mysql 8.0以后,authentication_string字段替代了之前的password字段(估计报错就是版本的问题了)
[root@zzz ~]# mysql -uroot -padmin123
MariaDB [(none)]> grant all on *.* to 'root@%' identified by 'admin123' ;
MariaDB [(none)]> use mysql
MariaDB [mysql]> show tables ;
MariaDB [mysql]> select host,user,password from user ;
MariaDB [(none)]> flush privileges; #刷新权限表
MariaDB [(none)]> exit
#退出再次进入修改权限ip为自己服务器ip 38.60.28.59 ,并修改访问root权限
[root@zzz ~]# mysql -uroot -padmin123
MariaDB [(none)]> use mysql
MariaDB [mysql]> grant all on *.* to root@'38.60.28.59' identified by 'admin123' ;
MariaDB [mysql]> update user set user="root" where host='%';
MariaDB [mysql]> select user,host,password from user;
+------+-----------------+-------------------------------------------+
| user | host | password |
+------+-----------------+-------------------------------------------+
| root | localhost | *2E959EACF66183C8645178056D6A0252E29D29B2 |
| root | 127.0.0.1 | *2E959EACF66183C8645178056D6A0252E29D29B2 |
| root | ::1 | *2E959EACF66183C8645178056D6A0252E29D29B2 |
| root | 192.168.71.59 | *2E959EACF66183C8645178056D6A0252E29D29B2 |
| root | % | *2E959EACF66183C8645178056D6A0252E29D29B2 |
+------+-----------------+-------------------------------------------+
MariaDB [mysql]> flush privileges;
MariaDB [(none)]> show databases;
MariaDB [(none)]> exit
最后再次打开网页,创建数据库,输入基本信息,输入完成后点击下一步跳转页面,显示成功设置;discuz后台管理,发现报错要删除一些index.php文件,照着提示删除index.php文件就可以打开后台管理页面。