使用acme.sh自动更新网站及七牛子域名的证书

acme.sh是个好东西,七牛也是个好东西,只是七牛没有自动更新证书的方法,好在七牛的sdk是可以做到的。对于一些老网站,没有使用lnmp管理host,则可以手动的方式来管理证书。本文以阿里云为例,说明更新的过程。

在host上下载并安装acme.sh,参考地址:https://github.com/Neilpang/acme.sh/wiki/说明

»阅读全文

在CentOS下快速建立laravel环境

使用lnmp安装环境,但在此之前安装screen,因为编译时间比较长,ssh会断掉,使用screen可以保持窗口长时间显示:

yum install screen

开始安装lnmp:

screen -S lnmp
wget -c http://soft.vpser.net/lnmp/lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp

在此之前,可以在下载下来的lnmp.conf脚本下修改编译参数

»阅读全文

Tags: laravel,lnmp

SSL在nginx和IIS下的配置与Renew

nginx下推荐用cert-auto,傻瓜模式,按照命令来就行了。cert-auto的基本验证模式是在网站的目录下创建一个._acme-challenge的文件夹,里面会有一些验证信息。关键的是,要确保你的网站是可以通过80端口正常访问的,因为它会去验证这个文件。如果不能验证呢?可以通过添加DNS TXT记录的方式执行。

»阅读全文

Tags: iis,nginx,ssl

electron app开发遇到的问题总结

最近用electron开发一个远程桌面的跨平台app,其中windows远程使用自带的rdp,其他系统使用freeRDP。该APP中用到大量的原生模块,也就是跟OS相关的模块,比如drivelist,是一个读取硬盘信息的包,usb-detection是一个探测是否有USB插入的包,集成这些包最大的问题是,跟自己使用Electron的Node引擎有关,一般来说需要重新编译,才可以使用。这个错误的典型特征是,控制台报错,不断地Try模板编译后的路径,然后告诉你找不到那个模块。

»阅读全文

Tags: electron

PHP升级及Laravel部署

CentOS的版本太低,6.5。自带的php版本也太低,laravel的最低要求是6.7,需要升级php。在centos中直接使用: yum update php,会提示已经是最新的了,是因为rpm的原因,当前仓储已不再更新php,php5.3已经是最高版本,可以通过更改rpm的方式获得更新:

»阅读全文

Tags: laravel,php

浅谈分布式事务

事务就是一个会话过程中,对上下文的影响是一致的,要么所有的更改都做了,要么所有的更变都撤销掉。就要么生,要么死。没有半死不死的中间不可预期状态。
分布式事务,常见的两个处理办法就是两段式提交(2PC)和补偿。
两段式提交典型的就是XA,有个事务协调器,告诉大家,来都准备好提交,大家回复,都准备好了,然后协调器告诉大家,一起提交,大家都提交了。

补偿比较好理解,先处理业务,然后定时或者回调里,检查状态是不是一致的,如果不一致采用某个策略,强制状态到某个结束状态(一般是失败状态),然后就世界太平了。典型的就是冲正操作。

»阅读全文

Sybase IQ direct IO 问题导致无法启动解决办法

症状:

I. 06/23 10:28:33. SAP IQ

I. 06/23 10:28:33. Version 16.0

I. 06/23 10:28:33. (64bit mode)

I. 06/23 10:28:33. Copyright 1992-2014 by SAP AG or an SAP affiliate company. All rights reserved

I. 06/23 10:28:33. Copyright (c) 2014 SAP AG or an SAP affiliate company.

I. 06/23 10:28:33. All rights reserved.

I. 06/23 10:28:33. Use of this software is governed by the Sybase License Agreement.

I. 06/23 10:28:33. Refer to http://www.sybase.com/softwarelicenses.

I. 06/23 10:28:33. 

»阅读全文

Tags: sybase IQ

ABP的语言及使用signalr

折磨人的跨域问题:

XMLHttpRequest cannot load https://api.taskexe.com/signalr/negotiate?clientProtocol=1.5&token=0J2rv2jZ…bpcommonhub"},{"name":"messagehub"}]&_=1488597450711. A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'https://taskexe.com' is therefore not allowed access. The credentials mode of an XMLHttpRequest is controlled by the withCredentials attribute.

意思大约是说,如果Cors使用通配符*则不允许使用 Access-Control-Allow-Credentials: true,两者是矛盾的。在signalr的跨域请求时,application_start中使用了,跨域:

»阅读全文

Tags: cors,abp,signalr

CI文件上传不成功可能的原因

CI文件上传总是出现很其他问题,但大部分都是php配置问题,CI本身的问题不大,所以CI总是背锅。php.ini的配置:

1. 启用上传

file_uploads = On

2. 设置上传文件大小限制

upload_max_filesize = 50M

»阅读全文

angular: controller As 与 $scope

简单地说,如果设置了{controllerAs:main}, 则 $scope['main'] =  new MainController(); 意即别名会则为控制器$scope的一个属性存在。具体可参照:

http://codetunnel.io/angularjs-controller-as-or-scope/

——————

在视图中具名的form是一个默认的FormController,由angular生成并设定。在form的父控制器中可以访问到这个form控制器的一些属性,如: $scope.myFormName.myFieldName.$valid 等。具体参见angular手册:

https://docs.angularjs.org/api/ng/directive/form

延迟绑定,即在修改一个字段时(onchange事件)不想立刻将修改的字段反映到其他视图中时,可以在 字段加入绑定选项: <input ng-model="myModel" ng-model-options="{updateOn: 'submit'}" />,因为默认是在失去焦点后就修改视图,可以改成在提交表单后才修改视图。在提交表单时,需要注意提交model的更新:

 scope.myForm.$commitViewValue();
// scope.myForm.myField.$commitViewValue();

参考链接如下:

https://code.angularjs.org/1.4.10/docs/api/ng/directive/ngModelOptions