手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表查看gouki的文章

M9折腾记

 买了个 M8s 和 M9,M8s 买的比较早,还是 N6000,于是在上面装了个 sentry,准备替换掉我在轻量服务器上装的这个玩意。但发现有点小浪费,再加上sentry 是直接通过 install.sh 来安装的。很多东西没办法更好的处理,于是先买了台 M9,上了32G 内存,准备用来跑跑虚拟器啥的。考虑在上面再安装一下这个 sentry,将 M8s 和我的轻量解放出来。

先是安装了 ubuntu,有时候 你不得不承认 ubuntu 的兼容性是真的好。所有的驱动都认出来了。为什么这么说呢?因为我后面是想尝试用 omv 来处理,毕竟我还要管理 docker 之类的,用这个会更方便。而且我还特地买了1T 的硬盘。

结果 。。。omv 的安装在第一步就卡住了,网卡认不出。eth 不行,wifi 也不行。。从网上下了驱动。也没认出来。一下子傻眼了,在写的时候 ,我已经在下载 unraid 了。如果它能够跑出来,那我后面就改用 unraid 了。反正 unraid 也不贵。

说白了,就是给这个5-1找点事情做做

如何自动更新 SSL 证书?

 听起来好象没问题,因为 acme.sh 就是在做这样的事情,但事实上呢,经常失败。经常有客户跑过来说,怎么网站打不开了?所以找了个检查 SSL 证书的命令,然后放在 console 里跑一下,如果证书在7天内过期就使用 acme.sh 脚本运行一次。

检测的 ssl 命令是:echo -n Q | openssl s_client -servername blog.neatcn.com -connect blog.neatcn.com:443  | openssl x509 -dates -noout,可以看到类似这样的结果 :
 
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = yzhan.com
verify return:1
DONE
notBefore=Mar 25 05:19:28 2023 GMT
notAfter=Jun 23 05:19:27 2023 GMT
 
简点区分一下数据,notAfter=后的时间就是过期时间,在 laravel 下面就方便了。 Carbon类比较一下(PHP 的 DateTime 类也能比较)。laravel 10开始,new Process()还能多进程。写个简单的脚本,加到 crontab,就完事了。
 

苹果M1笔记本如何安装 Python2

为什么需要 python2,还不是因为 node_sass 需要用到它。没有它,npm installF 得了无法执行而直接报错。但苹果从 M1开始就不再默认带上 Python2,而是默认3.x(好象是3.9)。

那怎么办呢?
先安装个 pyenv,再用 pyenv 安装2.7
 
1、brew install pyenv
2、arch -x86_64 pyenv install 2.7.18
3、把路径加入到配置文件:export PATH="$(pyenv root)/shims:${PATH}"
 
Over。如果是非 M1的话,直接 pyenv install 2.7.18即可
 

如何解决 “0308010c:digital envelope routines::unsupported” 的错误

 在使用webpack或者vue-service-cli 的时候,启动时出现:“0308010c:digital envelope routines::unsupported” 的错误,这时候应该怎么解决呢?

 
这个错误的原因可能有两个:
1、 你没有使用 Node JS 的 LTS(长期支持)版本或者是版本太新了。我现在我使用的是 Node 18.0.0。所以我直接npm -g add n ,安装了一个多版本的管理工具,切到16后正常了
2、将 --openssl-legacy-provider 传递给 Webpack 或 CLI 工具 例如,在 React 应用程序中,你可以将 --openssl-legacy-provider 传递给启动脚本,如 "react-scripts --openssl-legacy-provider start"。
 
2是网上查的资料,因为我1就直接解决了,所以2没用上,如果你方法1没有解决问题,那可以尝试方法2

使用UniAPP的data-select弹窗穿透其他组件的问题

虽然已经知道所谓的:在vue中,两个不同的组件,A加了层级或者A的子元素加了层级(大于1),B没加,不管B的子元素层级有多高都不会再A上面显示。

 
但发现不管怎么调整,下拉框还是被其他组件覆盖了,这时候我才注意到有一个sticky的样式。为了让这个元素能够留在顶部,结果就出现了样式穿透的问题了。记录一下下次再遇到的时候,也好加深一下记忆
 
参考:
1、https://www.zhangxinxu.com/wordpress/2018/12/css-position-sticky/ ,杀了个回马枪,还是说说position:sticky吧