我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

来源地址:https://blog.csdn.net/u013113491/article/details/128291472

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

.NET 6 从0到1使用Docker部署至Linux环境超详细教程

目录前言环境准备.NET Core项目准备1.首先我们先创建一个空的ASP.NET Core Web应用2.我们可以先在本地将项目构建成镜像看看效果3.接下来我们将镜像run起来,构造出一个容器:linux环境配置:1.配置yum更新yum
2022-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录