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...
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...
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() { ...