PHP 多进程编程 – 入门

本文将简述如何快速了解 PHP 的多进程编程,并提供实验脚本。

函数

为快速入门,本文只使用多进程的两个函数:pcntl_forkpcntl_waitpid

多进程开发最重要的函数 pcntl_fork,其在当前进程 fork 一个子进程,然后父子进程在 fork 处分别继续向下执行。
这里需要注意,pcntl_fork 返回的值在父进程会得到子进程的 PID (进程 ID),而在子进程中,该值为 0

实例

接着开始实践,执行 pcntl.php 脚本:

$ php ./pcntl.php

Child process #7217 started
Child process #7218[......]

继续阅读

URI、URL 和 URN 之间的关系和区别

之前经常看到 URI、URL 和 URN,但是都没去理清这三者的关系,于是今天就花了点时间搞清楚三者关系。

含义

先了解一下三者的含义

URI

URI – 统一资源标识符(Uniform Resource Identifier),是一个用于标识某一互联网资源名称的字符串。

URL

URL – 统一资源定位符(或称统一资源定位器/定位地址、URL地址,英语:Uniform Resource Locator,常缩写为URL),有时也被俗称为网页地址(网址)。

URN

URN – 统一资源名称(Uniform Resource Name),是统一资源标识(URI)的历史名字。

关系

URI可被视为[……]

继续阅读

Vim 快速入门

如题所示,本文为Vim入门教程,文章涵盖Vim基本的操作:插入、替换、删除、搜索、修改、撤销、重做等等,以及笔者个人的理解和说明。

光标移动

方向键

    k
h       l
    j

光标移动的方向键是hjkl,当然还有默认的方向键。要记住hjkl其实很容易,以j为中心:

Command
Description

j
形似下箭头,使光标向下移动。

h
位于左边,使光标向左移动。

l
位于右边,使光标向右移动。

k
使光标向上移动。

其他

Command
Description

0
使光标移动至行首。

$
使光标移动至行尾部,可记作end[......]

继续阅读

Linux 安装 Shadowsocks 进行科学上网

作为一个天朝的开发者,不会科学上网是不行的。特别是技术信息,百度相较 Google 来说,其搜索结果少的可怜,且重复性极高。所以科学上网对于开发者就显得极其重要。

虽然科学上网方式很多,不过本篇的主角是 Shadowsocks,相信不少人都用其搭建公司或者个人的 VPN。本文将详述 Shadowsocks 的安装、配置等。

安装

除了安装服务端步骤与 Linux 的发行版有关外,其他步骤均适用绝大部分发行版,除非你的发行版不包含 systemd

CentOS

本步骤需要 git,可以通过以下命令安装:yum install git nss curl

$ yum install pyth[......]

继续阅读

Chromium Stop Asking to Set as Default

今天安装了 Chromium 浏览器,但是每次打开都会提示是否设置为默认浏览器,却没有Don't Ask Again的按钮。
经过一番搜索,Chromium 支持命令行参数 -no-default-browser-check 可以停止检查是否默认浏览器。
不过一般桌面的快捷方式应该如何设置呢?

笔者使用的是 Linux 桌面版

查找快捷方式

一般地,应用的快捷方式会放置在以下三个位置:

  • /usr/share/applications
  • /usr/local/share/applications
  • ~/.local/share/applications

不过这里我们使用 find[......]

继续阅读

MySQL CREATE TABLE … LIKE

CREATE TABLE ... LIKE 基于另一个表的定义创建一个空表,包括原表的所有列属性和索引:

CREATE TABLE new_tbl LIKE orig_tbl;

新创建的空表使用原表相同版本的存储格式。用户需要拥有对原表的SELECT权限。

LIKE只能用于基表,而不能用于视图。

注意
LOCK TABLES语句生效时,不能执行CREATE TABLE or CREATE TABLE ... LIKE
CREATE TABLE ... LIKECREATE TABLE一样,会进行相同的检查,不仅仅是复制.fim文件。
这意味着,如果当前的SQL模式和创建原表时的模式不同[……]

继续阅读