当前位置: 首页 > news >正文

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

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

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

文章目录

  • 1.安装php
  • 2.安装nginx
  • 3.安装composer
  • 4.安装flarum
  • 5.composer更换源
  • 6.应该是nginx和php运行时的衔接问题,无法解决,是在是没搞懂php在linux上的运行架构是什么样的,在此步放弃,转用docker
  • 7.docker部署的插件安装问题
  • 7.数据库中文检索问题

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部署的插件安装问题

回头补充,记录在另一台电脑上了,最近疫情没有办法解除到那台电脑。

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的界面,但是我放弃使用这个框架。
在这里插入图片描述

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

相关文章:

  • wordpress 电影解析/李勇seo博客
  • 红色系网站/常见的网站推广方式
  • wordpress个人网站主题/深圳经济最新新闻
  • wordpress发微信公众号/重庆百度seo公司
  • 做IPv6网站升级的公司有哪些/网站快速排名推广软件
  • 营销型网站建设的特点/什么软件推广效果好
  • 模数转换器(ADC)
  • 华为云大数据BI解决方案,助力企业实现数字化转型
  • 华为机试_HJ41 称砝码【中等】【menset】【多重背包】【动态规划】【收藏】
  • 统治扩散模型的U-Net要被取代了,谢赛宁等引入Transformer提出DiT
  • LaTex期刊模板下载与使用
  • 【Vue】二、 认识Vue.js的各种指令
  • 漏洞预警| vm2 任意代码执行漏洞
  • aardio简单说说API函数的返回值
  • 为什么视频加密越来越受欢迎
  • PHP 实现PDF转图片
  • Redis常见面试题(五)
  • MySQL 用 explain 关注哪些字段