部署演示站
为了让用户更好的体验我们开发的插件,我们需要在上线前部署好对应应用插件的演示站。
如果你开发了多个应用插件,为了减少开发者的工作量,你可以将多个应用插件部署在同一个站点中,共用同一个后台管理,但务必使用不同的演示账号用于区分。
特别注意
演示站务必单独部署,不要将演示站和你的业务系统部署在同一台服务器。
强烈建议关闭文件上传功能,如果一定要开放,请定期检查和清理上传的文件或图片
演示站不允许安装除演示应用插件外的其它任何付费插件,如付费编辑器、付费短信、付费云存储插件等。
演示站(包括但不限于小程序、H5、APP、后台管理等)禁止出现任何第三方广告(包括但不限于开屏广告、浮动广告、内嵌广告等)
温馨提示
1、定期检查演示站数据库是否出现违规文本(包括但不限于昵称、标题、内容、留言、评论等)
2、定期检查演示站服务器是否出现违规文件(包括但不限于图片、音频、视频等)
准备工作
1、一台云服务器,建议使用Linux,如果你还没有云服务器,建议使用腾讯云服务器,点击购买
2、一个域名(必须已经备案且状态正常)
安装Web运行环境
建议使用宝塔管理面板来安装Web运行环境。
宝塔安装文档:https://www.fastadmin.net/video/install.html
关闭调试模式
演示站务必关闭调试模式,后台移除插件管理、分类管理等几个栏目,只保留必要的演示权限。
调试模式设置方法可以参考:https://doc.fastadmin.net/doc/faq.html
安装FastAdmin+应用插件
请参考官方文档安装FastAdmin和你的应用插件,如果有依赖插件,也请一并安装。
配置数据库权限
正常我们安装完FastAdmin和应用插件后,数据库是无任何读写限制的,此时我们需要通过phpMyadmin来修改数据库的增删改权限。
首先我们登录phpMyadmin后,打开指定的数据库,这里我们以fastadmin-demo数据库为例,运行以下SQL语句,请将fastadmin-demo替换成你自己的数据库名
GRANT SELECT, REFERENCES, LOCK TABLES ON `fastadmin-demo`.* TO 'fastadmin-demo'@'127.0.0.1';
GRANT UPDATE, DELETE ON `fastadmin-demo`.`fa_sms` TO 'fastadmin-demo'@'127.0.0.1';
GRANT UPDATE (token, loginfailure, updatetime, loginip, logintime) ON `fastadmin-demo`.`fa_admin` TO 'fastadmin-demo'@'127.0.0.1';
GRANT INSERT ON `fastadmin-demo`.`fa_user_money_log` TO 'fastadmin-demo'@'127.0.0.1';
GRANT INSERT, UPDATE (avatar, email, updatetime, nickname, logintime, loginip, username, token, successions, mobile, loginfailure, money, score, level, maxsuccessions, prevtime) ON `fastadmin-demo`.`fa_user` TO 'fastadmin-demo'@'127.0.0.1';
GRANT INSERT, UPDATE, DELETE ON `fastadmin-demo`.`fa_user_token` TO 'fastadmin-demo'@'127.0.0.1';
GRANT INSERT ON `fastadmin-demo`.`fa_admin_log` TO 'fastadmin-demo'@'127.0.0.1';
GRANT INSERT ON `fastadmin-demo`.`fa_user_score_log` TO 'fastadmin-demo'@'127.0.0.1';接下来我们还需要给你的插件添加指定的增删改权限,我们选中数据库后,点击权限,如图:
再点击修改权限,如图:
默认是只有select权限的,此时我们点击表,如图:
点击下方的选择文本域,如图:
按需选择最小的演示权限,如图:
点击执行即可完成一个表的权限设置,重复以上部署对其它表进行权限设置。
在进行以上权限设置后,我们前台部分体验时将会报数据库无权限的错误。请看后续的优化错误提示来优化下前台的提示信息。
修改文件权限
当我们后台完成了所有插件配置后,我们需要来设定项目目录的文件和文件夹权限。
首先我们登录到项目根目录,通过以下命令来设定权限
cd /www/wwwroot/yoursite.com
chown -R www:www ./
chmod -R 555 ./
chmod -R 755 runtime如果你还希望开放文件上传权限,请执行
chmod -R 755 public/uploads开放了文件上传权限后务必确俣public/uploads无脚本执行权限,通常在Nginx中可以进行以下设置
location ~ ^/(uploads|assets)/.*\.(php|php5|jsp)$ {
deny all;
}优化错误提示
目前已经可以通过安装演示站点优化插件来实现优化,无需修改任何框架文件,该章节内容可以忽略
当我们完成了以下权限设置后,可能此时我们的后台或前台将会一些未知数据格式或网络错误等提示,此时我们希望给用户更好的提示,比如:演示站暂未开放修改权限。
首先我们修改
application/common/controller/Backend.php
application/common/controller/Frontend.php在控制器中添加一个error方法,代码如下:
protected function error($msg = '', $url = null, $data = '', $wait = 3, array $header = [])
{
$msg = preg_match("/(error|denied)/i", $msg) ? "当前演示站无法进行修改和删除数据" : $msg;
return parent::error($msg, $url, $data, $wait, $header);
}然后我们在application/common/library目录下添加一个ExceptionHandle.php文件,代码内容为
查看详情
<?php
namespace app\common\library;
use Exception;
use think\exception\Handle;
class ExceptionHandle extends Handle
{
public function render(Exception $e)
{
// 在生产环境下返回code信息
if (!\think\Config::get('app_debug')){
$statuscode = $code = 500;
$msg = 'An error occurred';
// 验证异常
if ($e instanceof \think\exception\ValidateException){
$code = 0;
$statuscode = 200;
$msg = $e->getError();
}
//数据库异常
if ($e instanceof \think\exception\PDOException){
$code = 0;
$statuscode = 200;
$msg = "当前演示站无法进行修改和删除数据,请下载到本地安装体验";
}
// Http异常
if ($e instanceof \think\exception\HttpException){
$statuscode = $code = $e->getStatusCode();
}
$msg = "当前演示站无法进行修改和删除数据";
return json(['code' => $code, 'msg' => $msg, 'time' => time(), 'data' => null], $statuscode);
}
//其它此交由系统处理
return parent::render($e);
}
}然后我们修改application/config.php中的exception_handle值,修改为\app\common\library\ExceptionHandle
通过以上设定即可完成相关错误提示的优化。
Cookie权限配置
如果你的演示站上线后无法在iframe进行正常的登录,请参考文档:如何解决官方演示站iframe窗口内无法登录的问题?
H5演示
当我们部署H5演示后,如果需要在PC端体验H5的演示站,需要进行以下操作
安装演示站优化插件,然后在插件配置中配置H5预览站点列表,然后通过类似http://www.example.com/preview.html?site=站点标识即可在PC端预览H5演示站
H5演示最终效果如图:
演示小程序优化
在演示小程序中都涉及到登录,而通常在微信小程序中通常登录都使用微信手机授权登录进行快速登录,但目前要求演示小程序禁止获取小程序用户的真实手机号进行登录,而需修改为使用模拟登录的方式进行登录,效果如图:
如果是使用手机+验证码登录的方式,要求安装《演示站优化插件》并开启测试短信。
如果演示小程序还涉及到支付,需修改为使用模拟支付的方式进行支付,效果如图:
其它优化
目前已经可以通过安装演示站点优化插件来实现优化,无需修改任何框架文件,该章节内容可以忽略
建议你修改application/config.php中的login_captcha、login_failure_retry和loginip_check均设定为false
建议你在前台和后台登录页面添加演示账号提示,请修改
application/index/view/user/login.html
application/admin/view/index/login.html添加上演示账号提示即可,示例代码如下:
<div class="alert alert-warning-light"> 账号:admin 密码:123456 </div> 效果如图:
演示站优化插件
该插件仅限用于应用插件演示站优化使用,请勿应用于生产环境!!!
该插件功能包括:演示账号提示、报错提示优化、测试短信、测试邮件、H5在线预览、页面水印、内容审核等功能。
温馨提示
下载:点击下载
文档:https://doc.fastadmin.net/demosite
请使用最新版的 FastAdmin 框架安装本插件。