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

news2025/7/9 5:52:56

警告:
此篇文章前半段记录了我用代码部署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的界面,但是我放弃使用这个框架。
在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/109000.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源项目-OA自动化管理系统

哈喽,大家好啊,今天给大家带来一个开源系统-办公自动化管理系统 简介: OA( Office Automation System)办公自动化系统是一个企业用来管理日常事务的系统,它一般用来管理各种流程(报销、请假. . .)审批,通讯…

Fabric.js 元素中心缩放

本文简介 点赞 关注 收藏 学会了 使用 fabric.js 创建的图形,默认的缩放原点是元素操作点的对角点。 如下图所示: 如果按住 alt 键 操作会把原点移动到元素中心。 如下图所示: 如果想将默认缩放操作设置为“中心缩放”,只需…

ImportError: DLL load failed while importing etree: 找不到指定的模块。

目录标题前言错误描述报错代码如下:原因:解决办法前言 今天我正在悠闲的逛着网站寻找今天要爬取的目标当我找到目标的时候正要创建我的scrapy爬虫文件的时候竟然报错了我很惊讶😮😮😮!!&#x…

安全分析模型核心服务部署

安全分析模型核心服务部署 ModelOps 对所有的人工智能 模型(图形模型、语言模型、基于规则的模型)以及决策模型的整个生命周期 进行管理,确保对生产中的所有模型进行独立验证和问责,其核心功能涵盖了模型存储、模型测试、模型回滚…

非零基础自学Golang 第15章 Go命令行工具 15.6 性能分析 15.6.1 安装Graphviz

非零基础自学Golang 文章目录非零基础自学Golang第15章 Go命令行工具15.6 性能分析15.6.1 安装Graphviz第15章 Go命令行工具 15.6 性能分析 性能分析和调优是一种强大的技术,用于验证是否满足实际性能要求。 Go语言支持使用go tool pprof工具进行性能查看及调优。…

DNS协议分析

上一篇文章从工作原理角度分析了DNS的作用与意义,这次来看看DNS到底是以什么形式进行通信的。 DNS报文格式如下所示: DNS报文由12字节长的首部和4个长度可变的字段组成。 1.标识,由主机端设置,为的是唯一标识当前DNS报文。 2.1…

关于Docker入门

目录 1.Docker简介 2.Centos7安装Docker 3.Docker HelloWorld运行原理解析 4.阿里云镜像仓库 5.Docker命令 Docker基本命令 Docker镜像常用命令 Docker 容器常用命令 1.Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源 Doc…

Vue3——vuex的使用——axios网络请求的使用

vuex作用:用来集中式管理数据 集中式的应用,当前有四个组件A,B,C,D,假如现在有一个数据x在A里面,现在其他三个组件都要用到x并且好要修改x的时候,有一种方法就要用到全局事件总线,如下图所示 像上面这样不…

用于生成随机曲面的Matlab程序(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 本文在总结、分析现有随机图形生成方法的基础上,结合自由形状的造型技术、自适应神经网络的自适应学习机理&#x…

科研人快速入门LaTex到日常使用,下载安装配置,语法使用说明等

1 前言 Latex是一款开源免费并且应用相当广泛的排版工具,被⼴泛运⽤在各个⾏业,⽐如学术界、出版界。LaTeX 和 Word 相比,LaTeX 入门者更能写出漂亮的文档。它不但能对文字、公式、图片进行精确而复杂的排版,并且还能保证全文各个…

【OpenFeign】【源码+图解】【四】FeignClient实例工具类ReflectiveFeign

【OpenFeign】【源码图解】【三】FeignClient的配置信息 目录5. FeignClient实例工具类ReflectiveFeign5.1 增强Builder属性5.1.1 Capability5.2 创建ReflectiveFeign5. FeignClient实例工具类ReflectiveFeign 上文中调用了targeter.target(this, builder, context, target)&a…

【GO】 K8s 管理系统项目[API部分--Node]

K8s 管理系统项目[API部分–Node] 1. 接口实现 service/dataselector.go type nodeCell corev1.Nodefunc(n nodeCell) GetCreation() time.Time {return n.CreationTimestamp.Time }func(n nodeCell) GetName() string {return n.Name }2. Node功能 service/node.go 2.1 重…

基于Servlet 的Java Web项目的CSRF防御概念

本篇创建一个基本的Jave Web 项目, 使用Servlet提供服务, 使用Filter 处理CSRF防御。 演示环境 Java 1.8.0_211Eclipse 2021-06 (4.20.0)Maven 3.6Servlet 创建与运行 在Eclipse 中创建一个简单的Maven 项目, 项目名为 java-web,如下图: 创建完成的项目目录结构如下: 创…

pre compile header

预编译头文件存在的目的是减少一个项目中不经常改动的文件的编译次数; 打个比方:c标准库,当我们在项目中调用一个c标准库的时候,这个库一般是只读的,所以我们没必要每次编译项目的时候都recompile c标准库&#xff1b…

预约挂号系统技术点详解(二)

一、微服务间服务的调用介绍 1. 需求(医院接口远程调用数据字典) service-hosp服务调用service-cmn服务 2. 实现步骤 ⑴ 搭建service-client父模块 修改pom文件,添加需要使用的model模块和工具模块依赖,并添加openfeign依赖 …

Python学习笔记-PyQt

记述PyQt的相关基本知识。 一、PyQt概述 PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是最强大的库之一。PyQt是由Phil Thompson 开发。 PyQt实现了一个Python模块集。它有超过300类,将近6000个函数和方法。它是一个多平台的工…

使用 kube-prometheus(release-0.6) 监控 Kubernetes v1.18.20

本文档是使用 kube-prometheus-stack[release-0.6] 来监控 kubernetes1.18.20,具体兼容性可以看这里:https://github.com/prometheus-operator/kube-prometheus/tree/release-0.6#kubernetes-compatibility-matrix 1 概述 1.1 在 k8s 中部署 Prometheus…

SpringBoot任务调度(官方案例)

在线文档项目结构 1.源码克隆:git clone https://github.com/spring-guides/gs-scheduling-tasks.git 2.包含两个项目initial和complete,initial可以根据文档练习完善,complete是完整项目 3.功能描述:构建应用程序,使用…

数据结构 - AVL树 (Adelson-Velsky and Landis Tree)

目录一、前言二、简介三、左旋与右旋四、AVL树的调整1、向AVL树中插入新数据1)LL型不平衡(右单旋转)2)RR型不平衡(左单旋转)3)LR型不平衡(左右双旋转)4)RL型不…

爆款短视频是怎样练成的:视频发布技巧,首次公开

剪辑好的优质短视频怎么发布才能成为爆款视频?短视频发布技巧公开 前面几篇我们讨论了短视频定位,怎么写文案脚本,怎么拍摄以及后期剪辑,至此我们一个优质的短视频已经制作完成,今天我们就聊一下下一个环节&#xff1…