PHP 源码阅读笔记:编译与调试 PHP

基本信息 PHP 版本:7.1.0 调试环境:Ubuntu(WSL) 调试工具:GDB、Clion 编译 PHP 下载并安装 PHP: $ wget http://cn2.php.net/distributions/php-7.1.0.tar.gz $ tar -xzvf php-7.1.0.tar.gz $ cd php-7.1.0 $ ./configure --prefix=$HOME/php-7.1.0/build --enable-fpm 注意:$HOME/php-7.1.0/build 是 PHP 执行文件和库文件安装的目录,可以自定义。--enable-fpm 表示同时安装 php-fpm。 ...

2021-08-06 · 3 分钟 · 1017 字

什么是惊群问题

前言 我们知道,像 Nginx、Workerman 都是单 Master 多 Worker 的进程模型。 Master 进程用于创建监听套接字、创建 Worker 进程及管理 Worker 进程。 Worker 进程是由 Master 进程通过 fork 系统调用派生出来的,所以会自动继承 Master 进程的监听套接字,每个 Worker 进程都可以独立地接收并处理来自客户端的连接。 ...

2021-07-22 · 8 分钟 · 3624 字

大端模式和小端模式

什么是大/小端模式 大端模式 大端模式(Big-Endian)又称大端字节序,由于在网络传输中一般使用的是大端模式,所以也叫网络字节序。 在大端模式中,将高位字节放在低位地址,低位字节放在高位地址。 ...

2021-06-14 · 4 分钟 · 1822 字

基于 GitHub Actions 定时推送网址到百度站长平台

前言 刚学会 PHP 的时候写了一个笑话类型的网站,网站的数据是定时从另外一个网站上采集的。但是网站部署在虚拟主机上,所以用不了 crontab 执行定时任务。 解决办法是使用监控宝,定时请求我网站的一个地址,在这个地址里面编写采集数据的逻辑。到了现在已经有很多解决办法,比如 Workerman/Swoole 的定时器组件、GitHub Actions。 ...

2021-05-17 · 3 分钟 · 1207 字

聊聊五种 I/O 模型

什么是 I/O I/O 是 Input/Output 的简写,即输入/输出,是计算机与外部设备(键盘、鼠标、磁盘等)通信的统称,与具体实现无关。 与外部设备的通信其实就是对外部设备进行读取或写入数据的过程,比如对文件的读写操作可以称为文件 I/O、对套接字的读写操作称为网络 I/O。 ...

2021-05-12 · 4 分钟 · 1677 字