2023使用Discuz Q论坛系统搭建三端(h5,小程序,pc)折腾踩坑总结
阅读此文前提:
- 本文所有安装搭建流程基于官方安装文档宝塔面板。请先仔细阅读官方文档,再来阅读本文。
- 官方文档有两个版本,请先搞清楚你看的是哪个版本的文档(肥肠重要)
- 本文写于2023年3月30日。
- 所有的踩坑均已经用特殊格式注明
- 在按照文档安装
fileinfo
和exif
两个扩展以后,请重启php服务,否则安装程序不会识别 - 宝塔面板早期安装的Php7.3是独立编译zip扩展,后续安装及升级是整合编译的,导致升级后会重复加载zip模块.
为避免这个错误,后面的PHP就不再单独编译ZIP扩展了。
然后呢,PHP 7.3.8,ZIP 模块不再整合了,在面板配置中却没有安装ZIP扩展的选择。
这样新安装php7.3就会出现phpzip丢失的问题
但是ZIP扩展本来就包含在软件包里,解决这个问题,只需要手动进行添加即可.
SSH登录Linux服务器,先进入php73
的扩展安装目录(因为php扩展里已经下载好zip扩展文件所以不用再自行下载了,直接安装)
cd /www/server/php/73/src/ext/zip//www/server/php/73/bin/phpize./configure --with-php-config=/www/server/php/73/bin/php-configmakemake install
安装好zip扩展,还需要在PHP配置文件中启用.
在php.ini中添加这一行:
extension = zip.so
- 是删除禁用
putenv
、readlink
、symlink
、shell_exec
函数,不是删除。
php配置完成以后,设置伪静态,更改运行目录,设置gzip。
访问http://<绑定网站的域名名称>/dl.php
设置定时任务
sudo -u www /usr/bin/php /www/wwwroot/<网站主目录>/disco schedule:run
小程序/h5构建
旧版官方文档提供了两种构建方式,分别是通过HBuilderX和npm。
但是这是过时的。
- 新版discuz小程序仅支持使用npm构建。如果你使用HBuilderX构建,会直接提示编译失败。
- 小程序对npm的版本有着严格的要求。严格限制
node: 14.x.x
版本与npm: 6.14.
。如果你已经安装了高版本的npm,无法安装依赖文件。
解决方案:
step1.在官网重新下载node: 14.x.x.
step2.使用控制面板卸载高版本已安装的node,并安装刚刚下载的旧版本node
step3.执行
npm uninstall -g npm # 全局卸载npm,默认卸载高版本npm
step4.再次执行
npm uninstall -g npm # 很玄学,但是再次执行卸载的确会更新旧版本npm
当你使用了正确的npm版本安装sass依赖时由于国内的网络问题,需要更换镜像源否则会爆红
- 执行
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sassnpm install
如果你是按照官方旧版文档安装的,那么当你成功安装所有依赖,开始构建小程序时。按照官方给出的命令,依旧会报错,不要惊慌,官方偷偷的更改了构建命令
+
npm run build:weapp
是新版的构建命令
至此,小程序构建完成,在dist目录下可以找到构建好的微信小程序源码,并且可以进行源码级调试
但上传时会提示:单个分包/主包大小不能超过 2M,因此上传失败。
构建discuz论坛系统过程中最大的坑就在这里。
事实上,无论是新版文档还是旧版文档,能安装成功的最新版本是3.0.6。而这个版本,无论是小程序还是pc都已被官方弃用。官方已经在论坛中发布了discuz的全新4.2版本,以及免编译的小程序源码。discuz也更新成了单圈版本(用户为站长粉丝)和多圈版本(用户为数据粉丝)。而这些,在官方文档中,只字未提。
新版构建
所以可以简化小程序的构建流程为一步:下载论坛内官方提供的源码并上传到自己的账号上。
- 如果你已经安装了3.0.6版本的pc版,想升级官方提供的4.2react版,请注意:官方提供了两个升级包,请下载覆盖安装版,文件大小为31M。并且在网站目录下执行官方提供的升级命令,否则会出现数据库链接失败。
后记
人生没有白走的路,多钻研,多动手才能实现目标。在此次构建过程中,尽管途中对npm进行了一系列操作(或者尝试了HBuilderX),实际上都是无效的。但是,每一次的失败,都在通往成功。
来源地址:https://blog.csdn.net/qq_46832407/article/details/129865000