其他分享
首页 > 其他分享> > discuzQ安装常见问题汇总

discuzQ安装常见问题汇总

作者:互联网

如何配置CDN规则

在腾讯云CDN添加域名的时候,请在『缓存配置』处增加以下两条规则:

小内存服务器上宝塔默认安装的MySQL如何配置

在小内存的服务器上(1G~2G),宝塔上的默认MySQL配置占用了过多内存,可进行如下一些配置以优化MySQL内存占用:

Windows下SSL相关函数不可用

在Windows下,PHP的SSL相关函数有可能不可用,请按以下任一方法配置。(参考PHP的openssl安装文档)

首先,在你的PHP安装目录下,查找 openssl.cnf 文件。

方法1

新建一个 系统 环境变量,变量名为 OPENSSL_CONF,变量值为上面找到的 openssl.cnf 文件的完整路径。之后退出你的控制面板程序(比如phpstudy)再重新打开,然后重启 php 服务。

方法2

Windows下CA根证书库错误

CA根证书错误会导致php无法验证SSL证书,从而无法正确调用腾讯云API、微信API等。解决方案如下:

curl.cainfo=c:\cacert.pem
openssl.cafile=c:\cacert.pem

Web服务器其它推荐配置

除了安装文档中的配置,另外以下一些配置可进一步优化系统运行,请大家参考:

1. 启动gzip压缩

Discuz! Q在运行中,浏览器会请求的文本类文档包含以下类型:text/htmltext/cssapplication/vnd.api+jsonapplication/x-javascript,建议在Web服务器中打开这些文档类型的gzip压缩,以减少下载的数据量。经测算,在nginx中打开gzip压缩,并将压缩等级设置为2的时候,下载的平均数据量是打开压缩前的 1/3 左右。nginx中的配置参考如下:

  gzip on;
  gzip_min_length 1024;
  gzip_types text/html text/css application/x-javascript application/javascript application/vnd.api+json;
  gzip_disable "MSIE [1-6]\.";
  gzip_comp_level 2;

2. 正确获取客户的真实IP

在Discuz! Q中,因安全原因,只使用 $_SERVER['REMOTE_ADDR'] 这一种方式获取客户的IP地址。请正确配置你的服务器,以保证Discuz! Q可以正确获取到客户的IP地址。

3. 启用opcache

php.ini中启用opcache,可提高php代码的运行效率,参考配置如下

[opcache]
opcache.enable = 1
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 240
opcache.fast_shutdown = 1
opcache.enable_cli = 0
opcache.file_cache = /tmp
opcache.error_log = log/opcache_error.log

请注意,这样设置后,每次更新Discuz! Q,需要重启php-fpm,新的代码才能生效。

基于Laravel Valet运行Discuz! Q

假设本地的park目录是 ~/sites,通过composer或离线安装将 Discuz! Q安装到 ~/sites/discuz 目录之后,将此文件 下载并保存到 /sites/discuz 目录下,之后就可以直接访问: http://discuz.test

数据库需要另外安装。

更改域名方法

删除 storage/cache/data 目录中的内容与 storage/formatter 目录中的内容,注意不要将目录删除,只删除其中的内容。

原来http的站,改成https之后,还有部分资源使用原来的http链接

删除 storage/cache/data 目录中的内容与 storage/formatter 目录中的内容,注意不要将目录删除,只删除其中的内容。

Discuz! Q数据备份

如需备份Discuz! Q,请备份以下内容:

  1. 数据库
  2. config目录
  3. storage目录

容器的更多配置说明

如何将数据保存到容器外部

本容器支持以下三个外部映射目录:

因此,如果你想长期使用容器来运行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

基于容器的一些其它配置

安装后,首屏无限加载

如果遇到这样的情况,请清空你的浏览器缓存再重试。如果你了解浏览器调试工具的话,也可以只清空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

标签:容器,常见问题,discuzQ,汇总,discuz,nginx,data,目录,opcache
来源: https://blog.csdn.net/sxanui/article/details/110007305