PHP 联席架构师辞职,原来他想做 P++…

PHP 语言的创始人 Rasmus Lerdorf 生于 1968 年,今年已 51 岁,他在 1995 年以 Personal Home Page Tools 为名发布了 PHP 1.0。他的辉煌岁月随着雅虎在搜索的衰败而黯淡。1997 年,以色列程序员 Zeev Suraski 及 Andi Gutmans 加入了 Zend 公司 的 PHP 语言开发,发布了 PHP 3, PHP 4, PHP 5,注意没有 PHP 6,再到现在的 PHP 7。 1975 年出生的 Zeev Suraski 在 Zend 工作了 20 年。也许是在语言、架构和库的工作上找不到发展方向了。前几天他宣布从 Zend 离职,业界比较惊讶,PHP 7 优化的开发者鸟哥说是这是早已预定好的事。原来 Zeev Suraski 辞职,他想做 P++,那 P++ 是啥?他通过《P++ idea: FAQ》进行了回答,全文翻译如下。

macOS 的前世今生

为什么写 macOS 历史?因为 macOS 的历史,也是现代操作系统发展史,与大学书本中的内容有距离;另一方面,历史由事件组成,软件发展史中包含了软件功能竞争的关键点;昨日,华为公司发布了 HarmonyOS,而 macOS、Windows 在多年的升级进程中都已进化为微内核,具有比较研究意义。

用 Elasticsearch 解决 MySQL/MariaDB 的 LIKE %Keyword% 中英文混合查询问题

例如有电子产品型号和参数等属性表,需要输入完整或不完整型号或参数,可以使中文或部分英文,查询百万数量级电子器件。 这样查关系数据库的弊端是,当数据量到数百万级时,无论是使用全文检索,还是 LIKE 查询,或分字段 OR 或者 UNION,或者拆表等各种方案,查询耗时均超过 2 秒,用户体验上难以接受。这时,我们排除 SQL Server/Oracle 等商业数据库,可替换更高性能的数据库 PostgreSQL,DB2 Express 缩短查询时间,还可替换 MongoDB 勉强解决,但更佳方案是用 Elasticsearch 来实现。

学习 CentOS 7

CentOS,全称 Community Enterprise Operation System,是一个由社区主导的操作系统,来源于 Red Hat Enterprise Linux,RHEL,因其不收费而得到的大量技术专家的青睐。CentOS 因稳定而安全,软件只用旧版的,更适合企业,吸引了很多 IT 巨头,如淘宝、网易等。

在 CentOS 7 下安装 SQL Server 2017 及创建 PHP 测试程序

SQL Server 是微软公司 Windows 上闭源数据库,当微软拥抱了开源,SQL Server 也被移植到 Linux,有时,我们还会需要通过 PHP 连接 SQL Server 来进行应该开发。 本文旨在帮助读者在 CentOS 7 下顺利安装 SQL Server 及 PHP 连接驱动,本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下编译安装 Redis 5

Redis 是一个使用标准 C 编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。在 PHP 中普通场景中,通常搭配 Memcached 加上缓存,但如果需要持久化,或拆表,用 Memcached 实现都比较麻烦,尤其当需要更复杂的数据结构时,Memcached 需要自己处理,此时,我们可以使用地球上最快的 K-V 数据库 Redis。比如在 OpenStack 中广泛使用。

Linux 版本

Linux 是开源、免费的操作系统,是 Freeware 和 Open Source 运动的代表作。它代表着低成本的商业方案,被无数公司依赖。CentOS 是常用的一种 Linux 发行版,被大量公司和个人使用。它是 Red Hat Enterprise Linux 的开源编译版,因稳定而闻名。稳定是不尝鲜的另一种说法,其中默认的软件仓库选择虽然不是各种软件最新版,却是久经考验被无数程序员采坑过的稳定版。

在 CentOS 7 下安装 Elasticsearch 7.3

全文检索是普遍的需求,从最初 MySQL 支持中文全文索引后,十万级数据量 LIKE 查询方案到 Apache Lucene,到 Solr,然后基于 Lucene 的 Elasticsearch 给世界带来了更好的解决方案,它是目前全文搜索引擎首选。它可以快速储存、搜索和分析海量数据。Wikipedia、Stack Overflow、Github 等公司都用它支撑海量数据业务。 本文旨在指导你在 CentOS 7 下安装 Elasticsearch 7.3。本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下安装 MongoDB 4

MongoDB 是最流行的 NoSQL,其分片集群横向扩展能在一定数量级解决了大数据量增长问题,异构的文档数据也更适合存储实体属性不一致的数据,比如不同类商品及其属性,相比关系数据库,在一定场景下常能用更少的机器支持更重的业务。 本文旨在指导你在 CentOS 7 下安装 MongoDB 4。本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下安装 MySQL 8 及配置

MySQL 数据库软件的背景请参阅《在 CentOS 7 下安装 MariaDB 10.4.7》一文,它目前属于 Oracle 公司,其存储引擎 InnoDB 是最成熟的。Oracle 在 MySQL 的研发资源在近年也有增加的趋势,尤其是最新版更是有可观的进步,所以撰文以表肯定。 本文旨在指导你在 CentOS 7 下安装 MySQL 8。本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下安装 MariaDB 10.4

这个星球的开源事业中,不乏一些技术和商业思维兼具的奇才 Hacker。MariaDB 的 CEO,曾今 MySQL AB 的创始人之一,Monty 就是这样一位商业 Hacker 中的 技术 Hacker。 其技术成就虽不能与奠定计算机工程科学基础的 C 语言、Unix 系统 Hacker 相比,因为他们对软件世界的贡献分属在的不同软件抽象层次,但我们评估其影响力,也可类比同是芬兰的开源项目 Linux 了。 MySQL 之所以重要,是因为它是 LAMP 拼图的一块,它成为了那些年里非商业技术方案中关系型数据库的首选,同时期的 PostgreSQL 略有不敌,它太低调,而 MySQL 和 Apache、PHP 一样,气味相合。 1995年, Michael “Monty” Widenius 和 合伙人一起创立 MySQL AB,2008 年 Sun 收购了 MySQL,后 Sun 被 Oracle 收购,Monty 基于 MySQL 5.5 衍生版开发了 MariaDB(Maria 是 Monty 女儿的名字 ) ,而在 MariaDB 10 是兼容 MySQL 5.6 开发的。 现在的情况是,世界级的大公司为预防 Oracle 将 MySQL 导向封闭,纷纷投资了 MariaDB,比如我们的阿里巴巴就是其股东之一。Linux 世界重要的发行版更是将内置数据库由 MySQL 改为了 MariaDB。 估计 Monty 此生夙愿即 beat Oracle MySQL,用他的话叫做“让 Oracle MySQL 在这个星球上消失 ” 。但随着 MySQL 8 新版的发布,我们发现这真的不容易。但一般我们在技术方案中,不需要利用 MySQL 8 新特性时,通常使用 MariaDB 替代。 本文旨在指导你在 CentOS 7 下升级内置 MariaDB 5.5.60 到最新版本 10.4.7,以受益于 MariaDb 10 的新特性和性能基准。本安装过程应已经过笔者反复测试,以确保成功。 其技术成就虽不能与奠定计算机工程科学基础的 C 语言、Unix 系统 Hacker 相比,因为他们对软件世界的贡献分属在的不同软件抽象层次,但我们评估其影响力,也可类比同是芬兰的开源项目 Linux 了。 MySQL 之所以重要,是因为它是 LAMP 拼图的一块,它成为了那些年里非商业技术方案中关系型数据库的首选,同时期的 PostgreSQL 略有不敌,它太低调,而 MySQL 和 Apache、PHP 一样,气味相合。 1995年, Michael “Monty” Widenius 和 合伙人一起创立 MySQL AB,2008 年 Sun 收购了 MySQL,后 Sun 被 Oracle 收购,Monty 基于 MySQL 5.5 衍生版开发了 MariaDB(Maria 是 Monty 女儿的名字 ) ,而在 MariaDB 10 是兼容 MySQL 5.6 开发的。 现在的情况是,世界级的大公司为预防 Oracle 将 MySQL 导向封闭,纷纷投资了 MariaDB,比如我们的阿里巴巴就是其股东之一。Linux 世界重要的发行版更是将内置数据库由 MySQL 改为了 MariaDB。 本文旨在指导你在 CentOS 7 下升级内置 MariaDB 5.5.60 到最新版本 10.4.7,以受益于 MariaDb 10 的新特性和性能基准。本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下编译安装 Apache 2.4

Apache 是全球最大的软件基金会的名字,拥有300多个开源项目。我们所说的 Apache Web 服务器通常指其中的 httpd 项目,该项目自 1.x 版本成为最通用的 Web 服务器,从 apache 更名为 Apache httpd,成熟稳定。 本文旨在帮助读者在 CentOS 7 下顺利安装 Apache httpd,本安装过程应已经过笔者反复测试,以确保成功。 官方提供 Windows 和 NetWare 版本的二进制文件,其余的系统只提供了源代码。本文采用源码编译方式安装,对 CentOS 7 下 Apache httpd 2.4.x 有效。截止本文发布,CentOS 版本是 1810,Apache httpd 版本是 2.4注意:较常用的几个经典版本中,Apache httpd 2.2 版本是 2017 年 7 月发布的,生命周期于 2018-01-01 终止,而 1.3 版本已归档,所以建议使用 2.4 版。 ​

在 CentOS 7 下编译安装 PHP 7

一般,我们选择在 Windows 和 macOS 下开发PHP,而 PHP 在 Windows 和 macOS 的安装相对简单,而在 Linux 服务器环境 CentOS 7 下官方未直接说明。本文旨在帮助读者在 CentOS 7 下顺利安装 PHP 7,本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下安装 PHP 7

一般,我们选择在 Windows 和 macOS 下开发PHP,而 PHP 在 Windows 和 macOS 的安装相对简单,而在 Linux 服务器环境 CentOS 7 下官方未直接说明。本文旨在帮助读者在 CentOS 7 下顺利安装 PHP 7,本安装过程应已经过笔者反复测试,以确保成功。

在 CentOS 7 下修改网卡名称为 eth0

在安装完 CentOS 7 以后,发现网卡名改变为了 enp0s3,而不是以前版本中的 eth0。 eth0 格式的好处是,当网卡硬件故障后,接口名称仍然保持固定,无需重新枚举,可以无缝替换;新的命好处是,自动基于固件、拓扑结构、位置信息来确定。CentOS 升级后打破习惯,我们表示不能忍受,是不是?本文旨在帮助强迫症读者将网卡名修改为默认 eth0 形式。

在 CentOS 7 下配置 YUM 国内镜像

yum 全称 Yellow dog Updater, Modifier,是 CentOS 7 默认的软件包管理工具。本文旨在帮助读者在 CentOS 7 下配置 yum 国内镜像源来加速软件的下载安装。 截止发布,最新 CentOS 版本为 1810​ ,本文适用于 CentOS 7。