• [其他问题] 怎么将docs仓库的 Sphinx配置指向 自己的仓库?
    前提:1.我已经在自己的gitee fork了 mindspore的主仓 https://gitee.com/mindspore/mindspore.git 和 doc仓:https://gitee.com/mindspore/docs.git 分别对应 https://gitee.com/zhanghui_china/mindspore.git 和 https://gitee.com/zhanghui_china/docs.git 2.我已经在  https://gitee.com/zhanghui_china/mindspore.git  仓建立了 zhanghui 分支,并修改了 python API函数注释(该注释可以被sphinx生成文档)3.在 https://bbs.huaweicloud.com/forum/thread-113495-1-1.html 一文中,版主大大提到了 可以自行构建 文档环境。git clone https://gitee.com/mindspore/docs.git使用Sphinx工具,在 docs\docs\api_python\目录下执行make html,生成 build_zh_cn 的API文档目录。这些都可以生成。但是有个问题:因为docs仓跟mindspore仓是两个仓库。mindspore仓的 zhanghui分支的修改,在哪里进行配置,才能让make html 从 https://gitee.com/zhanghui_china/mindspore.git 仓库对应的  mindspore/ mindspore / common / initializer.py 文件 生成html?还盼望指点一下。
  • [推理经验] Sphinx输出MindSpore教程PDF文档操作指南
    # Sphinx输出MindSpore教程PDF文档操作指南 - [Sphinx输出MindSpore教程PDF文档操作指南](#sphinx输出mindspore教程pdf文档操作指南) - [概述](#概述) - [整体流程](#整体流程) - [环境依赖](#环境依赖) - [环境准备](#环境准备) - [本地环境准备](#本地环境准备) - [Docker环境准备](#docker环境准备) - [修改配置文件](#修改配置文件) - [输出PDF文档](#输出pdf文档) - [本地输出PDF文档](#本地输出pdf文档) - [使用Docker输出PDF文档](#使用docker输出pdf文档) - [注意事项](#注意事项) - [结语](#结语) `python-sphinx` `xelatex` `pdf` ## 概述 MarkDown——作为一种轻量级标记语言,允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学公式都有支持,目前许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。固然输出HTML版本的教程用户可以很方便的查阅,但是却不具有印刷风格的阅读体验,不便于存档保存,更不能用于印刷发行。作为业界流行的文档输出工具,[Sphinx](https://www.sphinx-doc.org/en/master/index.html)从2.0.0版本开始已经支持使用[xelatex](https://www.overleaf.com/learn/latex/XeLaTeX)引擎,我们可以利用[xelatex](https://www.overleaf.com/learn/latex/XeLaTeX)很方便的输出高质量的印刷版本的PDF文档。关于Sphinx的基本使用可参考[《windows环境下配置sphinx输出html文档》](https://bbs.huaweicloud.com/forum/thread-57862-1-1.html),接下来我们通过输出[MindSpore推理教程](https://www.mindspore.cn/tutorial/inference/zh-CN/master/index.html)PDF中文文档为例,介绍如何使用Sphinx输出PDF文档。 ### 整体流程 ![流程.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202009/30/125052xvb5ugbgmjqsh8xl.png) ### 环境依赖 - python3 - sphinx: 版本高于2.0.0 - ubuntu:需有make编译工具 ## 环境准备 > 我们可以通过本地安装依赖或利用Docker Hub两种方式完成相关环境的配置: ### 本地环境准备 在安装有python3和具有[make编译](https://www.gnu.org/software/make/)能力的ubuntu系统(推荐使用ubuntu系统来解决相关依赖问题)上,执行以下命令,安装xelatex和sphinx。 1. 安装sphinx及相关依赖。 将[MindSpore推理教程](https://www.mindspore.cn/tutorial/inference/zh-CN/master/index.html)的[源文件](https://gitee.com/mindspore/docs/tree/master/tutorials/inference)下载到本地后,进入到该目录下: ```shell inference ├── Makefile ├── requirements.txt ├── source_en │   ├── conf.py │   ├── index.rst │   ├── multi_platform_inference_ascend_310.md │   ├── multi_platform_inference_ascend_910.md │   ├── multi_platform_inference_cpu.md │   ├── multi_platform_inference_gpu.md │   ├── multi_platform_inference.md │   ├── serving.md │   └── _static └── source_zh_cn ├── conf.py ├── index.rst ├── multi_platform_inference_ascend_310.md ├── multi_platform_inference_ascend_910.md ├── multi_platform_inference_cpu.md ├── multi_platform_inference_gpu.md ├── multi_platform_inference.md ├── serving.md └── _static ``` 执行以下命令安装sphinx: ```shell $ pip install -r requirements.txt ``` 2. 安装xelatex。 使用apt管理器执行以下命令安装xelatex引擎(整体约为3G大小,用时较久,请耐心等待): ```shell $ sudo apt-get install texlive-lang-chinese \ graphviz \ imagemagick \ make \ latexmk \ lmodern \ texlive-latex-recommended \ texlive-latex-extra \ texlive-fonts-recommended \ texlive-fonts-extra \ texlive-lang-cjk \ texlive-luatex \ texlive-xetex \ texlive-latex-extra-doc ``` ### Docker环境准备 我们也可以使用Docker安装所需的环境。详细可参考<https://github.com/sphinx-doc/docker>。 执行以下命令从Docker Hub获取sphinx镜像: ```shell $ sudo docker pull sphinxdoc/sphinx-latexpdf:2.4.4 ``` ## 修改配置文件 进入到本地MindSpore推理教程源文件目录,配置文件位置为`source_zh_cn/config.py`, 在末尾添加如下所示代码: ```python latex_engine = 'xelatex' latex_use_xindy = False latex_elements = { 'preamble': '\\usepackage[UTF8]{ctex}\n', 'papersize': 'a4paper', 'pointsize': '10pt', } latex_toplevel_sectioning = None latex_domain_indices = True latex_show_pagerefs = False latex_logo = '{logo_path}' master_doc = 'index' ``` - 其中`logo_path`为封面logo图像的路径。 更多的配置选项参考<https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-latex-output>进行自定义配置。 ## 输出PDF文档 ### 本地输出PDF文档 进入到本地MindSpore推理教程源文件`inference`目录下,执行以下命令生成PDF文档: ```shell $ make latexpdf ``` 输出完成后,会在当前目录下生成`build_zh_cn`目录,且生成的PDF文档位置为`./build_zh_cn/latex/mindspore.pdf`(输出的PDF文件已上传为附件)。 ### 使用Docker输出PDF文档 进入到本地MindSpore推理教程源文件`inference`目录下,执行以下命令启动Sphinx容器,生成PDF文档: ```shell $ docker run --rm -v {mindspore_inference_tutorial_path}:/docs sphinxdoc/sphinx-latexpdf make latexpdf ``` - 其中`mindspore_inference_tutorial_path`为本地MindSpore推理教程源文件目录的路径。 输出完成后,会在当前目录下生成`build_zh_cn`目录,且生成的PDF文档位置为`./build_zh_cn/latex/mindspore.pdf`。 ### 注意事项 - 需要从源文件中去除引入了视频相关的MarkDown文档; - 需要从源文件中去除引入了JIF格式图片的MarkDown文档; ## 结语 Sphinx作为优秀的技术文档输出的开源工具,用户可以方便的利用其输出多种格式的文档,但打铁还需自身硬,如何创建高质量的技术文档源文件才是才是技术人员最应该关心的,例如内容要抓住重点、贴切用户、易懂,引用的相关图片要合理,文档版本要随着产品迭代更新。高质量的技术文档,加上流行易用的文档解析工具,一定能给用户带来最好的体验。
  • [技术干货] 10分钟快速在华为云鲲鹏弹性云服务器上部署一个自己的弹幕网站!
    看视频,还可参与回帖互动领好礼活动!快来参与吧:https://bbs.huaweicloud.com/forum/thread-59291-1-1.html从零代码开始,10分钟快速开发一个可以发送弹幕的网站,并将其部署在华为云服务器上;学完本期教程,将可以知道如何使用Nginx、如何将自己的网站部署到云服务器上,还可以免费学习WEB前端全栈教程,各位小伙伴们一起来学习吧~,传送门--->WEB前端全栈成长计划开发思路    首先是让弹幕的随机高度出现,这个计算方法是:最大高度=屏幕的高度-发送div的高度-弹幕本身的高度,范围就是 0-最大高度了,弹幕总是从右往左移动,所以出现最右侧的位置计算方法是:最右侧位置=屏幕的宽度-弹幕本身的宽度;接下来就是设置随机颜色,颜色按照‘#aabbcc’这种格式,利用Math.random()随机数生成;最后是弹幕的发送,首先是获取输入框中的值,然后新创建一个div,并设置随机颜色、位置等属性,调用init() 函数。    总结如下步骤:    1、获取弹幕对象:随机高度、初始化颜色    2、水平期间设置范围:浏览器宽度-弹幕对象的高度    3、移动功能函数:定时器 setInterval    4、实现用户发表弹幕用到的知识点    1、首先页面搭建,就是这些东西是如何摆放的——html+css布局    2、弹幕字体的位置和样色设置——css样式    3、可以输入文字然后点击可以发送弹幕——按钮的点击事件    4、字体可以旋转——css动画    5、弹幕字体可以从右往左滑动——js控制字体对象的style属性代码块style代码  <style type="text/css">     * {       margin: 0;       padding: 0;     }     .screen {       width: 100%;       height: 100%;       position: absolute;       top: 0;       left: 0;     }     .send {       width: 100%;       height: 76px;       background: #333;       position: absolute;       bottom: 0;       left: 0;       text-align: center;       line-height: 76px;     }     .send .s_txt {       width: 600px;       height: 36px;       border: 0;       border-radius: 3px 0 0 3px;       font-size: 16px;       line-height: 36px;     }     .send .s_sub {       width: 100px;       height: 37px;       background: #65c33d;       border: 0;       font-size: 14px;       color: #fff;       border-radius: 0 3px 3px 0;       cursor: pointer;     }     .send .s_sub:hover {       background: #3eaf0e;     }     .screen div {       position: absolute;       top: 76px;       left: 0;       font-size: 22px;       color: red;     }     .magictime {       animation-duration: 1s;       animation-name: magictime;     }     @keyframes magictime {       0% {         opacity: 0;         transform-origin: 100% 0;         transform: scale(0, 0) rotate(360deg) translateY(100%);       }       30% {         transform-origin: 100% 0;         transform: scale(0, 0) rotate(360deg) translateY(100%);       }       100% {         opacity: 1;         transform-origin: 0 0;         transform: scale(1, 1) rotate(0deg) translateY(0);       }     }   </style>弹幕滚动div代码<div class="screen">     <div>这是一条弹幕!</div>     <div>这是另一条弹幕!</div>     <div>老黄最帅~~~</div>     <div>没错,这又是一条弹幕!</div>     <div>这里都是弹幕</div>     <div>前方高能!!!</div> </div>发送弹幕div代码<div class="send">     <input type="text" class="s_txt" />     <input type="button" id="send_sub" value="发表评论" class="s_sub" /> </div>javascript逻辑代码<script>     var oShowList = document.querySelectorAll('.screen div')     var oShow = document.querySelector('.screen')     var oSend = document.querySelector('.send')     var oText = document.querySelector('.s_txt')     var oBtn = document.querySelector('#send_sub')     oBtn.onclick = function () {       var oDiv = document.createElement('div')       oDiv.innerHTML = oText.value;       oDiv.className = 'magictime';       oShow.appendChild(oDiv)       init(oDiv)       oText.value = ''     }     for (var i = 0; i < oShowList.length; i++) {       init(oShowList);     }     function init(obj) {       var screenHeight = document.documentElement.clientHeight;//获取浏览器高度       var screenWidth = document.documentElement.clientWidth;//获取浏览器宽度       var sendHeight = oSend.clientHeight;       var maxTop = screenHeight - sendHeight - obj.clientHeight;       var maxLeft = screenWidth - obj.clientWidth;       obj.style.top = Math.random() * maxTop + 'px'       obj.style.left = maxLeft + 'px'       obj.style.color = randomColor()       move(obj, maxLeft)     }     function randomColor() {       var color = '#';       for (var i = 0; i < 6; i++) {         color += Math.floor(Math.random() * 16).toString(16)       }       return color;     }     function move(obj, maxLeft) {       maxLeft -= 3;       if (maxLeft > -obj.clientWidth) {         obj.style.left = maxLeft + 'px'         requestAnimationFrame(function () {           move(obj, maxLeft)         });       } else {         oShow.removeChild(obj)       }     }   </script>安装部署首先领取一个月的免费服务器,如果通过我这里注册,还可以领取200元的代金券,可多购买两个月的服务器  领取地址 ,然后系统选择Ubuntu 18.04 server 64bit,设置密码,领取后按照以下步骤初始化:首先修改一下安全组,点击控制台-弹性云服务器,点击实例名字点击安全组-更改安全组添加以下端口配置在网页上远程登录也可以通过xshell登录,用户名为root,密码为之前设置的,如果忘了可以选择重置系统安装nginx# 更新一下系统 apt-get update # 安装: apt-get install nginx # 安装上传工具 apt install lrzsz配置nginx# 上传弹幕的文件 cd /var/www/htm/ rz  # 选取弹幕网页文件  index.html,可在附件下载 # 启动: nginx -c /etc/nginx/nginx.conf  # 访问 访问自己的公网IP即可,老黄的是 http://124.70.138.209/好啦,以上就是开发一个可以发送弹幕网站的完整过程了,如果有什么疑问,欢迎在下面留言告诉老黄~
  • [应用实践] windows环境下配置sphinx输出html文档
    # 序言 [Sphinx](http://sphinx-doc.org/) 是一个基于 Python 的文档生成项目。最早只是用来生成 [Python](https://docs.python.org/3/) 的项目文档,使用 *reStructuredText* 格式。但随着项目的逐渐完善,很多非 Python 的项目也采用 Sphinx 作为文档写作工具。 [特点](http://sphinx-doc-zh.readthedocs.org/en/latest/): - 丰富的输出格式: 支持输出为 HTML(包括 Windows 帮助文档),LaTeX(可以打印PDF版本), manual pages(man 文档), 纯文本等若干种格式; - 完备的交叉引用: 语义化的标签,并可以自动化链接函数、类、引文、术语等; - 明晰的分层结构: 轻松定义文档树,并自动化链接同级/父级/下级文章; - 美观的自动索引: 可自动生成美观的模块索引; - 精确的语法高亮: 基于 Pygments 自动生成语法高亮; - 开放的扩展: 支持代码块的自动测试,自动包含 Python 的模块自述文档 # 安装 ![flow.jpg](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/141938qbashkfud1k0ewmk.jpg) 可以通过**源码编译安装**或**使用包管理器**来安装Sphinx环境,在这里,我们通过PyPI使用pip命令安装Sphinx: * 在Linux或MacOS上 $ pip install -U sphinx * 在Windows上 C:\> pip install -U sphinx 安装完成后,在命令行输入`sphinx-build --version`可以看到Sphinx软件包的版本号 ![sphinx-build.JPG](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/142002sblxpvvfphwkfhts.jpg) * 可以安装最新版本,测试最新的特性 $ pip install -U --pre sphinx # 创建项目 ## ①. 新建项目    `cmd`命令行进入存放项目的根目录,使用命令`sphinx-quickstart`新建项目,根据提示分别输入项目信息和配置,操作流程如下图所示: ![quickstart.JPG](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/142021ajwkf2ml1unuzgwd.jpg) 提示信息为: 1. 是否分离源文件目录 `source` 和生成文件目录 `build`,默认否; 2. 模板目录 `templates` 和静态文件目录 `static` 前缀,默认为`_`; 3. 项目名称; 4. 项目作者; 5. 项目版本,默认为空; 6. 项目语言,默认为 `en`; 7. 文档扩展名,默认为 `.rst`; 8. 首页文件名,默认为 `index`; 9. 开启的扩展,均默认为否: 10. 生成 Makefile,默认是; 11. 生成 Windows 用命令行,默认是 项目新建后,查看生成的文件目录: ![生成文件目录.JPG](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/142057h3htjt7zvebqhxk4.jpg) 各文件或目录的功能为: - `Makefile`:可以看作是一个包含指令的文件,在使用 make 命令时,可以使用这些指令来构建文档输出。 - `build`:生成的文件的输出目录。 - `make.bat`:Windows 用命令行。 - `_static`:静态文件目录,比如图片等。 - `_templates`:模板目录。 - `conf.py`:存放 Sphinx 的配置,包括在 `sphinx-quickstart` 时选中的那些值,可以自行定义其他的值。 - `index.rst`:文档项目起始文件。 ## ②.执行命令`make html` 在项目根目录下执行命令`make html`,生成html资源文件: ![make html.JPG](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/142126pkwfq6xty8sijzus.jpg) 此时查看项目目录: ![make之后目录.JPG](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/142144oringzkrfenbztz6.jpg) 可以看到在build/html文件夹下,生成了html资源文件,打开index.html,可以看到初始化的大致网页框架: ![初始html.JPG](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/142212tyzltascfeqag2vs.jpg) ## ③. **修改配置文件[config.py](https://www.sphinx.org.cn/usage/configuration.html#project-information),添加自己的内容** - **以上初始化项目之后,需要添加自己的内容和配置信息,输出自己的文档** 这里以输出mindspore的html格式介绍文档为例,由于主要内容为markdown格式文挡,需要安装`recommonmark`模块儿: ``` pip install recommonmark ``` **添加内容**: 从[Gitee仓库中](https://gitee.com/mindspore/docs)下载markdown格式的说明文档,这里以api目录下的source_zh_cn为例 ![api_doc.JPG](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/173515yogcvdcald4qlbg9.jpg) 将`source_zh_cn`目录下载到本地,里面包含编写好的所有markdown文档,且已包含由**config.py和index.rst**配置文档,参考[修改配置信息](https://www.sphinx.org.cn/usage/configuration.html#project-information),本地目录结构如下图所示: ![添加内容.JPG](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/142229prssa2r81inio256.jpg) ## &#9315;.生成文档 1. 首先修改由`quickstart`初始化生成的**make.bat**脚本文件,该文件内容为: ``` @ECHO OFF pushd %~dp0 REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set SOURCEDIR=source set BUILDDIR=build if "%1" == "" goto help %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. echo.The 'sphinx-build' command wa not found. Make sure you have Sphinx echo.installed,then set the SPHINXBUILD environment viriable to point echo.to the full path of the 'sphinx-build' executable.Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.if you don't have Sphinx installed,grab it from echo.http://sphinx-doc.org/ exit /b 1 ) %SPHINXBUILD% -M %1 %SOURCEDIR %BUILDDIR% %SPHINXOPTS% %O% goto end :help %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% :end popd ``` ​ 在这里将SOURCEDIR和BUILDDIR修改为: set SOURCEDIR=source_zh_cn set BUILDDIR=build_zh_cn 2. 使用`make <type>`命令生成特定的文档格式,在这里我们生成html文件 执行`make html` ![make html2.JPG](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202005/30/1422474ewjqqverjrqitf7.jpg) 此时,生成了build_zh_cn目录,里面包含了html文档,打开build_zh_cn/html/indext.html,可以在浏览器中review生成的html页面。 # 总结 在整个过程中我们使用sphinx在windows环境下将多个markdown、reStructuredText说明文档进行链接,构建成为可读性更强的html文档,其中关键的是配置文件的修改和自定义内容格式。使用sphinx可以使得生成的文档更具有可读性和美化,因此推荐参考[官方应用案例](https://www.sphinx.org.cn/examples.html)和配置信息。
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第121期Sphinx-2.2.11安装配置指南
    1、简介Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如Java,PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。开源地址:http://sphinxsearch.com 2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.7Kernel4.14软件包sphinx2.2.11http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz3、依赖安装 yum install gcc-c++ automake imake libl2-devel libxml2-devel expat-devel4、组件编译安装 wget http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gztar -zxvf sphinx-2.2.11-release.tar.gzcd sphinx-2.2.11-release./configuremake && make install5、系统配置 无  6、测试1) 创建“data”目录。mkdir /var/data2) 导入Sphnix的测试数据到MySQL中。mysql -uroot -p test < /usr/local/etc/example.sql3) 备份配置文件。cp /usr/local/etc/sphinx.conf.dist /usr/local/etc/sphinx.conf修改“sphinx.conf”文件,对应信息修改成如下内容:sql_host= localhost   #服务器名sql_user= root     #数据库账户名sql_pass= Huawei@123     #数据库密码sql_db= test    #使用sphnix库名sql_port= 3306  #optional, default is 3306 注释掉下面内容sql_query_pre = SET NAMES utf84)创建测试索引文件。cd /usr/local/bin./indexer --all    5)启动Sphnix搜索服务器。./searchd   6)进入Sphnix解压后的文件夹中(假设为“/root/sphinx-2.2.11-release/”),并使用Sphnix安装包自带的API工具测试。cd /root/sphinx-2.2.11-release/apipython test2.py 回显结果如下:n=1, res=this is my <b>text</b> <b>test</b> to be highlighted n=2, res=this is another <b>test</b> <b>text</b> to be highlighted7、参考信息无8、FAQ无
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第076期Sphinx-2.2.11安装配置指南
    1、简介Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如Java,PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。开源地址:http://sphinxsearch.com2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.7Kernel4.14软件包sphinx2.2.11http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz3、依赖安装 yum install gcc-c++ automake imake libl2-devel libxml2-devel expat-devel4、组件编译安装编译安装sphinxwget http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gztar -zxvf sphinx-2.2.11-release.tar.gzcd sphinx-2.2.11-release./configuremake && make install5、系统配置  无6、测试1) 创建“data”目录。mkdir /var/data2)导入Sphnix的测试数据到MySQL中。mysql -uroot -p test < /usr/local/etc/example.sql3)备份配置文件。cp /usr/local/etc/sphinx.conf.dist /usr/local/etc/sphinx.conf4)修改“sphinx.conf”文件,对应信息修改成如下内容:sql_host= localhost   #服务器名sql_user= root     #数据库账户名sql_pass= Huawei@123     #数据库密码sql_db= test    #使用sphnix库名sql_port= 3306  #optional, default is 3306注释掉下面内容sql_query_pre = SET NAMES utf86)创建测试索引文件,启动Sphnix搜索服务器cd /usr/local/bin./indexer --all./searchd5)进入Sphnix解压后的文件夹中(假设为“/root/sphinx-2.2.11-release/”),并使用Sphnix安装包自带的API工具测试。cd /root/sphinx-2.2.11-release/apipython test2.py回显结果如下:n=1, res=this is my <b>text</b> <b>test</b> to be highlighted n=2, res=this is another <b>test</b> <b>text</b> to be highlighted7、参考信息https://www.huaweicloud.com/kunpeng/software/sphinx.html8、FAQ无
  • [中间件] 【华为云鲲鹏云服务最佳实践】【中间件篇】第008期 sphinx 2.2.11 安装配置指南
    1、简介      Sphinx 是一个工具,它能够轻易地创建智慧和优雅的文档,出自Georg Brandl之手,在BSD许可证下授权。它能够把一组 reStructuredText 格式的文件转换成各种输出格式,而且自动地生成交叉引用,生成目录等。      类别:工具      官方链接:http://www.sphinx-doc.org 2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.6 Kernel4.14 软件包Sphinx2.2.11https://kojipkgs.fedoraproject.org//packages/sphinx/2.2.11/11.fc29/src/sphinx-2.2.11-11.fc29.src.rpm 3、依赖安装安装操作系统自带依赖软件版本4、组件编译安装1)安装epel-release 源yum install epel-release 进入/etc/yum.repos.d/epel.repo.rpmnewvim /etc/yum.repos.d/epel.repo.rpmnew写入如下内容[epel]name=Extra Packages for Enterprise Linux 7 - $basearchbaseurl=https://mirrors.huaweicloud.com/epel/7/$basearchfailovermethod=priorityenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo]name=Extra Packages for Enterprise Linux 7 - $basearch - Debugbaseurl=https://mirrors.huaweicloud.com/epel/7/$basearch/debugfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=0 [epel-source]name=Extra Packages for Enterprise Linux 7 - $basearch - Sourcebaseurl=https://mirrors.huaweicloud.com/epel/7/SRPMSfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=0使用:wq保存并退出2)安装rpmbuild命令yum install rpm-build -y3)从fedora网站下载源码包wget https://kojipkgs.fedoraproject.org//packages/sphinx/2.2.11/11.fc29/src/sphinx-2.2.11-11.fc29.src.rpm4)安装源码包rpm -ivh sphinx-2.2.11-11.fc29.fc29.src.rpm可能出现的问题:解决用户组的问题,因为在fedora编译的时候存在这个用户组,解决问题方法如下:解决mock问题后,直接安装rpm -ivh sphinx-2.2.11-11.fc29.src.rpm编译使用命令rpmbuild -ba ~/rpmbuild/SPECS/sphinx.spec出现如上所示需要安装的依赖包,使用yum源统一安装,使用yum安装所有依赖后,发现有两个包yum源中没有,重新rpmbuild –ba发现确实只缺这两个包,重复上述操作,从fedora网站下载mariadb和libpq-devel源码包,使用rpm -ivh安装mariadb然后 rpmbuild -ba ~/rpmbuild/SPECS/mariadb-connector-c.spec安装上述依赖包编译完成后可以看到src包编译出的所有相关rpm包安装我们上面依赖的包继续安装,yum install装对应包,装不上的继续重复上面的步骤;查询每个包的依赖包:继续安装,对于依赖包重复上述操作<img border="0" style="width: 835px; height: 309px;" src="https://bbs.huaweicloud.com/forum/data/attachment/forum/201907/21/word-f4e077ccefa248b3deac82534d87<span style="/>在/root/rpmbuild/RPMS/aarch64/中,可以查看rpm包,并进行安装编译好的包。5、系统配置无6、测试启动服务并查看服务状态测试结果:如下图,启动成功7、参考信息官方链接:http://www.sphinx-doc.org 8、FAQQ:为什么要下载src包?A:因为fedora上编出来的包使用的gcc版本都比较新 ,在centos7上会出现各种依赖冲突的问题。Q:在编译MariaDB时出现错误无法下载?A:两种方式解决问题:方案一:使用低版本https://kojipkgs.fedoraproject.org//packages/mariadb-connector-c/3.0.10/2.fc31/src/mariadb-connector-c-3.0.10-2.fc31.src.rpm方案二:配置文件中的%ldconfig_scriptlets替换为%post -p /sbin/ldconfig %postun -p /sbin/ldconfig