在此之前,对于内测版本,你还是需要按安装文档中的要求,完成试用申请,生成自己的SecretId和SecretKey。
如果你遇到composer下载太慢的问题,请将composer镜像设置为腾讯云的镜像。设置完成后,composer所有的下载,都会通过腾讯云镜像进行,可大大提高下载速度。
设置镜像的命令为:
composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
设置完镜像后,请继续按安装文档中的步骤,重新进行 composer create-project 操作。如果composer提示 discuz目录已存在,请将discuz目录删除后再次执行命令。
由于composer的镜像机制,在使用镜像的过程中,有可能提示404错误,这是因为镜像站正在与源站正在同步,出现了数据不一致的情况。这时候你只要稍等一会,再重试刚才的命令即可。
重试 composer create-project 可能会到到提示目录已存在的错误,要将目标目录删除后再重试。
如果遇到这样的情况,请清空你的浏览器缓存再重试。如果你了解浏览器调试工具的话,也可以只清空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
运行composer的时候,composer有可能类似下面的提示
[Symfony\\Component\\Process\\Exception\\RuntimeException] The Process class relies on proc_open, which is not available on your PHP installation
或者
[ErrorException]
putenv() has been disabled for security reasons
这是因为你的php.ini文件中,禁用了这些函数,请按如下方法操作:
运行 php --ini ,找到你的 php.ini 文件的位置,修改其中的 disable_functions 设置项,这里列出了所有被禁用的函数,将其中的函数删除即可。
php --ini,找到 php.ini 文件的位置php-cli.iniphp --ini ,确认 php-cli.ini 生效php-cli.ini,将 disable_functions 做相应修改,或者完全注释掉方法2不影响 php-fpm 运行的配置,相对安全性更高一些
在Windows下,PHP的SSL相关函数有可能不可用,请按以下任一方法配置。(参考PHP的openssl安装文档)
首先,在你的PHP安装目录下,查找 openssl.cnf 文件。
新建一个 系统 环境变量,变量名为 OPENSSL_CONF,变量值为上面找到的 openssl.cnf 文件的完整路径。之后退出你的控制面板程序(比如phpstudy)再重新打开,然后重启 php 服务。
c:\\usr\\local\\ssl\\ ,然后将上面找到的 openssl.cnf 文件复制过去C:\\Program Files\\Common Files\\SSL\\,将 openssl.cnf 文件复制过去C:\\Program Files (x86)\\Common Files\\SSL\\,将 openssl.cnf 文件复制过去CA根证书错误会导致php无法验证SSL证书,从而无法正确调用腾讯云API、微信API等。解决方案如下:
C:\\cacert.pem;curl.cainfo=c:\\cacert.pem
openssl.cafile=c:\\cacert.pem
除了安装文档中的配置,另外以下一些配置可进一步优化系统运行,请大家参考:
Discuz! Q在运行中,浏览器会请求的文本类文档包含以下类型:text/html, text/css, application/vnd.api+json, application/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/vnd.api+json;
gzip_disable \"MSIE [1-6]\\.\";
gzip_comp_level 2;
在Discuz! Q中,因安全原因,只使用 $_SERVER[\'REMOTE_ADDR\'] 这一种方式获取客户的IP地址。请正确配置你的服务器,以保证Discuz! Q可以正确获取到客户的IP地址。
在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,新的代码才能生效。
假设本地的park目录是 ~/sites,通过composer或离线安装将 Discuz! Q安装到 ~/sites/discuz 目录之后,将此文件 下载并保存到 /sites/discuz 目录下,之后就可以直接访问: http://discuz.test。
数据库需要另外安装。
storage/cache/data 目录中的内容与 storage/formatter 目录中的内容,注意不要将目录删除,只删除其中的内容。如需备份Discuz! Q,请备份以下内容:
本容器支持以下三个外部映射目录:
/var/lib/mysqldb//var/lib/discuz//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 \\
registry.discuz.chat/tencent/dzq:latest
启动之后,访问 https://<域名>/install 就可以开始安装,并正常使用了。
注意
请一定要访问外部用户将要访问的协议( http:// 或 https:// ) 加 域名 加 /install 进行安装,否则会导致自动获取的站点URL配置不正确,站点工作不正常。
只要将数据保存到了容器外部,容器就可以升级。在升级前,要将原容器先停止并删除(执行此命令时,一定要确保自己已经将数据保存到了容器外部)
docker stop <容器 ID>
docker rm <容器 ID>
其中的<容器 ID>,可以通过 docker ps 命令看到。
然后用以下命令下载最新版本镜像
docker pull registry.discuz.chat/tencent/dzq:latest
再使用上次启动相同的命令重新启动即可。
如果需要执行升级文档中要求的其它升级命令,请先登录容器
docker exec -it <容器 ID> /bin/bash
然后就可以执行升级文档中要求的相关的命令,比如:
cd /var/www/discuz
php disco migrate --force
docker exec -it <容器id> /bin/bash-p 3306:3306/etc/nginx/nginx.conf 下,如果需要修改,可通过 -v 映射自己的配置文件,覆盖这个文件。
/data/nginx.conf ,可以在上面的启动命令中,加入映射: -v /data/nginx.conf:/etc/nginx/nginx.conf,即可覆盖系统原来内置的nginx配置文件。/etc/php/7.2/fpm/pool.d/www.conf,也可同样映射修改/etc/php/7.2/fpm/conf.d/30-upload-size.ini, 当前设置为20M,可同样映射修改
