利用Google云搭建Flarum轻论坛

前言

本教程面向新人撰写,无需任何编程语言基础,教你如何搭建一个轻论坛。
您可以访问 https://flarum.org.cn/ 来了解该更多相关信息。

按照本教程的操作方法,您可以顺利完成搭建并将Flarum论坛上线。
在开始之前你需要具备以下条件:(账户注册需要由您自行完成)

  1. 能够正常访问Google网站
  2. 一张信用卡 (用于注册Google云服务账户和G-suite账户)
  3. 一个海外地址(用于注册域名时使用)

请注意,安装和搭建需要您消耗一定的成本包括:

  1. 2个小时的安装&配置时间
  2. Google域名费用12美元/年 & G-Suite会员费用 5美元/月

您可以通过使用域名运营商的域名和STMP邮箱发送服务来节省费用。关于如何节省费用,不在本教程的范围之内。请您结合其它相关教程来完成这一配置。请注意,域名和邮箱需要由同一家服务商提供。


教程

Flarum搭建过程中涉及以下环境:

  1. 一个运行CentOS7版本的Linux服务器(本教程以Google云服务器为例)
  2. 宝塔面板,一键搭建LAMP环境(Linux、Apache、MySQL、PHP)
  3. Flraum 0.1.0 -Beta8 (2018年12月3日发布)

第一部分 LAMP环境搭建

1、在浏览器中访问 cloud.google.com 并登陆您的账户,点击 控制台 - Compute Engine - 创建VM实例

名称:任意名称
区域:建议选择香港和台湾
地区:abc 任选
CPU:1个vCPU 或 微型CPU (搭建LAMP过程中CPU需要运算,建议选择vCPU,然后在搭建完成后停止服务后降级成为微型CPU)
启动磁盘:CentOS7
访问权限范围:允许默认访问权限
防火墙:允许HTTP流量 & 允许HTTPS流量

2、点击 菜单键 - VPC网络 - 外部IP地址 将刚才所创建的VM实例的外部IP地址设置为静态(默认为临时),需要设置一个名称,请任意填写。


3、点击 防火墙规则 创建一个新的防火墙规则。

名称:任意名称
目标:网络中的所有实例
来源过滤条件:选择IP地址范围 ;填写为 0.0.0.0/0
协议和端口:【TCP:8888】【TCP:3036】

4、前往 VM实例 点击 连接SSH (连接到远程Linux主机)。

为了防止SSH在安装过程中掉线的问题,需要在SSH配置文件中添加2条命令 将下列命令复制到SSH,并按回车即可(请使用快捷键复制粘贴)

sudo vim /etc/ssh/ssh_config

该命令含意为 获取权限 打开 ssh_config 文件,文件打开后使用键盘方向键,找到一个合适的位置,按 i 键进入编辑模式,将下列2行命令添加到配置文件内容当中,按ESC键退出编辑模式,按 : 键,输入 wq 回车,保存退出。(:wq会显示在底部)

ClinetAliveInterval 30
ClineAliveCountMax 6

该代命令义为每隔30秒服务器向客户端发送心跳。


5、在SSH中安装宝塔面板(www.bt.cn)。
先获取ROOT权限,在SSH中输入下列命令并回车。

sudo su

然后输入下列宝塔面板的安装命令并回车。(官网命令)

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

随后SSH中会提示是否要安装宝塔面板,在SSH中敲一下 y 回车,开始安装。
安装完成后,会生成宝塔面板的安全访问链接和账户&密码,请在本地电脑的浏览器中访问链接。


6、在宝塔面板中搭建LAMP环境,请选择下述配置,并以快速安装的方式进行安装。(安装开始后将持续1.5小时,无需值守)

Apache 2.4.25
MySQL 5.7.19
Pure-Ftpd 1.0.47
PHP 7.2
PhpMyAdmin 4.4

7、在宝塔面板中选择 软件管理 - PHP7.2 - 安装扩展 安装下列扩展。

fileinfo 扩展
opcache 扩展
exif 扩展

然后在 禁用函数 中删掉下方选项。

proc_open

8、在宝塔面板中选择 网站 然后 添加站点

域名:填写你的域名 例如 baidu.com
备注:任意
根目录:/www/wwwroot/abc
FPT:创建 | 用户名:abc
数据库:创建MySQL | 用户名:abc
PHP:PHP-72
分类:默认

第二部分 Flarum安装

1、安装Composer,请在SSH中输入下列命令:请逐行运行(共4组命令)

wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer
chmod a+x /usr/local/bin/composer
export PATH=$PATH:/root/.config/composer/vendor/bin
source /etc/profile

这段命令来自 https://www.godcheese.com/ind... 的教程内容。存在小瑕疵,但不影响使用。


2、安装php-zip,请在SSH中输入下列命令

yum install php-zip

3、安装Flarum,在SSH中逐行运行下列命令(共4组)

cd /www/wwwroot/
mkdir flarum
cd flarum
composer create-project flarum/flarum . --stability=beta

这段命令含义为:移动到wwwroot文件夹,创建flarum文件夹,移动到flarum文件夹,使用Composer安装flarum。


4、在宝塔面板中点击 网站 - 网站名 - 网站目录

将目录地址更改为 /www/wwwroot/flarum/ 并点击保存。
运行目录更改为/public 并点击保存。

5、给文件夹授权,在SSH中设置运行下列命令,请逐行运行。(共2行)

chmod -R 0777 /www/wwwroot/flarum/storage
chmod -R 0777 /www/wwwroot/flarum/public/assets

6、进入Google域名管理页面的DNS中,在自定义资源记录中添加你的VM实例的IP地址。

例如: @ A 1h XX.XXX.XXX.XX

第三部分 配置Flarum

1、初始化Flarum,在浏览器中输入你的域名地址,这时候你可以看到论坛已经开始运行,并需要进行配置

数据库地址为:localhost
其他参数你都可以轻易的获取,填上去就好了。

2、禁用缓存,Flarum Beta8存在小的缓存Bug,论坛内的刷新页面并不会刷新内容,而是返回之前的某个时间段,其原因为缓存问题。因此,我们只需禁用缓存即可。
在宝塔面板点击文件,找到 /wwww/wwwroot/flarum/public 这个文件夹,里面有.hataccess文件(外面还有一个,不要搞错了)。点击编辑,在文件中的第21行的空白处或第22行空白处开始添加下列代码。

<IfModule mod_headers.c>
    Header set Cache-Control "no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires 0
</IfModule>

3、为网站设置SSL,在宝塔面板中,选择网站 - 你的域名 - 弹出设置窗口后,在SSL面板位置,申请一个宝塔SSL,然后在此期间你需要保证网站正常运行。
当你的SSL证书申请下来之后,点击部署,然后打开强制HTTPS,然后在宝塔面板中选择文件面板,进入 /www/wwwroot/flarum 目录下,有个config.php文件,编辑它。
第16行有你的域名 http://xxx.com 这样的,请将 http:// 改为https:// ,然后再次访问你的网站,SSL安全锁就出来了。


4、设置SMTP邮件发送服务,让你的论坛向新用户发送验证邮件。
访问G-suite,创建一个新的账户(与普通GOOGLE账户独立,互不相通),然后绑定你的域名,绑定过程中需要为域名DNS添加CNAME记录和MX记录。(两个网站请同时登陆,方便设置参数)

@ MX 1h 10 aspmx.l.google.com. 这个是谷歌邮箱服务器,你必须添加到域名自定义资源当中

在G-suite创建过程会有引导你添加CNAME记录,大概是

xxxxxxxxx CNAME 1h xxxxxxxxx.com

然后,你很快就会通过,成功后会让你创建一个管理员账户,用户名@你的域名.com 这样的账户,请记号这个账户和密码,在Flarum后台中需要设置。
总之,这个注册部分,你自己慢慢摸索吧,我当时也是各种找,各种尝试,好不容以找得到。(记得看其他人的教程)

当设置完这一切之后,请访问你的论坛,并进入后台页面,选择EMALL面板,设置参数如下:

Driver:SMTP
HOST:smtp.gmail.com
Port:465
Encryption:SSL
Username:用户名@你的域名.com(G-suite账户)
Password:你的G-suite密码
Sender:用户名@你的域名.com (G-suite账户)

到这里就基本大功告成了!Beta8 截止目前:12月8日 还没有更新中文语言包,暂时就用英文版就好,日后看其他教程使之完成中文化。
存在一些bug是:用户找回密码时,会为用户发送重置密码链接,点击后,进行重置,此时如果输入6位或不符合规则的密码时并不进行提示反馈,导致用户误以为修改成功。
重新点击链接设置一个新的密码,一定要8位以上,成功修改后链接将失效。
搜索功能无法实现内容搜索,因为我也是新手,12月3号才开始了解什么是LAMP 什么是SSH 什么是Linux 这类的,希望你玩儿的开心。

我正在琢磨1个问题:
1、如何让百度收入我的论坛

就是这样子,Beta8有很多小毛病需要慢慢改进,希望大家尝试。