架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3395|回复: 8

【实战】使用 Docker 安装部署 Discuz 论坛

[复制链接]
发表于 2021-11-28 19:21:35 | 显示全部楼层 |阅读模式
准备将论坛迁移成 Docker 环境的应用,方便之后的迁移,简单的输入几行命令就可以将之前的论坛数据迁移到新的服务器。本文章使用 Docker 搭建一个新的 Discuz 论坛来试水。

关于 Linux 环境安装 Docker 教程请参考如下:

【实战】CentOS 7 安装 Docker 容器
https://www.itsvse.com/thread-9999-1-1.html

【实战】CentOS 8 安装 Docker 包冲突问题
https://www.itsvse.com/thread-10115-1-1.html
安装 MySQL 应用

安装 MySQL 数据库 5.7.34 版本,命令如下:

执行完成后,可以通过宿主机的 ip:3306 端口进行访问,账号和密码都是:root

安装 phpMyAdmin 应用

phpMyAdmin 是一个用 PHP 编写的免费软件工具,旨在通过 Web 处理 MySQL 的管理。phpMyAdmin 支持对 MySQL 和 MariaDB 的广泛操作。经常使用的操作(管理数据库、表、列、关系、索引、用户、权限等)可以通过用户界面执行,同时您仍然可以直接执行任何 SQL 语句。

命令如下:

执行完成后,可以通过浏览器访问宿主机的 ip:8081,输入 MySQL 的账号和密码,如下图:

QQ截图20211127135728.jpg

安装 Redis 应用

因为 Discuz 可以设置一些内容缓存到 redis,从而提高访问速度和性能,对有需求的站长非常有用,安装 redis 应用,命令如下:

安装 FTP 服务

Discuz 可以将附件通过 FTP 协议上传到远程服务器,论坛附件(图片)通过二级域名进行访问,二级域名通过 CDN 加速从而提升网站的访问加载速度。

新建 /data/wwwroot/ftp_data 目录存放附件内容,命令如下:

使用 Docker 安装 FTP 服务命令如下:

FTP 的账号和密码分别为:dz_itsvse/a123456

备注:一定要设置 LOCAL_UMASK 参数,否则 nginx 访问的时候会报 403 没有权限的错误

上传 Discuz 程序到宿主机

新建 /data/wwwroot/discuz 目录存到站点程序,命令如下:

上传完成后,如下图:

QQ截图20211128182029.jpg

安装 php-fpm 应用

在宿主机新建 php 配置文件夹,命令如下:

第一次可以直接使用我帖子的附件即可,就不需要执行此操作了!)的时候,需要启动一个 php-fpm 容器,使用 docker cp 命令,将配置复制到宿主机的映射目录下,命令如下:

使用 docker 启动一个 php-fpm 应用

启动容器后,需要进入到容器内部安装一些 php 扩展,例如:GD、mysql、redis 等,否则,无法连接数据库、无法使用 redis 缓存、无法处理图像等。

使用如下命令进入到容器内部:


进入到容器,执行如下命令:

关于安装 GD 和 Redis 扩展,请参考如下文章:

【实战】基于 Docker php:5.6.40-fpm 镜像安装 GD 扩展
https://www.itsvse.com/thread-10175-1-1.html

【实战】基于 Docker php:5.6.40-fpm 镜像安装 Redis 扩展
https://www.itsvse.com/thread-10176-1-1.html
安装完成扩展之后,需要重启 php5-fpm 容器才会生效!

再次进入到 php5-fpm 容器内部,修改 /data/wwwroot/discuz 目录的归属用户和组,否则使用 php-fpm 将无法读取和执行!页面会一片空白!命令如下:

在 /data/wwwroot/discuz 目录,新建一个 phpinfo.php 文件,命令如下:

php.ini 最要的优化设置如下:


php-fpm 容器默认需要调优 php-fpm 参数,以及设置 php.ini 的配置(时区、最大文件上传限制等),可以参考:

【实战】通过 Nginx 查看 php-fpm 状态信息
https://www.itsvse.com/thread-10180-1-1.html

Nginx 反向代理 php-fpm

我是直接在宿主机上面安装的 nginx 服务,没有使用 docker 的方式安装,安装可以参考:

【实战】CentOS 源码安装 nginx 服务
https://www.itsvse.com/thread-10058-1-1.html
nginx.conf 的主要配置如下:

通过浏览器访问测试:http://dev.itsvse.com:8099/phpinfo.php,如下图:

QQ截图20211128185641.jpg

开始安装 Discuz

上面都是准备工作,准备了 mysql、ftp、redis、nginx、php-fpm 等,下面开始真正的安装,访问:http://dev.itsvse.com:8099/,如下图:

QQ截图20211128185821.jpg
QQ截图20211128185908.jpg
设置 MySQL 数据库连接,如下图:

QQ截图20211128185959.jpg

安装完成,如下图:

QQ截图20211128190008.jpg QQ截图20211128190109.jpg QQ截图20211128190148.jpg

设置远程附件进行测试,如下图:

QQ截图20211128190317.jpg

测试图片加水印是否正常,如下图:

QQ截图20211128190413.jpg

修改 /data/wwwroot/discuz/config/config_global.php 设置使用 redis 缓存,配置如下:

QQ截图20211128190824.jpg QQ截图20211128190916.jpg

登录到 redis 容器,查看是否有数据被缓存,如下图:

QQ截图20211128191042.jpg

发帖,测试远程附件功能是否正常,如下图:

QQ截图20211128191216.jpg


phpconfig.zip 文件如下:

游客,如果您要查看本帖隐藏内容请回复


(完)





上一篇:【实战】通过 Nginx 查看 php-fpm 状态信息
下一篇:【实战】Spring Boot 获取 AD 域(LDAP)所有用户
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-11-29 17:58:10 | 显示全部楼层
关闭 php X-Powered-By 信息
https://www.itsvse.com/thread-2092-1-1.html
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-12-3 13:27:16 | 显示全部楼层
解决 413 Request Entity Too Large(请求实体太大)

QQ截图20211203132111.jpg

Nginx默认的request body为1M,编辑 nginx.conf 配置文件,在 http{} 加入如下配置:



码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2022-11-13 14:39:13 | 显示全部楼层
phpmyadmin 您可以在PMA_host环境变量中指定MySQL主机。您还可以使用PMA_PORT指定服务器的端口,以防它不是默认端口:


Host 'xxx' is not allowed to connect to this MySQL server
https://www.itsvse.com/thread-7735-1-1.html
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-5-31 16:51:50 | 显示全部楼层
学习该篇原因:要求内网机docker部署论坛。需要查看命令行。
另:感谢作者发帖。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-6-14 16:25:45 | 显示全部楼层
为什么使用我的ip加上端口号,报502的错误,不能进入对应页面?
是第一次用docker,不太熟悉。请教,谢谢。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-6-16 13:26:28 | 显示全部楼层
Almarc 发表于 2023-6-14 16:25
为什么使用我的ip加上端口号,报502的错误,不能进入对应页面?
是第一次用docker,不太熟悉。请教,谢谢。 ...

该问题有查询到是需要使用工具来进行MySQL的访问,我以为是直接网页浏览。
另进度在安装php-rpm时有报错如下图所示,请教坛主应该怎么解决呢:
ERROR: failed to open configuration file '/usr/local/etc/php-fpm.conf': No such file or directory (2)
ERROR: failed to load configuration file '/usr/local/etc/php-fpm.conf'
ERROR: FPM initialization failed
谢谢
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2024-3-26 17:20:18 | 显示全部楼层
教程很好
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2024-3-27 08:27:39 | 显示全部楼层
Debian 存储库更新提示 404 错误
https://www.itsvse.com/thread-10698-1-1.html
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-25 13:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表