2018年4月

OneinStack自带了Let’s Encrypt安装组件,要配置SSL,仅需要cd到oneinstack目录,执行./addons.sh命令添加组件,如下图:

添加Let’s Encrypt组件

安装完Let's Encrypt组件后,再执行./vhost.sh命令添加新的虚拟主机了。如果是已经存在的虚拟主机,则需要先./vhost.sh del删除虚拟主机后,再执行./vhost.sh命令添加虚拟主机。如下图:
添加虚拟主机

正常情况下,成功添加完虚拟主机后,https站点就部署成功了。但如果是阿里云服务器,则需要在安全组配置中开启443端口。

证书的定时更新(自动部署)

由于Let's Encrypt提供的证书是有期限的,因此需要定期更新。成功添加后,cd /etc 下,crontab -l查看定时任务

生成的定时任务

执行一下定时脚本中的代码,如下图:

脚本执行结果,反馈已经成功更新

30 2 1 表示每周一早上2点30分执行一次证书更新请求。

附原文:oneinstack配置https
附另一篇(推荐):配置https

前言:因为emoji占四个字符,而默认的utf8最多只是3个,所以会乱码,而utf8mb4是支持的
最新版的mysql 7是默认支持emoji表情的,不用任何配置,其他版本的必须得在5.5.3以上的版本才支持utf8mb4;

一、修改mysql配置文件:(我用的是oneinstack。在etc/my.conf)

default-character-set = utf8mb4
character-set-server = utf8mb4

二、把数据库、表、字段的字符集设置为utf8mb4(SQL语句或者Navicat工具控制)

# 修改数据库:  
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;  
# 修改表:  
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
# 修改表字段:  
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
PS:我用的是tp5框架,database配置里数据库默认编码里改为:'charset' => 'utf8mb4';

三、检查环境变量 和测试 SQL 如下:(设置:set NAME utf8mb4)

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';  
+--------------------------+--------------------+  
| Variable_name            | Value              |  
+--------------------------+--------------------+  
| character_set_client    | utf8mb4            |  
| character_set_connection | utf8mb4            |  
| character_set_database  | utf8mb4            |  
| character_set_filesystem | binary            |  
| character_set_results    | utf8mb4            |  
| character_set_server    | utf8mb4            |  
| character_set_system    | utf8              |  
| collation_connection    | utf8mb4_unicode_ci |  
| collation_database      | utf8mb4_unicode_ci |  
| collation_server        | utf8mb4_unicode_ci |  
+--------------------------+--------------------+  

以上即可。

上传图片有两种,一种是base64直接保存,一种是简单配置一下;

基本实例化
var E = window.wangEditor;
var editor = new E('#editor');
editor.create();
一、 一种是base64直接保存,但是值太长,保存到数据库不友好,不建议,但是简单,直接开启就行
editor.customConfig.uploadImgShowBase64 = true;//开启即可用
二、 第二种是非base64,需要配置一下,
editor.customConfig.uploadImgServer = 'admin/Information/mww';//定义后台接收地址
editor.customConfig.uploadFileName = 'thumb';//自定义名字,后台$_FILES接收
editor.customConfig.uploadImgMaxSize = 2 * 1024 * 1024;//限制2M
editor.customConfig.uploadImgHooks = {//监听图片上传的步骤过程
     customInsert: function (insertImg, result, editor) {
            // 图片上传并返回结果,自定义插入图片的事件(而不是编辑器自动插入图片!!!)
            // insertImg 是插入图片的函数,editor 是编辑器对象,result 是服务器端返回的结果
            // 举例:假如上传图片成功后,服务器端返回的是 {url:'....'} 这种格式,即可这样插入图片:
            var url = result.url;
            insertImg(url)
            // result 必须是一个 JSON 格式字符串!!!否则报错
        }
    };
后台接收并处理(只是示例,只做简单的上传操作而已),返回图片路径,一定要是json格式的
public function mww(){
        $dir = $_SERVER['DOCUMENT_ROOT'];
        $url =  "http://".$_SERVER['HTTP_HOST'];
        if(!empty($_FILES['thumb']['tmp_name'])){
            //=======重命名=====
            $rand = date('YmdHis').rand(100000,999999);
            $exe = explode('.',$_FILES['thumb']['name']);
            $exe = end($exe);
            $newName = $rand . '.' .$exe;
            //=======================
            if(move_uploaded_file($_FILES['thumb']['tmp_name'],"{$dir}/upload/{$newName}")){
                $url = "{$url}/upload/{$newName}";
                return json_encode(['status'=>200,'url'=>$url]);
            }else{
                return json_encode(['status'=>0,'msg'=>'图片保存失败']);
            }
        }
    }
PS:这两种只能使用一种,不能同时使用,且必须都在editor.create();之前使用
PS2:其他参数和功能详见官网