易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
简易重启mac 下的mamp pro

简易重启mac 下的mamp pro

简单的弄一下。因为有时候要改配置,然后打开mamp,点击重启会耗时特别长。。。。所以简单的弄了一下

#!/bin/bash

function start(){
/Applications/MAMP/Library/bin/httpd -f "/Library/Application Support/appsolute/MAMP PRO/conf/httpd.conf" -k start
}

function stop(){
/Applications/MAMP/Library/bin/httpd -f "/Library/Application Support/appsolute/MAMP PRO/conf/httpd.conf" -k stop
}

function restart(){
(stop)
(start)
}

function status(){
ps aux|grep httpd
}

echo "which do you want to?input the number."
echo "1. start"
echo "2. stop"
echo "3. restart"
echo "4. status"
read num

case "$num" in
[1] ) (start);;
[2] ) (stop);;
[3] ) (restart);;
[4] ) (status);;
*) echo "exit";;
esac
其实没啥难度就是这么几行代码。连路径都没有定义变量。但一般情况下够用了,复制不成功的,可以直接打开://neatstudio.com/mamp.txt
记录几个与quill相关的网址

记录几个与quill相关的网址

辛苦写了一堆。一个cmd+w,全没了。

QuillJS相关(QuillJS是个好的编辑器,但不适合做一些CMS的后台,因为他对从微信编辑器里复制过来的内容没有办法保证格式,我在使用了之后。发现Quill只能自用,半商用还得用TinyMCE吧),官网:https://quilljs.com/

1、Quill富文本编辑器,自定义上传图片时间,上传七牛云返回地址,插入编辑器? https://www.zhihu.com/question/63589376

2、fxmontigny/quill-image-upload https://github.com/fxmontigny/quill-image-upload

3、Quill编辑器添加自定义插件 https://luncher.github.io/2018/06/02/Quill编辑器添加自定义插件/

4、vue-quill-editor图片上传 https://www.jianshu.com/p/36b144b4cef8

5、lihualong/quilleditor https://github.com/lihualong/quilleditor 这个改了源码,不建议

6、简单:直接重写图片上传事件实现图片上传到服务器 https://github.com/surmon-china/vue-quill-editor/issues/134

7、vue-quill-editor自定义图片上传 https://segmentfault.com/a/1190000009877910

8、改造vue-quill-editor:实现图片上传到服务器再插入富文本 https://github.com/NextBoy/skill/issues/2

9、配合 element-ui 实现上传图片/视频到七牛 demo https://github.com/surmon-china/vue-quill-editor/issues/102

10、在Vue项目使用quill-editor带样式编辑器(更改插入图片和视频) www.cnblogs.com/zhengweijie/p/7305903.html

11、Quill编辑器介绍及扩展 www.cnblogs.com/calvinK/p/6322512.html

VUE上传相关(如果直接FORM上传,可以用element的组件)

1、Vue Element UI + OSS上传文件 https://blog.csdn.net/qq_27626333/article/details/81463139

2、vue el-upload直传阿里云oss https://www.jianshu.com/p/e6721e64c93a

3、cag2050/qiniu_upload https://github.com/cag2050/qiniu_upload

4、marchFantasy/vue-file-upload https://github.com/marchFantasy/vue-file-upload

5、Element-Ui组件(十七)Upload 上传 http://element-cn.eleme.io/#/zh-CN/component/upload

6、ElementUI el-upload 断点续传文件 https://blog.csdn.net/qq_19694913/article/details/81208049

7、换个姿势上传?el-upload + qiniu-js 的实现 https://juejin.im/post/5ab5b069f265da239148102f

VUE props和emit相关

1、vue中子组件的methods中获取到props中的值 https://blog.csdn.net/zmkyf1993/article/details/80320802

2、【vue】组件的使用(2)Prop依赖,以及.sync用法 https://github.com/Kelichao/vue.js.2.0/issues/18

3、有点不明白,vue子组件自定义事件为何不能在$emit传入当前方法 https://segmentfault.com/q/1010000007802941 【我开始也是因为这个大小写。。。。】

4、vue组件间通信、数据传递(父子组件,同级组件) https://segmentfault.com/a/1190000011882494

5、Vue组件通讯: prop this.$on this.$emit eventBus router https://zhuanlan.zhihu.com/p/37881481

6、说说在 Vue.js 中如何实现组件间通信(高级篇) https://www.jianshu.com/p/9635baca315c

VUE和tinyMCE

1、https://www.jsdelivr.com/package/npm/tinymce-vue?path=dist

2、https://github.com/tinymce/tinymce-vue#usage

3、https://tinymce.github.io/tinymce-vue/

Yii2 without Bower

Yii2 without Bower

Yii2框架用了N年了,每次最受不了的就是他需要下载一堆jquery/inputmask/punycode/yii2-pjax等基础的jQuery插件。想想啊,如果你只是拿Yii2来写Rest,这样的东西,有啥用?

而且比较可恨的是,你为了用这个。你还得全局安全fxp的插件,然后,你还得准备一个github的auth token(虽然 在使用的时候,会提示怎么创建),但就是麻烦!

然后在网上找啊找,找啊找,找到这个插件:yidas/yii2-composer-bower-skip,网址为:https://github.com/yidas/yii2-composer-bower-skip,有一些教程,仔细看了一下,原来他就是引用了一个composer的provide。

查看了一下composer的provide的说明:

此程序包提供了一个其他程序包列表。 这对于通用接口非常有用, 一个包可能依赖于一些虚拟的logger包,任何实现这个logger接口的库都可以在provide中列出来。

好吧,意思就是欺骗其他composer组件说,我已经有了,你不用下载了。。。

然而,在yii 2.0.12后,即使你将这个玩意放在 yiisoft/yii2 前,fxp还是会下载bower/* ,所以你还得将fxp删除:composer globao remove fxp/composer-asset-plugin。再试着用composer update -vvv,会看到确实不下载了。不过这带来的另一个问题就是,服务器上的一些其他Yii的项目,因为有可能使用了yii的asset组件,所以fxp还真不能干掉。

最后:我只能暂时放弃了这个方案,不过我还是参考了这个项目,将他的composer中的内容放到了自己的composer.json文件里。毕竟,如果是在一台新的机器上,就不用担心了。因为我已经很久不用Yii AssetManager了。现在都是blade + vue (虽然 用法也比较恶心,但不比Yii自带的assetmanager差)

composer discard changes: what do the [y,n,v,d,s,?] do

composer discard changes: what do the [y,n,v,d,s,?] do

有时候你改过代码就会这样,但应该怎么选?

y - discard changes and apply the update
n - abort the update and let you manually clean things up
v - view modified files
d - view local modifications (diff)
s - stash changes and try to reapply them after the update
如果没什么大问题,或者当时只是为了debug的,直接选y吧
清理了sablog一个历史BUG

清理了sablog一个历史BUG

后台删除评论的时候,一直出现了504超时,原本想着,这个破程序用了10多年了就不改了吧。但总感觉不舒服。。。所以就瞄了一眼。

毕竟程序我都改啊改的,支持了PHP7.3了。没必要为了点小事就。。。

看了下代码,原来。在处理评论的时候,不管是编辑、还是删除,原程序都遍历了所有的文章,并更新了所有文章的评论数。。好吧。可能是因为原作者也没想到我废话那么多,写了那么多的垃圾博客内容。。。。

于是我改成了。只要是删除评论,我就将对应的articleid读出来。然后,也只有删除操作的时候,才会更新涉及文章的评论数。

顺便再说一句,原来其实也没有这么卡的,也不会有504 错误的,为什么会出现呢?是因为我用了RDS,相当于这个操作。。。。连接了RDS 几千次。。直接就给弄崩了,原来数据库在本地的时候,几乎不受影响。。几千次又咋地?

换句话说。。。写代码还是要与时俱进啊。。。

补充:SSL证书完事了,但还是警告的问题

补充:SSL证书完事了,但还是警告的问题

先说为什么要处理

1、有朋友评论说,我这种frp+nginx是ssl代理方式,不能保证全站https,如果有schema检查的就有问题。
基于我大部分项目都是采用了Yii的Url::to()方法,默认不加schema。如果加了schema,他是自己读当前的URL的。所以自己开发的内容可以无视,主要还是一些第三方库。比如部分字体,部分JS。有的JS中还createElement中引用的JS。但这个毕竟少数。现在用了Vue+PHP之后。都在尽量用一些可靠的代码(不行就用unpkg之类的,卡就卡点吧)
2、水月 说,打开博客后还是有问题。。
所以,检查了一下,说我有几个小问题
1、支持了SSLV1,建议我不要支持。于是删除了
2、最重要的是说。。。我的证书链有问题,于是重新生成证书链,然后OK(至少到现在还是正常的)【现在网上有专门生成证书链的工具,谷哥一下就OK了】
3、额外检查了一下,真的发现有个页面里有个之前的广告链接。还是http的,改掉。(然后发现很多友情链接,都是http的。这怎么破?我先强制改成https的了。。如果打不开,我也没办法)
现在应该是小锁了吧?哈哈
花了5分钟,重新签了SSL证书

花了5分钟,重新签了SSL证书

1、重签证书,原来的证书好象也有问题。

2、将页面里涉及到的http链接全部改成了https,几乎没有漏网之鱼了。
原来打开https://neatstudio.com的时候,chrome直接警告,现在终于是一个绿锁了。比较欣慰,果然,原来3~5分钟就能做的事,硬是拖了一年多。。。
blade模板用法123

blade模板用法123

1、component和include的区别是啥

如果你不用slot。。。那component和include真没啥区别,而且component还是块级调用。而include是行级(可以少写一个@endinclude,不是挺好?)
2、includeIf includeWhen include ....应该在什么时候调用
如果你有一堆逻辑判断但不知道怎么拆,或者说觉得放在一页里面比较烦,就用这些来进行简单的区分吧
比如你不知道模板是不是存在,就用includeIf(但这个逻辑很妖,你自己写的代码你不知道它存不存在?)
includeFirst,是指定多个模板,当一个不存在就用下一个。这个不是和includeIf一样?你自己写的你会不知道?
所以。感觉有用的也就includeWhen了。根据逻辑判断来调用相应的子模板
3、怎么扩展自己的方法?
不太建议,但如果真要扩展,现阶段已经很容易了,比如我在自己的Yii中就是这样:
$this->blade->getCompiler()
->directive('config', function($environment) {
list($key, $defaultValue) = explode(",", $environment . ",", 2);
$environment = trim($key, "\"'");
return Configure::get($environment, $defaultValue != "," ? rtrim($defaultValue, ",") : null);
});
然后在模板里的用法就是
a、@config(abc),获取Yii::$app->params['abc']
b、@config(abc.def) ,获取Yii::$app->params['abc']['def']
c、@config(abc,123),如果没有定义Yii::$app->params['abc'],就返回默认值123
4、如果想用blade模板自带的@csrf @method,得自己实现csrf_field , method_field方法(如果你不实现就直接用,会报这两个方法不存在D)
nginx + acme.sh + frp ,轻松本地+线上 SSL泛域名

nginx + acme.sh + frp ,轻松本地+线上 SSL泛域名

如题的组合。由于本地写代码,比较不方便搞成SSL,毕竟自签名证书现在大部分浏览器都不认了。而且现在微信开发(小程序)、APP等都只认SSL。所以才有了利用frp来进行SSL穿透。

步骤我说的简单一点。不详细 说了

如果不需要内网穿透,其实就是 nginx + acme.sh 就Over了,只是nginx需要配置一下(记得泛域名使用的是fullchain.cer,普通 的单域名是用的xxx.domain.cer)

如果需要内网穿透,步骤简要如下

1、frps -> 设置vhost_http_port(本次假定为8888) ,然后利用supervisor 管理frp (可以使得frp异常崩溃后能够重启)【或者使用systemd,各人喜欢】

2、设置nginx,server_name 为 *.app.neatstudio.com (以app.neatstudio.com为例),在proxy_pass中选择使用upstream,设置为刚才的vhost_http_port,例:

upstream app.neatstudio.com {
server 127.0.0.1:8888;
}

server {
listen 80;
server_name *.app.neatstudio.com;

listen 443 ssl;
ssl on;
ssl_certificate /etc/nginx/ssl/*.app.neatstudio.com.fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/*.app.neatstudio.com.key;

ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;

ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

# turn on the OCSP Stapling and verify
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/ssl/*.app.neatstudio.com.fullchain.cer;



add_header Strict-Transport-Security "max-age=31536000";

location / {
proxy_pass http://app.neatstudio.com;
include /etc/nginx/proxy_params;
}
}

3、在本地(或者任意一台想有https的服务器上)安装frpc,设置subdomain就行了,例:

[test.app.ns.com]
type=http
port=80
subdomain=test

这样就OK了。[]里的test.app.ns.com,为什么取这个名字?是因为。。。frp的客户端中的任意[]包含的TAG,都不能重名(切记)

然后一切Over(因为我使用mac+mamp,所以会更方便的管理域名)

犯贱,关机后就没启动

犯贱,关机后就没启动

因为当时买腾讯云偷了个懒,想着低配也得有性能。所以就买了本地磁盘,结果,本地磁盘不能升配。所以就关机做镜像,然而。。。镜像要时间,在做的时候,我关闭了窗口。。结果 就忘了这事。

一天没有启动服务器。真尴尬