部署一个新项目,composer install 的时候报错:

PHP Fatal error:  Uncaught Error: Class "Normalizer" not found in /usr/share/php/Symfony/Component/String/AbstractUnicodeString.php:31

这个问题是因为 Normalizer 类没有被找到,这个类是 Symfony 组件的一部分,并且依赖于PHP的国际化扩展 php-intl。

需要手动安装一下。

我的服务器是 ubunut, php 版本是 8.3,直接使用 apt 安装:

sudo apt install php8.3-intl

也可以考虑使用 pecl 安装:

pecl install intl

检查扩展是否已生效:

php -m | grep intl

重新 composer install,问题解决。

有个需求是在小程序页面展示二维码。

于是使用 canvas 实现了一下,发现有个bug,真机上看的时候,滑动页面,canvas 会抖动,在安卓上更是乱跑,没法用。

使用服务端生成二维码会有点影响服务器性能,并且消耗带宽。

不如考虑将 canvas 转成 base64 图片后展示。

下面是实现步骤:

- 阅读剩余部分 -

刚用 AI 写了个处理 YAML 的小工具,因为是 php 写的,直接用了 yaml 扩展。

一运行发现我本地的 php8.3 还没安装 yaml 扩展,虽然可以改成使用第三方包,但觉得还是安装一下试试。

执行 pecl install yaml,提示找不到 libyaml 包。

checking for yaml headers... not found
configure: error: Please install libyaml
ERROR: `/private/tmp/pear/temp/yaml/configure --with-php-config=/opt/homebrew/opt/php/bin/php-config --with-yaml' failed

- 阅读剩余部分 -

今天突然发现向我的服务器提交代码非常慢,巨慢,然后测试版的应用请求响应也非常慢,一开始以为是网络问题,但登录服务器一看,发现 CPU 很忙。

2核2G 的 Ubuntu,load average: 1.93, 0.99, 0.55。

排名第一的进程是 kswapd0,问了一下 kimi,得到的回答是:

kswapd0 是 Linux 系统中的一个内核线程,主要负责虚拟内存管理中的换页操作。当系统的物理内存不足时,kswapd0 会执行换页操作,将一些不常用的内存页从物理内存移动到磁盘上的交换空间(swap space),以释放物理内存供其他进程使用。这个过程会消耗大量的 CPU 资源,因此如果 kswapd0 进程占用 CPU 过高,通常意味着系统正在进行大量的换页操作,可能是因为物理内存不足。

- 阅读剩余部分 -

独立磁盘冗余阵列(RAID)是一种存储技术,通过将两个或多个硬盘驱动器(HDD)或固态硬盘(SSD)合并成一个协调的存储单元或阵列,从而创建数据丢失的故障安全机制。

常见的 RAID 级别:

  • RAID 0:条带化(数据分块)但没有冗余,提供较高的读写性能。
  • RAID 1:镜像,数据完全复制到另一个驱动器,提供容错能力。
  • RAID 5:条带化加分布式奇偶校验,提供数据冗余和读取性能。
  • RAID 6:类似于RAID 5,但提供更高级别的容错能力。
  • RAID 10:RAID 1+0,将RAID 1镜像组合成RAID 0条带化,提供较高的容错能力和读写性能。
  • RAID 50:RAID 5组合成RAID 0,提供较高的性能和容错能力。
  • RAID 60:RAID 6组合成RAID 0,提供更高级别的性能和容错能力。

RAID 级别对比

2024-11-02T20:22:40.png

常见的 RAID 级别简介

- 阅读剩余部分 -

前两天刷到一个帖子:

2024-11-01T06:09:49.png

简单来说,就是楼主使用 clash 拉取 docker 镜像,然后他的腾讯云机器就被封了。

好几年前,为了加速使用 packgist 等仓库,我在阿里云的服务器装了 v2ray,后来也收到了阿里云的警告邮件,好在阿里云没有直接封机器,给了整改时间。

所以可以确认的是,国内的云服务器都会扫描服务器信息,所以要怎么做你懂的。

如果为了加速下载境外的开源代码或者仓库,建议使用共享本地代理的方法,或者干脆下载到本地再上传。

共享本地代理给云服务器的方法我之前有写过,参考这篇文章

当然,使用国内镜像也不是不可以,但很多国内镜像可用性极差,甚至已经停掉了,简直就是浪费时间浪费生命。

比如 docker 镜像,现在晚上搜到的一堆国内镜像都停掉了,坑爹。

- 阅读剩余部分 -