入门docker笔记 Flarum 加入中文搜索支持 基于flarum-ext-chinese-search home 编辑时间 2019/11/14 ![](/api/file/getImage?fileId=5e099a7216199b501c000994) ## 简介 承接上一篇: [入门docker笔记 从零搭一个轻论坛系统 基于Flarum](https://leanote.zzzmh.cn/blog/post/5da56e2e16199b0467000714) 已知可以实现的中文插件是: [flarum-ext-chinese-search](https://flagrow.io/extensions/jjandxa/flarum-ext-chinese-search) **补充一下:该插件目前版本只能支持到beta.8.1,最新的0.1.0-beta.10-stable版本尚未得到该插件支持,该插件作者在github的issues中说正在开发适配** 难点在于他依赖的 `xunsearch` 服务 以及`xunsearch` 依赖了 `gawk` `make` `gcc` `g++` `zlib1g-dev` 本篇重点是讲如何在上一篇的docker环境中 依次安装这些依赖 最终实现flarum的中文搜索 ## 前言 回溯到上一篇里用到的docker镜像 [https://hub.docker.com/r/mondedie/docker-flarum](https://hub.docker.com/r/mondedie/docker-flarum) 这里需要研究的是`Dockerfile` , 来熟悉该`docker`的环境 ```shell FROM alpine:3.10 LABEL description "Simple forum software for building great communities" \ maintainer="Hardware <hardware@mondedie.fr>, Magicalex <magicalex@mondedie.fr>" ARG VERSION=v0.1.0-beta.10 ENV GID=991 \ UID=991 \ UPLOAD_MAX_SIZE=50M \ PHP_MEMORY_LIMIT=128M \ OPCACHE_MEMORY_LIMIT=128 RUN echo "@community http://dl-cdn.alpinelinux.org/alpine/v3.10/community" >> /etc/apk/repositories \ && apk add -U \ nginx \ s6 \ su-exec \ curl \ git \ php7@community \ php7-fileinfo@community \ php7-phar@community \ php7-fpm@community \ php7-curl@community \ php7-mbstring@community \ php7-openssl@community \ php7-json@community \ php7-pdo@community \ php7-pdo_mysql@community \ php7-mysqlnd@community \ php7-zlib@community \ php7-gd@community \ php7-dom@community \ php7-ctype@community \ php7-session@community \ php7-opcache@community \ php7-xmlwriter@community \ php7-tokenizer@community \ php7-zip@community \ php7-intl@community \ && cd /tmp \ && curl -s http://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && chmod +x /usr/local/bin/composer \ && composer global require hirak/prestissimo \ && mkdir -p /flarum/app \ && chown -R $UID:$GID /flarum \ && COMPOSER_CACHE_DIR="/tmp" su-exec $UID:$GID composer create-project flarum/flarum /flarum/app $VERSION --stability=beta \ && composer clear-cache \ && rm -rf /flarum/.composer /var/cache/apk/* COPY rootfs / RUN chmod +x /usr/local/bin/* /services/*/run /services/.s6-svscan/* VOLUME /flarum/app/extensions /etc/nginx/conf.d EXPOSE 8888 CMD ["run.sh"] ``` <br><br> 这里面的重点就是第一句,这个docker基于 `alpine:3.10` 这也就解释了为什么这个镜像不支持常用的安装命令 例如`apt install` `yum install` `dpkg -i xxx` `rpm -i xxx` `make install` 这里不多赘述`Alpine Linux`是个什么了,有兴趣可以左转百度 简述一下他是如何安装软件的 参考:https://www.cnblogs.com/alpine-enterprise/p/10898312.html APK 常用命令 ```shell # 更新镜像源 apk update # 更新系统 apk upgrade # 搜索 apk search xxx # 高级搜索 apk search -v -d ‘nginx*’ # 安装 apk add xxx xxx xxx # 删除 add del xxx ``` ## 折腾 ### 阿里云镜像源 ```shell # 直接安排上阿里云的镜像源 sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories # 更新镜像源立即生效 apk update ``` ### xunsearch的依赖 ```shell # 这里面zlib1g-dev依赖安装的库是zlib-dev apk add gawk make gcc g++ zlib-dev # 如果感觉有需要可以顺便装个vim apk add vim ``` ### xunsearch 本体 官网文档:http://www.xunsearch.com/doc/php/guide/start.installation ```shell # 下载 wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 # 解压 tar -xjf xunsearch-full-latest.tar.bz2 ``` 然后根据自己的版本号不同cd到解压以后的目录 ```shell # 进入目录 cd xunsearch-full-1.3.0/ # 执行安装脚本 sh setup.sh ``` 一上来会看到这一段 ```shell +==========================================+ | Welcome to setup xunsearch(full) | | 欢迎使用 xunsearch (完整版) 安装程序 | +------------------------------------------+ | Follow the on-screen instructions please | | 请按照屏幕上的提示操作以完成安装 | +==========================================+ ``` 然后会问安装目录,我是简单粗暴选了根目录 ```shell # 输入安装目录 /xunsearch # 输入y确认 y ``` 中间没什么操作,看到这段内容说明安装成功 ```shell +=================================================+ | Installation completed successfully, Thanks you | | 安装成功,感谢选择和使用 xunsearch | +-------------------------------------------------+ | 说明和注意事项: | | 1. 开启/重新开启 xunsearch 服务程序,命令如下: | | /xunsearch/bin/xs-ctl.sh restart | 强烈建议将此命令写入服务器开机脚本中 | | | | 2. 所有的索引数据将被保存在下面这个目录中: | | /xunsearch/data | 如需要转移到其它目录,请使用软链接。 | | | | 3. 您现在就可以在我们提供的开发包(SDK)基础上 | | 开发您自己的搜索了。 | | 目前只支持 PHP 语言,参见下面文档: | | /xunsearch/sdk/php/README +=================================================+ ``` <br> ### 启动 `xunsearch` 服务 先按照官网给的教程启动一下 ```shell ./xunsearch/bin/xs-ctl.sh -b 0.0.0.0 start ``` (如果一路到底全部正常,以后还需要把xunsearch的服务启动命令加入到开机启动中,否则重启会失效) ## 安装flarum-ext-chinese-search插件 到了安装中文搜索插件本体的部分 插件链接:[https://flagrow.io/extensions/jjandxa/flarum-ext-chinese-search](https://flagrow.io/extensions/jjandxa/flarum-ext-chinese-search) ### 进入安装目录 先进入flarum本体目录 ```shell cd /flarum/app/ ``` ### composer镜像源 如果之前没安装composer阿里云镜像源的话,这里还是推荐安装一下,已经有就不必再安装了 ```shell # 全局安装 composer 阿里云镜像源 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ ``` ### 安装插件本体 ```shell composer require jjandxa/flarum-ext-chinese-search ``` ### 启用插件 只要前面所有步骤都操作正确 `xunsearch` 服务也在后台运行当中 这里就可以一步通过 ![](/api/file/getImage?fileId=5e099a7316199b501c000995) ## END 送人玫瑰,手留余香 赞赏 Wechat Pay Alipay 区块链入门 HyperLeger Fabric开发 Deepin15.11 下安装任意exe程序 亲测可行