mac m1 下安装 php7.4 ssh2 扩展
项目里用到了 sftp,所以需要安装一下 ssh2。
安装过程有个报错,开始还以为是不兼容 m1,好在最后顺利安装。
记录一下,以免再次跳坑。
安装 ssh1pech install ssh2-1.3
安装过程中会询问 libssh2 的路径,默认会自动检测,然后,我的问题就来了:
The required libssh2 library was not found
首先排除一下 libssh2 有没有安装,没有安装的话执行 brew install libssh2,然后执行 brew link libssh2 查看其路径信息。
接下来,重新执行 pecl install ssh2-1.3,命令行询问路径时,将 /opt/homebrew/Cellar/libssh2/1.9.0_1 敲入回车即可。
centos php7.4 安装记录
最近记性不太好,做个记录,防止下次忘了。
若果有遗漏,之后再补充。
更新1yum update && yum upgrade
安装 php7.4 的 yum 源12345yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmyum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpmyum -y install yum-utils
安装 php 7.412yum-config-manager --enable remi-php74yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json
安装新版 mariadb先加个源:
1234567vim /etc/ ...
laravel 导入 excel 报错排查记录
今天公司项目导入 excel 时突遇一个报错:Undefined index: Sheet1,一下给我整懵逼了,一通排查,发现是因为执行过 composer update,把一个包升级到了最高,然后,它就不能用了。
看官方 issues 说:
This is a known bug in PhpSpreadsheet PHPOffice/PhpSpreadsheet#1895. Until they release a new version, you have to lock the phpspreadsheet version to 1.16
啥意思呢,翻译一下吧:这是PhpSpreadsheet PHPOffice / PhpSpreadsheet#1895中的一个已知错误。在他们发布新版本之前,您必须将phpspreadsheet版本锁定为1.16
版本太高有时候也不是个好事呀!
issuse
一句话看懂集群、微服务和分布式的区别
一个完整的服务拆分成多个微小的服务,就是微服务。
每个服务不止一个就是集群。
微服务部署在多台服务器上,服务器之间可以相互通信就是分布式。
微服务与分布式的细微差别是微服务可以部署在一台服务器,也可以部署在多台服务器。
少年,留下你的键帽吧!
今天干了一件有点伤感,但是挺有意思的事情。虽然是个流水账,但是我觉得有必要记录一下。
我跟要离职的 阿龙同学 换了一个键帽。
我想,如果把这个做法一直延续下去,每离职一个关系不错的小伙伴就相互交换一个键帽,那最后这把键盘也就非常有意义了,对吧。
😓看我这油光铮亮的空格……
网络一线牵,珍惜这段缘。
祝愿阿龙的工作越来越好!
hexo 表格测试
发现之前写的一篇文章表格不显示,试试咋回事……
排序方法
平均情况
最好情况
最坏情况
辅助空间
稳定性
冒泡排序
O(n²)
O(nlogn)
O(n²)
O(1)
稳定
简单选择
O(n²)
O(n²)
O(n²)
O(1)
稳定
直接插入
O(n²)
O(n)
O(n²)
O(1)
稳定
希尔排序
O(nlogn)~O(n²)
O(n^1.3)
O(n²)
O(1)
不稳定
堆排序
O(nlogn)
O(nlogn)
O(nlogn)
O(1)
不稳定
归并排序
O(nlogn)
O(nlogn)
O(nlogn)
O(n)
不稳定
快速排序
O(nlogn)
O(nlogn)
O(n²)
O(nlogn)~O(n)
不稳定
mac 默认终端记住 ssh 密码
前几天,在小伙伴的极力推荐下装了 iTerm2,用了几天,奈何与我八字不合,ssh 后 vi 模式错乱,各种修复无果,但是在自带终端却又正常,无奈只能切回。
iTerm2 用 sh 文件配置过 ssh 记住密码,在默认终端也是可以用的。
配置方式如下:
新建 sh 脚本1sudo vi /usr/local/bin/terminal.sh
然后放入以下内容
123456789101112131415161718#!/usr/bin/expectset timeout 30set host [lindex $argv 0]set port [lindex $argv 1]set user [lindex $argv 2]set pswd [lindex $argv 3]spawn ssh -p $port $user@$host expect { "(yes/no)?" {send "yes\n";exp_continue;} -re "(p|P)ass(wor ...
mweb hexo 设置
hexo 借助图片插件可以在 post 目录建立跟文章文件的同名文件夹来保存图片,之前也一直都是这么做的,但是在 mweb 上预览时图片不显示,经过一番折腾,反正总会有一番折腾,而且也少不了一番折腾以后,弄好了。
现在将折腾的经过记下来留档。
首先,用 mweb 的外部模式打开 hexo 下的 source 目录,然后右键目录,选择编辑,具体配置如下图,如果没有配置图床可以不用理它,我配完也没理它,为啥呢,因为慢。
把 hexo 的配置文件中:post_asset_folder 改为 false。
下一步,把你花花哨哨的图片放到 source/images 目录即可,新增图片时用 mweb 的图片工具添加,会自动保存到文件夹内,并且会自动添加 mackdown 格式的图片到文档内。
然后,就没了。
哦,可能需要执行一下这个:
1npm install hexo-asset-image --save
这次真的没了。
php ziparchive addfile return false
有个文件,存储了两条准备用于给文件重命名的字符串和文件路径的数据,每行一条,名称和字符串以 , 间隔。
然后问题来了,通过读文件取出数据,然后获取文件路径并打包时,ZipArchive 的 addFile 总会有一个 false。
折腾半天,最后发现还是因为粗心大意,没过滤行尾的换行符……
一声叹息,掏出小本本默默记上一笔。
最后附上代码:
12345678910111213141516171819202122232425<?php$txt_file = './zip.txt';$zip = new ZipArchive();$fileName = './res.zip';$path = '/opt/homebrew/var/www/';if(file_exists($fileName)){ unlink($fileName);}if(!$zip->open($fileName, ZipArchive::CREATE)){ echo '文件读取失败', ...
php 和设计模式 - 门面模式
门面模式也叫外观模式,主要是为子系统中的一组接口提供一个一致的接口,facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
一个简单的🌰:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051class Facade{ private Subsystem $subsystemA; private Subsystem $subsystemB; public function __construct(Subsystem $subsystemA, Subsystem $subsystemB) { $this->subsystemA = $subsystemA; $this->subsystemB = $subsystemB; } public function subsystemARun() { $thi ...