Flarum部署:从源码到docker到放弃

警告:
此篇文章前半段记录了我用代码部署flarum遇到的一些问题和解决办法,但是可能是由于我是在不熟悉php的框架结构,最终我还是选择了使用docker进行部署,请斟酌是否继续阅读本文。

Hello,大家好,我是内网部署区博主橘子。
Flarum是个非常漂亮的轻量级论坛框架。
我本来想在内网部署一个这个东西当做数据共享的平台,奈何如我警告里说的那样。
一开始计划用代码部署,因为自由度更高。
后来发现用docker也是一样,就是需要修改一下指令而已。推荐如果有需要的朋友还是使用docker部署。
docker真的香!

1.安装php

直接用apt安装就行

2.安装nginx

也用apt安装

3.安装composer

https://blog.csdn.net/qq_44678350/article/details/126478108
直接下载二进制文件该权限放路径,我就喜欢这么粗暴的。为后面埋下了一个伏笔,这里是由于https的证书问题所以我选择用下载的方式安装composer,但是后面还是遇到了证书问题需要解决。

4.安装flarum

composer create-project flarum/flarum .
注意这里需要一个空的目录,如果目录里面有东西他就不让你装了。

如果你在这一步遇到这个问题,

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - flarum/pusher[v1.0.0, ..., v1.6.0] require pusher/pusher-php-server ^2.2 -> satisfiable by pusher/pusher-php-server[v2.2.0, ..., 2.6.4].
    - pusher/pusher-php-server[v2.2.0, ..., 2.6.4] require ext-curl * -> it is missing from your system. Install or enable PHP's curlextension.
    - Root composer.json requires flarum/pusher * -> satisfiable by flarum/pusher[v1.0.0, ..., v1.6.0].

To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/8.1/cli/php.ini
    - /etc/php/8.1/cli/conf.d/10-opcache.ini
    - /etc/php/8.1/cli/conf.d/10-pdo.ini
    - /etc/php/8.1/cli/conf.d/20-calendar.ini
    - /etc/php/8.1/cli/conf.d/20-ctype.ini
    - /etc/php/8.1/cli/conf.d/20-exif.ini
    - /etc/php/8.1/cli/conf.d/20-ffi.ini
    - /etc/php/8.1/cli/conf.d/20-fileinfo.ini
    - /etc/php/8.1/cli/conf.d/20-ftp.ini
    - /etc/php/8.1/cli/conf.d/20-gettext.ini
    - /etc/php/8.1/cli/conf.d/20-iconv.ini
    - /etc/php/8.1/cli/conf.d/20-phar.ini
    - /etc/php/8.1/cli/conf.d/20-posix.ini
    - /etc/php/8.1/cli/conf.d/20-readline.ini
    - /etc/php/8.1/cli/conf.d/20-shmop.ini
    - /etc/php/8.1/cli/conf.d/20-sockets.ini
    - /etc/php/8.1/cli/conf.d/20-sysvmsg.ini
    - /etc/php/8.1/cli/conf.d/20-sysvsem.ini
    - /etc/php/8.1/cli/conf.d/20-sysvshm.ini
    - /etc/php/8.1/cli/conf.d/20-tokenizer.ini
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
Alternatively, you can run Composer with `--ignore-platform-req=ext-curl` to temporarily ignore these required extensions.

我一开始以为他说的extensions是指flarum的extensions
后来我才发现,他指的是php的插件。
所以你需要用apt-get install php-curl指令来装 php的插件
在这里插入图片描述
根据官网的提示,他需要这些插件,但是你不用一个个去安装,缺啥装啥就行。
我缺了curl和dom两个插件,php版本是8.1.

5.composer更换源

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
奇怪的是这个指令我执行了一次并没有更换成功,执行第二次才更换成功。
可以通过composer config -g -l指令查看是否更换成功

在这里插入图片描述
这样应该就是更换成功了。

6.应该是nginx和php运行时的衔接问题,无法解决,是在是没搞懂php在linux上的运行架构是什么样的,在此步放弃,转用docker

我选的是nginx做反向,但是一直无法成功,一直显示500
在这里插入图片描述

发现我的Php根本就没有启动,回想我前面还强制关掉了apache,我预计,nginx和php还需要修改某些配置。

设置Php程序监听端口

遇到权限问题

"/home/zz/flarum/public/" failed (13: Permission denied), client: 192.168.1.36, server:192.168.1.31, request: "GET / HTTP/1.1", host: "192.168.1.31"

解决不了php的权限太绕了,搞不懂放弃,继续用docker.

7.docker部署的插件安装问题

docker exec -ti flarum extension require flarum-lang/chinese-simplified

docker exec -ti flarum composer require flarum-lang/chinese-simplified

比较一下上面两个指令有什么区别,区别就在这个extentsion和composer

当你使用docker部署的时候,应该是镜像的制作人对composer单独做了一个封装,docker里面的flarum系统用到的是extentsion是独立于composer的一个封装,所以咱查到的所有指令都要改成用extentsion

7.数据库中文检索问题

我自己接入了一个mysql据库,中文索引构建可以查看下面这位大佬。

https://www.cnblogs.com/ztxd/articles/16739111.html

修改 mysql.cnf,加入:

[mysqld] ngram_token_size=2 修改后需要重建 FULLTEXT 索引

ALTER TABLE flarum_posts DROP INDEX content; CREATE FULLTEXT INDEX
content ON posts (content) WITH PARSER ngram; (如果你有表前缀,给 posts
加上前缀即可,下面都是如此。)

ALTER TABLE flarum_discussions DROP INDEX title; CREATE FULLTEXT INDEX
title ON discussions (title) WITH PARSER ngram; (注意表前缀)

上面提到的前缀你可以看一下你的表,在配置flarum的数据库的时候填写的那个pref就是前缀。

然而,mysql的检索方案不是完美的,分词不清晰。
加上许多插件的使用有点诡异,php composer环境的不理解。
至此,虽然我很喜欢Flarum的界面,但是我放弃使用这个框架。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值