从0到1在AWS上部署Flarum

433 阅读5分钟

本文的搭建环境是:

Amazon Linux 2022.8
宝塔6.0
Nginx1.18
MySQL 5.7
PHP 7.3
phpMyAdmin 5.1

2022年8月实测通过,记录下来供掘友参考。

Step1: 云上服务器的准备

1.创建虚拟服务器

在AWS上创建实例:类型选择Amazon Linux

软件映像(AMI)
Amazon Linux 2
Kernel 5.10 AMI 2.0.20220805.0 x86_64 HVM gp2
ami-0b89f7b3f054b957e
虚拟服务器类型(实例类型)
t2.micro
防火墙(安全组)
launch-wizard-1
存储(卷)
1卷 -30 GiB

免费套餐: 
第一年包括每月免费套餐 AMI 上的 750 小时
t2.micro(在 t2.micro 不可用的区域中则为 t3.micro)实例使用量、30GiB EBS 存储、200 万个输入和输出、1GB 快照,以及 100GB 互联网带宽。

2.配置虚拟服务器

首先在网页中连接,用ec2-user登陆后,在终端中输入:

sudo passwd root
输入你的密码
sudo root
sudo su
sudo yum update

3.安装宝塔

到目录home下 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

宝塔安装完毕后显示结果形如:

外网面板地址: http://...:8888/????????
内网面板地址: http://...:8888/????????
username: ????????
password: ????????

完整记录下来,以后会用到。

4.配置宝塔

用你自己的宝塔用户登陆
在推荐安装套件中选择:

Nginx1.18
MySQL 5.7
PHP 7.3
phpMyAdmin 5.1

需要注意的是,在 LNMP 安装完成之后,我们还需要安装一些 PHP 的扩展(exif / fileinfo),其中 fileinfo 是必须的,否则下面 Flarum 会安装失败。exif 是图片上传所需的扩展。
进入宝塔面板 – 【软件商店】 – 【已安装】,点击 PHP 设置。
选择【安装扩展】,安装 fileinfo(opcache、exif 非必选)。
等待安装完毕。
安装 Composer
更新服务器软件包
使用 SSH 执行下方命令:
yum update -y
更新完左下角会提示 “ Complete! ”

Step2: PHP 运行环境的准备

1.解除 PHP 函数禁用

此步骤仅适用于宝塔面板用户,如您直接使用 OneinStack 一键安装服务器环境,请跳过此步。
宝塔面板默认禁用一些安装 Composer 要用到的 3 个函数 putenv() 、 pcntl_signal() 、 proc_open(),我们需要解除禁用,否则导致步骤 4.3 Composer 变更源地址时报错。
如下图所示,进入宝塔面板,打开 PHP 设置,在【禁用函数】中,删除 putenv 、 pcntl_signal 以及 proc_open

2.安装 Composer

使用 SSH 依次执行以下命令:
(此步骤可省略)进入当前用户家目录
cd
将安装脚本下载到当前目录
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
运行安装脚本
php composer-setup.php
删除安装脚本
php -r "unlink('composer-setup.php');"
全局安装 composer(配置系统环境变量)
由于 Composer 的服务器在国外,可能导致下载 Flarum 已经依赖包会很慢,所以我们需要更换一下源地址。至于 Composer 是啥,其实就是 PHP 的一个包管理,类似 Java 的 Maven 和 Gradle 工具。

这段内容引用自 ryanc.cc

变更全局范围内的 Composer 服务器地址:
(如果您禁用了putenv() 函数,会导致此命令执行失败)。将 composer 源改成阿里云的镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

Step3: Flarum 运行环境的准备

1.设置PHP配置文件:

在宝塔php配置文件里面搜索:
最大脚本运行时间(max_execution_time):600
脚本内存限制( memory_limit ):512M 或 1024M

2.新建存放 Flarum 的网站

前往宝塔面板 – 【网站】 – 【添加站点】,同时创建用于 Flarum 的数据库。最后提交。

新建站点

数据库账号资料
数据库名: ***
用户: ***
密码: ***

务必注意!数据库字符集一定要是 utf8mb4!!!!!!
至于为什么是 utf8mb4,参考:www.jianshu.com/p/6967ce16a…

3.配置 SSL 证书

打开站点设置,进入 SSL 选项卡页面,挑选您想要配置的安全证书方式:

  • 宝塔一键 SSL(一年证书免费申请,需要登录宝塔账号并实名认证)
  • Let’s Encrypt 三个月免费证书
  • 已有证书文件,上传至宝塔

配置完成后,请注意开启 “ 强制 HTTPS ”!!!! 否则在 6.2 步骤中无法正常访问网站

4.下载 Flarum

因为 Flarum 要求安装目录必须是空目录,因此我们还需要删除刚刚新建的网站目录里的所有文件。

在 SSH 中执行:

进入网站目录。注意网站目录每个人都不一样!记得替换!

cd /www/wwwroot/example.com
解除 .user.ini 的文件锁定,否则该文件无法被删除

chattr -i .user.ini

(我用这个命令不管用,直接在宝塔里面改权限至777,然后删除文件)

然后在宝塔面板中(或者在 FTP 中)删除网站目录下的所有文件。

确保进入网站目录执行(前面也提到了,若您禁用了pcntl_signal() 函数和 proc_open() 函数,此步执行会出错)

composer create-project flarum/flarum .
执行成功后会下载 Flarum 并更新依赖包。更新依赖包会根据服务器地理位置花费 十几秒 至 三十分钟 不等的时间,请耐心等待。

Flarum 以及对应的依赖安装完成应该是这个样子的:图略

5.修改 Nginx 配置

进入宝塔面板,打开站点设置,修改网站配置文件:(可对照下图修改) root /www/wwwroot/example.com; root:需要在路径后面加上 public,比如原本是 root /www/wwwroot/example.com;,需要修改为 root /www/wwwroot/example.com/public;。

引入 Flarum 提供的伪静态配置,在 server name 下方加上 include /www/wwwroot/example.com/.nginx.conf; 网站目录不要忘记更换成自己的。

Step4: Flarum 安装引导

在浏览器中访问安装 Flarum 的站点网址。

可以看到出现下面的情况: (图略)

这是因为没有给予网站目录写入的权限,我们加一下权限即可:

前往宝塔面板,点击左侧【文件】,(或者使用 SSH 工具)进入 /www/wwwroot 目录。

右击您的站点目录,选择【权限】,权限修改为 755 权限并保存。不要忘记勾选 “ 应用到子目录 ”。

接着刷新一下论坛网页就好了,根据图片提示填写好论坛信息。数据库名、数据库用户名、数据库密码都可以在宝塔面板查看。

填写完数据库信息、管理员信息,点击安装即可。
安装部署部分到此结束。

另有邮件的配置问题后文再续。