如需备份 Discuz! Q,请备份以下内容:
- 数据库
- config 目录
- storage 目录
容器的更多配置说明?
如何将数据保存到容器外部 本容器支持以下三个外部映射目录:
- 数据库文件,映射到
/var/lib/mysqldb/
。 - Discuz! Q的配置与存储目录,映射到
/var/lib/discuz/
。 - SSL证书文件,映射到
/etc/nginx/certs/
,其中要求存在两个文件discuz.crt
和discuz.key
。如果不使用SSL协议,请不要配置此目录,并且不映射 443 端口。
因此,如果如果您想长期使用容器来运行 Discuz! Q,建议在启动容器的时候加入这三个参数进行映射。
例如数据库文件,在本地(宿主机)上,想保存到 /data/mysql-data
,Discuz! Q的运行数据,保存到 /data/discuz
,SSL证书文件放在 /data/certs/discuz.crt
和 /data/certs/discuz.key
,同时不想对外开放 80 端口,那启动容器的命令就是:
docker run -d --restart=always \
-p 443:443 \
-v /data/discuz:/var/lib/discuz \
-v /data/mysql-data:/var/lib/mysqldb \
-v /data/certs:/etc/nginx/certs \
ccr.ccs.tencentyun.com/discuzq/dzq:latest
启动之后,访问 https://<域名>/install
就可以开始安装,并正常使用
请一定要访问外部用户将要访问的协议( http:// 或 https:// ) 加 域名 加 /install 进行安装,否则会导致自动获取的站点 URL 配置不正确,站点工作不正常。
基于容器的升级
只要将数据保存到了容器外部,容器就可以升级。在升级前,要将原容器先停止并删除(执行此命令时,一定要确保自己已经将数据保存到了容器外部)。
docker stop <容器 ID>
docker rm <容器 ID>
其中的 <容器 ID>
,可以通过 docker ps
命令看到。 然后用以下命令下载最新版本镜像:
docker pull ccr.ccs.tencentyun.com/discuzq/dzq:latest
再使用上次启动相同的命令重新启动即可。
如果需要执行升级文档中要求的其它升级命令,请先登录容器
docker exec -it <容器 ID> /bin/bash
然后就可以执行升级文档中要求的相关的命令,例如:
cd /var/www/discuz
php disco migrate --force
基于容器的一些其它配置
- 如果您想对 mysql 进行管理,可选择以下两种方法之一:
- 登录进容器,用 mysql 命令进行管理
docker exec -it <容器id> /bin/bash
。 - 将 3306 端口暴露到外面,通过外部工具连上去进行管理。在启动时,加一个
-p 3306:3306
。
- 登录进容器,用 mysql 命令进行管理
- 如果您想通过外部的负载均衡进行 SSL 卸载,可开放容器的 80 端口,不开放 443 端口即可。
- Nginx 的配置文件,位于容器的
/etc/nginx/nginx.conf
下,如果需要修改,可通过-v
映射自己的配置文件,覆盖这个文件。- 例如您本地的配置文件为
/data/nginx.conf
,可以在上面的启动命令中,加入映射:-v /data/nginx.conf:/etc/nginx/nginx.conf
,即可覆盖系统原来内置的 Nginx 配置文件。
- 例如您本地的配置文件为
php-fpm
的配置文件,位于容器的/etc/php/7.2/fpm/pool.d/www.conf
,也可同样映射修改。- 控制 PHP 上传大小的文件,位于容器的
/etc/php/7.2/fpm/conf.d/30-upload-size.ini
, 当前设置为20M,可同样映射修改。
# 安装后,首屏无限加载如何解决?
如果遇到这样的情况,请清空您的浏览器缓存再重试。如果您了解浏览器调试工具,也可以只清空 LocalStorage
之后再进行重试。
# 安装后图片不能显示(没使用对象存储)怎么办?
请执行命令以下命令:
ln -s 安装目录/storage/app/public 安装目录/public/storage
例如站点安装目录是:/www/wwwroot/discuz.chat/discuz
,那么这条命令就是
ln -s /www/wwwroot/discuz.chat/discuz/storage/app/public /www/wwwroot/discuz.chat/discuz/public/storage
Discuz! Q 升级 v2.3.210202 版本后,进行红蓝主题切换时报错
Warning: shell_exec() has been disabled for security reasons in
如何解决?
如果您遇到这样的情况,您可以删除您 Discuz! Q 站点所使用的 PHP 版本中的禁用函数 shell_exec
进行解决。如果您的 Discuz! Q 站点是基于宝塔面板安装,您可以参考以下步骤: 以下操作以宝塔面板 7.5.1、 PHP 7.3 版本为例:
- 登录您 Discuz! Q 站点的宝塔面板。
- 单击侧边栏【软件商店】,查找到您 Discuz! Q 站点所使用的 PHP 版本并单击【设置】。如下图所示
- 在弹出的"php 管理"窗口中,单击【禁用函数】。
- 在禁用函数列表中,查找到
shell_exec
函并单击【删除】。如下图所示: - 重启 PHP 即可完成操作。
- 若删除禁用函数
shell_exec
后,依旧无法正常切换使用。您可以将 Discuz! Q 站点目录下public_1
目录中的skin.conf
文件复制并替换至 Discuz! Q 站点目录下的public
目录,并重新进行尝试。
原文地址:http://www.5che2.com/