flarum虚拟主机踩坑

文章正文
发布时间:2024-09-18 00:04

flarum简洁美观,在阿里虚拟主机上安装踩了一些坑,列出来希望能给大家提供一些帮助。

1、源码下载
flarum使用composer来管理和安装,阿里虚拟主机不开放ssh接口。可以变通一下,我的本地主机环境为FreeBSD,mysql、php版本和万网虚拟主机接近,所以在本地下载代码,压缩上传至虚拟主机即可。
国外源太慢,设为国内的阿里源:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
建议下载完之后取消该配置:
composer config -g –unset repos.packagist
建立空白目录flarumbeta13,在该目录下下载:
composer create-project flarum/flarum . –stability=beta
下载完成后按照提示升级Carbon:
./vendor/bin/upgrade-carbon
安装中文语言包:
composer require littlegolden/flarum-lang-simplified-chinese
再次升级Carbon:
./vendor/bin/upgrade-carbon

2、改变目录
虚拟主机根目录为htdocs,需要把源码public目录下的内容移到根目录,并相应进行修改:
mv public/* .
mv public/.htaccess .
rmdir public
修改.htaccess:
取消注释第 9 ~ 14 行,不需要被外部访问的资源全部屏蔽为不可见。
修改index.php:
$site = require ‘../site.php’;
改为
$site = require ‘./site.php’;
修改site.php:
‘public’ => DIR.‘/public’,
改为
‘public’ => DIR,

3、邮箱设置
好像是因为阿里虚拟主机禁用了相关的php函数,需要使用fsockopen来完成smtp邮件发送。
修改vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php第272行:
$this->stream = stream_socket_client($host.‘:’.$this->params[‘port’], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $streamContext);
改为:
$this->stream = @fsockopen($host,$this->params[‘port’],$errno,$errstr,$timeout);
相应的,虚拟主机需要在高级环境设置,PHP.INI设置中
PHP函数fsockopen设置:
改为启动。

4、压缩上传安装
在根目录flarumbeta13下执行:
zip -r ../flarumbeta13.zip *
上传之虚拟主机的htdocs目录下,解压缩,按照提示安装即可。