差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
php:flarum [2021/01/11 14:32] – 创建 shykanaphp:flarum [2021/01/23 16:36] (当前版本) – [配置 Nginx 连接至 Flarum] ooorange
行 9: 行 9:
 Flarum 是一个基于 PHP 的论坛软件。因为是基于 PHP ,所以它对搭建环境的要求比较低。而与其它的基于 PHP 的论坛相比,它的一个优点是比较好看。 Flarum 是一个基于 PHP 的论坛软件。因为是基于 PHP ,所以它对搭建环境的要求比较低。而与其它的基于 PHP 的论坛相比,它的一个优点是比较好看。
  
-{{ :php:flarum:flarum-mobile-view.png?nolink&400 |Flarum的移动端界面}}+{{ :php:flarum:flarum-mobile-view.png?nolink |Flarum的移动端界面}}
  
 另外一个优点是它的插件系统极其丰富,站长可以通过现有的插件很方便地定制自己论坛的功能。 另外一个优点是它的插件系统极其丰富,站长可以通过现有的插件很方便地定制自己论坛的功能。
行 103: 行 103:
 if [ -e /etc/nginx/sites-available/ ]; then echo 'YES'; else echo 'NO'; fi if [ -e /etc/nginx/sites-available/ ]; then echo 'YES'; else echo 'NO'; fi
 </code> </code>
-若输出是 ''YES'' 则您可以按下述方法进行,如果输出为 ''NO'' 您可以直接联系本站负责人责令其更新教程。+若输出是 ''YES'' 则您可以按下述方法进行,如果输出为 ''NO'' <del>您可以直接联系本站负责人责令其更新教程</del>将flarum.conf存放到/etc/nginx/conf.d目录下
  
 输入以下命令使用 [[:edit:nano|nano]] 编辑器编辑 Nginx 配置文件: 输入以下命令使用 [[:edit:nano|nano]] 编辑器编辑 Nginx 配置文件:
行 154: 行 154:
  
 在 Flarum 的网页安装界面上: 在 Flarum 的网页安装界面上:
-{{ :php:flarum:flarum-webins.png?nolink&400 |Flarum 网页版安装界面}}+{{ :php:flarum:flarum-webins.png?nolink |Flarum 网页版安装界面}}
 ^ 栏位      ^ 您应填写的       ^ ^ 栏位      ^ 您应填写的       ^
 |  Forum Title   | 您的网站标题     | |  Forum Title   | 您的网站标题     |
行 168: 行 168:
 点击 ''Install Flarum'' 稍加等待后即可看到 Flarum 的界面。 点击 ''Install Flarum'' 稍加等待后即可看到 Flarum 的界面。
 {{ :php:flarum:flarum-interface.png?nolink&400 | Flarum 界面}} {{ :php:flarum:flarum-interface.png?nolink&400 | Flarum 界面}}
 +
 +===== 配置 =====
 +==== 中文全文搜索 ====
 +
 +这里的配置不行。您可以考虑使用 [[https://mroonga.org/|Mroonga]] 实现中文搜索。但是这里的教程暂时并不能真正实现中文搜索。
 +
 +=== 可以期待的配置 ===
 +
 +请见 [[https://github.com/jjandxa/flarum-ext-chinese-search/|jjandxa/flarum-ext-chinese-search]] ,但现在似乎没有支持 beta.15。
 +
 +=== 勉强可以用的配置 ===
 +
 +这个方法不适用于比较大的站点,因为比较耗资源。教程编写时 Flarum 版本为 beta.15 。
 +
 +直接更改代码:进入 Flarum 安装目录 ''/var/www/flarum'',编辑 ''vendor/flarum/core/src/Discussion/Search/Gambit/FulltextGambit.php'' 文件:
 +找到含有这些东西的部分:
 +<code>
 +        $subquery = Post::whereVisibleTo($search->getActor())
 +            ->select('posts.discussion_id')
 +            ->selectRaw('SUM(MATCH('.$grammar->wrap('posts.content').') AGAINST (?)) as score', [$bit])
 +            ->selectRaw('SUBSTRING_INDEX(GROUP_CONCAT('.$grammar->wrap('posts.id').' ORDER BY MATCH('.$grammar->wrap('posts.content').') AGAINST (?) DESC, '.$grammar->wrap('posts.number').'), \',\', 1) as most_relevant_post_id', [$bit])
 +            ->where('posts.type', 'comment')
 +            ->whereRaw('MATCH('.$grammar->wrap('posts.content').') AGAINST (? IN BOOLEAN MODE)', [$bit])
 +            ->groupBy('posts.discussion_id');
 +</code>
 +(您可以使用一些关键词来搜索代码,加快寻找速度。)看到 ''whereRaw'' 的一行吗?在这一行前加上 <code>//</code> ,并新建一行加上 <code>->where('content', 'LIKE', '%'.$bit.'%')</code>,修改完后:
 +<code>
 +        $subquery = Post::whereVisibleTo($search->getActor())
 +            ->select('posts.discussion_id')
 +            ->selectRaw('SUM(MATCH('.$grammar->wrap('posts.content').') AGAINST (?)) as score', [$bit])
 +            ->selectRaw('SUBSTRING_INDEX(GROUP_CONCAT('.$grammar->wrap('posts.id').' ORDER BY MATCH('.$grammar->wrap('posts.content').') AGAINST (?) DESC, '.$grammar->wrap('posts.number').'), \',\', 1) as most_relevant_post_id', [$bit])
 +            ->where('posts.type', 'comment')
 +            //->whereRaw('MATCH('.$grammar->wrap('posts.content').') AGAINST (? IN BOOLEAN MODE)', [$bit])
 +            ->where('content', 'LIKE', '%'.$bit.'%')
 +            ->groupBy('posts.discussion_id');
 +</code>
 +这个时候保存退出应该就可以进行中文搜索了。但是对于文本内容较多的站点,这种搜索可能比较慢。
 +
 +=== 完全用不了的配置 ===
 +
 +**(请不要用这里下方的配置,因为完全没有用。)**
 +我们这里假定您用的是 MariaDB。
 +MariaDB 的配置文件可能会比较难找,可能会有:
 +<code>
 +/etc/my.cnf.d/server.cnf
 +/etc/mysql/mariadb.conf.d/50-server.cnf
 +</code>
 +一般来说,请善用 ''Tab'' 自动补全功能,输入 ''ls /etc/my'' 之后双击 ''Tab'' 键,然后可以慢慢跟随提示找到类似上述的含有 ''server.cnf'' 字样的配置文件。或者您也可以根据自己的 Linux 发行版类型以及 MariaDB 安装来源上网自行查找。
 +
 +请在 MariaDB 的配置文件中,找到:
 +<code>
 +[mysqld]
 +</code>
 +这一部分。在这一部分添加一行 ''innodb_ft_min_token_size = 1'',变成这样子:
 +<code>
 +[mysqld]
 +innodb_ft_min_token_size = 1
 +</code>
 +保存退出。
 +
 +在终端使用如下命令建立中文检索:(这里的 ''flarumdb'' 请对应您的数据库名称)
 +<code>
 +sudo mysqlcheck -o flarumdb
 +</code>
 +这时您应该就还是不可以在 Flarum 里正常地中文检索。