前提
本文简要指明如何快速在运行php / Caddy Server的网站上,以子域名的方式部署现代BBS平台Flarum,我选用的是 FlarumChina 中文优化版。
有用的站点:
下载依赖
- 关闭php和服务器;
- 首先选下列三样之一下载:
- 推荐 从 GitHub 下载部署脚本 ,它始终自动从GitHub获取最新版。
- 也可以访问 中文社区 ,找置顶帖下载最新的包
- 既没法上GitHub,又不想找帖子,也可以 在这里下载 Flarum Beta 压缩包
(随着时间的推移,这个链接可能不再维护)
- 在网站根节点建立一个子目录
/bbs
(或者其他什么); - 解压缩必要的文件:
- 如果你下载的是部署脚本,把下载下来的
index.php
解压缩出来(只有这个东西是有用的),放在刚建的子目录下。 - 如果你下载的是完整包,把它的内容解压缩(不要带着压缩根目录“flarumchina-master”,否则相当于再次创建了一个子目录你懂的)到刚建的子目录下。
- 在
php.ini
中启用fileinfo
和exif
两个插件(根据服务器运行的OS不同操作也不同,基本操作就是去掉注释号“;
”,fileinfo还依赖于其他插件,请一并启用)。
安装
- 打开服务器和php,进入
localhost/bbs
;
- 如果你用的是自动部署脚本,它会开始自动工作,工作完成后它会销毁自身,并转到Flarum的Setup界面
- 如果用的是完整包,目前应该已经看到了Flarum的Setup界面
- 进入MySQL终端,新建一个空数据库
bbs_flarum
(名称自定); - 回到Flarum的Setup界面,输入论坛名、MySQL的用户名、服务器、密码,数据库就填写刚才建立的
bbs_flarum
即可,数据库前缀可不填。 - 完成设置后,视浏览器和服务器配置可能会出现白屏或者404,也可能进入了一个看起来工作正常的论坛。无论哪种,实际上Flarum都已经配置好了。
配置重定向
Flarum的多数功能都需要使用URL重写,因此必须在服务器上开启必要的功能。如果使用Caddy之外的其他服务器,请移步这里:
如果你使用Caddy Server,请在caddyfile
中参考下面的内容调整、追加配置:
localhost:80 {
## 以下是常规配置,你应该已经配置了类似的东西:
root C:\\www\\root # 修改: root目录;如果在子文件夹中运行,不要指定/bbs子文件夹
gzip
errors error.log {
404 404.html # 修改: 404页面;之后用到404的地方也需要修改
}
fastcgi / 127.0.0.1:9000 php {
# 修改: 配置php-cgi
}
## 以下是重写配置:
rewrite {
r ^/bbs/api.*$ # 修改: /bbs为论坛子目录,如果无需设立子目录就删掉'/bbs'四个字符,下同
to /bbs/api.php
# 意义:请求.../api时转而请求对于php
}
rewrite {
r ^/bbs/admin.*$ # 修改: /bbs为论坛子目录,如果无需设立子目录就删掉'/bbs'四个字符,下同
to /bbs/admin.php
# 意义:请求.../admin时转而请求对于php
}
rewrite {
to {path} {path}/ /bbs/{path} /bbs/{path}/ /bbs/index.php
# 修改: 上面这行,如果无需设立子目录,就删掉'/bbs/{path} /bbs/{path}/ /bbs',注意空格
# 意义:如果一个请求的资源(如'/assets')在根目录下找不到就去子目录找,如果还找不到就转而请求.../index.php
}
rewrite {
r ^.*?bbs/vendor.*?$ # 修改: /bbs为论坛子目录,如果无需设立子目录就删掉'/bbs'四个字符
to /404.html
# 意义:不允许请求.../vendor
}
rewrite {
r ^.*?bbs/storage.*?$ # 修改: /bbs为论坛子目录,如果无需设立子目录就删掉'/bbs'四个字符
to /404.html
# 意义:不允许请求.../storage
}
rewrite {
r ^.*?bbs/config.php$ # 修改: /bbs为论坛子目录,如果无需设立子目录就删掉'/bbs'四个字符
to /404.html
# 意义:不允许请求.../config.php,这里面保存了数据库密码
}
rewrite {
if {path} match ^.*?bbs/(composer\.(json|lock)|config\.php|flarum|storage|vendor).*?$
# 修改: 上面这行,子目录名,如果无需设立子目录就删掉'/bbs'四个字符
to /404.html
# 意义:不允许请求一堆敏感的东西
}
}
重启服务器,论坛应该已经可以正常使用了,测试:右上角点自己→设置后台