PHP 完成向“GPL兼容”许可证的回归。

PHP finalise son retour à une licence « GPL-compatible »

Silicon.fr by Clément Bohic 2026-05-12 11:26 Original
摘要
PHP 8.6 正式采用 BSD 3 条款许可证,项目已向 OSI 申请撤回使用了 20 多年的旧 PHP 与 Zend 引擎双许可。该变更由社区领袖 Ben Ramsey 主导,在获得 PHP Group 及 Zend 母公司 Perforce 同意后实施,解决了因缺乏 OSI 批准导致的 Oracle 等企业使用受阻问题。此举移除了对衍生作品命名、广告条款等限制,使 PHP 许可与 GPL 兼容,简化了分发与商业化障碍。

PHP 8.6 将正式采用 BSD 3 条款许可证,项目组已向 OSI 提交申请,撤销沿用二十余年的旧许可证体系。此前,PHP 长期运行在一种碎片化的授权结构下:PHP 许可证本身,外加一套针对 Zend 引擎的独立许可证。

这一安排的起源可追溯至 PHP 3 时代。当时在 GPL 基础上添加了自定义条款,要求商业再分发须事先获得书面许可,且允许衍生品直接使用“PHP”名称,以图在开放与商业利益间取得平衡。但法律管理难度极大,PHP Group 不得不在 PHP 3.0.1 和 3.0.14 中先后放宽对名称的使用并取消书面许可要求,使许可证趋近 Apache 1.0 风格,同期 GPL 选项也因与理查德·斯托曼的分歧而消失。2000 年 PHP 4.0 发布时,许可证删除了广告中必须展示项目 URL 的条款,并新增一条规定:PHP Group 有权随时修改许可证,只要保持自由开源属性。几乎同时,为满足将 Zend 引擎单独嵌入 MySQL 等场景,Zend 许可证诞生,两者分别适用于不同分发模式。2002 年 PHP 4.2.3 进一步明确,Zend/ 目录下代码一律受 Zend 许可证约束,并禁止衍生品称自己为 PHP。2006 年虽有过小修,主要源于与 Debian 社区围绕补丁分发的讨论,但因 OSI 始终未批准该许可证体系,反而加剧了企业的顾虑。

触发真正变革的导火索来自 Oracle。2020 年,一位工程师因内部合规要求无法部署 phpdbg 而公开反映问题,原因是公司必须以 OSI 批准为前提。社区核心成员 Ben Ramsey 得知后,最初联系 OSI 进行协调,而这件事“播下了种子”,促使他在 2025 年夏季正式发起切换至 BSD 3 条款的倡议。他指出,如今 PHP 与 Zend 引擎高度交织,不再需要分离的许可证;旧条款中禁止衍生品使用“PHP”名称,也给 Linux 发行版的分发造成了法律歧义,且整套许可证既不兼容 GPL,Zend 许可证也从未获得 OSI 认可。

变更需要 PHP Group 每位成员的同意,并征得 Zend 母公司 Perforce Software 的许可,但无须征求贡献者授权——尽管如此,社区仍举行了投票,结果 51 票支持,2 票弃权。最终修订的核心,是删除旧许可证中赋予 PHP Group 与 Zend 的特权:PHP 许可证移除了未经书面许可不得命名衍生品为 PHP、PHP Group 的修订权、再分发时必须展示项目 URL 的要求;Zend 许可证则移除了 Zend 的修订权、再分发时的 URL 展示义务以及广告中的提及与链接要求。这些修改不改变贡献者或用户的权利,此前以旧许可证发布的扩展或软件,其用户和维护者均可选择过渡至 BSD 3 条款。

自此,PHP 重回 GPL 兼容的轨道,消解了长期困扰企业用户与发行版的法律模糊地带,也为项目的持续演进扫清了一项根基上的障碍。

Summary
PHP 8.6 will be released under the BSD 3-clause license, replacing the project’s long-standing complex dual-license system for PHP and the Zend engine, which had caused legal hurdles and GPL incompatibility. Ben Ramsey spearheaded the change, securing approval from the PHP Group and Perforce Software (parent of Zend Technologies), after Oracle’s reluctance to use phpdbg without OSI approval highlighted licensing ambiguity. This simplification removes restrictions on derivative naming, advertising clauses, and unilateral license modification rights, making PHP fully GPL-compatible and easing adoption in Linux distributions and commercial environments.

PHP 8.6 will officially adopt the BSD 3-clause license, ending a 20-year regime of custom licensing that included a separate license for the Zend engine. The PHP Group has formally requested the Open Source Initiative (OSI) retire the old licenses, which had long blocked adoption in environments requiring OSI approval or GPL compatibility.

The project’s licensing history traces back to PHP 1 and 2 released under GPLv2. PHP 3 (1998) introduced a custom license inspired by Apache 1.0, with two key differences: prior written permission was required for commercial redistribution, and the clause barring derivative works from using the PHP name was omitted—intended to allow commercial forks while protecting contributors. The hybrid system proved legally burdensome, leading to revisions in PHP 3.0.1 (allowing the PHP name to indicate module support) and 3.0.14 (removing the commercial redistribution permission requirement). The GPL option disappeared after a disagreement with Richard Stallman, the details of which remain undisclosed.

PHP 4.0 (2000) further modified the license, dropping the requirement that advertising mentioning PHP include the project URL, and granting the PHP Group the right to revise the license at any time without notice, provided changes preserved its free and open-source nature. Meanwhile, a separate Zend Engine license was created for distributions where the engine was used standalone (e.g., embedded in MySQL), while the PHP license applied to bundled distributions. In 2002, PHP 4.2.3 made the Zend license mandatory for code in the Zend/ directory, removed the module-naming exception, and prohibited derivatives from being called PHP.

The push for change accelerated after an Oracle engineer revealed in a 2020 mailing list post that the company refused to allow use of phpdbg without OSI approval, which the PHP licenses had never secured. PHP community leader Ben Ramsey heard the story, initiated OSI engagement, and later called it the “seed” for the formal migration effort he launched in summer 2025.

Ramsey argued that the deep intertwining of PHP and Zend code made separate licenses obsolete, and that the clause forbidding derivatives from using the PHP name created ambiguity for Linux distributions. Moreover, neither license was GPL-compatible, and the Zend license was never OSI-approved. Because only the PHP Group held the authority to change the license, individual member approvals were sought, along with consent from Perforce Software (parent of Zend Technologies). A community vote was held as a non-binding gesture: 51 in favor, 2 abstentions.

The core changes simply strip out the PHP Group- and Zend-specific conditions, leaving contributor and user rights intact. Removed from the PHP license are: the prohibition on derivatives using the PHP name without written consent, the PHP Group’s right to unilaterally revise the license, and the requirement to include the project URL in redistributions. From the Zend license, removed are: Zend’s right to revise the license, the URL redistribution requirement, and the obligation to mention the project in advertising materials. Existing users of extensions or software under the old PHP license can now transition to BSD 3-clause, and maintainers may do the same.

Résumé
PHP 8.6 bascule officiellement sous licence BSD 3 clauses, mettant fin à plus de 20 ans de double licence complexe entre le projet PHP et le moteur Zend. Portée par Ben Ramsey, soutenue par le PHP Group et Perforce Software, cette simplification lève les restrictions commerciales et de nommage, rend PHP compatible GPL et résout les blocages rencontrés par des entreprises comme Oracle.

C’est officiel : PHP 8.6 sera sous licence BSD 3 clauses.

Le projet vient de soumettre à l’OSI une demande formelle de retrait de la licence précédente, en place depuis plus de 20 ans. Ou plutôt des licences. Il y en a effectivement une spécifique au moteur Zend.

Cette distinction n’a pas toujours été. Dans les années 90, PHP 1 puis PHP 2 furent publiés sous GPLv2.

PHP 3, lancé en 1998, avait conservé cette option et y avait ajouté une licence custom. Celle-ci s’inspirait d’Apache 1.0, avec deux différences majeures. D’une part, une exigence de permission écrite préalable pour toute redistribution commerciale. De l’autre, l’omission de la clause interdisant de donner aux produits dérivés le nom du projet. L’idée était d’ouvrir la porte à des versions commerciales tout en assurant que les principaux contributeurs ne seraient pas lésés.

Ce système « à la carte » s’est révélé difficile à gérer pour le PHP Group sur le plan juridique (manque de bande passante, notamment pour fournir les accords écrits). Dans ce contexte, deux révisions intervinrent, avec PHP 3.0.1 puis 3.0.14. La première avait autorisé l’usage du nom PHP pour indiquer sa prise en charge par des modules complémentaires. La seconde avait supprimé l’exigence – problématique, donc – de permission écrite pour la redistribution commerciale. Le résultat se rapprochait de la licence Apache 1.0. En complément, l’option GPL avait disparu, sur fond de désaccord avec Richard Stallman (on en ignore la teneur).

La double licence, produit de l’an 2000

En 2000, la sortie de PHP 4.0 s’était accompagnée d’autres changements dans la licence. D’un côté, la suppression de la clause imposant que tout support publicitaire mentionnant les fonctionnalités ou l’usage de PHP affiche l’URL du projet. De l’autre, l’ajout d’une clause donnant au PHP Group le droit de modifier la licence à tout moment et sans préavis, aussi longtemps que les changements conservaient la nature libre et open source de PHP.

La licence Zend avait émergé en parallèle. Elle s’appliquait à toute distribution séparée du moteur (ses fondateurs songeaient par exemple à l’embarquer dans MySQL). La licence PHP pouvait continuer à s’appliquer en cas de distribution groupée (bundling).

Les choses avaient changé en 2002 avec PHP 4.2.3. Le code source localisé dans le répertoire Zend/ devenait systématiquement couvert par la licence spécifique au moteur. Par ailleurs, l’exception pour les modules complémentaires disparaissait. Et les dérivés n’avaient plus le droit de se nommer PHP.

Un blocage chez Oracle présenté comme le déclencheur

En 2006, avec la sortie de PHP 5.1.2 et 4.4.2, la licence avait subi des modifications mineures. Découlant essentiellement de débats avec la communauté Debian sur le packaging de PHP (distribution de patchs, donc d’un dérivé, soumis à l’interdiction d’exploiter la marque), elles suffirent toutefois à bloquer des développements, faute d’approbation par l’OSI. Chez Oracle, par exemple. Début 2020, un ingé s’en était fait l’écho sur la mailing list php-general. Il souhaitait exploiter phpdbg (débogueur interactif), mais l’entreprise ne voulait pas lui donner le feu vert sans l’approbation en question.

En ayant eu vent, Ben Ramsey, ponte de la communauté PHP, avait effectué les démarches auprès de l’OSI. Mais cela a surtout, explique-t-il désormais, « semé une graine ». Celle qui allait le pousser à emmener, formellement à partir de l’été 2025, l’initiative de basculement vers la BSD 3 clauses.

L’intrication croissante entre PHP et Zend ne justifiait plus l’existence de licences séparées, estime l’intéressé. La clause empêchant les produits dérivés de se nommer PHP a créé de l’ambiguïté pour les distributions Linux, souligne-t-il aussi. Tout en rappelant qu’aucune licence n’était compatible GPL… et que l’OSI n’a jamais approuvé celle de Zend.

Comme seul le PHP Group avait le pouvoir de modifier la licence de PHP, il a fallu obtenir, au cas par cas, l’accord de ses membres. Il a également fallu obtenir celui de Perforce Software, dont Zend Technologies est aujourd’hui filiale. Mais pas celui des contributeurs, la licence ne l’imposant pas (il y a tout de même eu un vote communautaire, à 51 pour et 2 abstentions).

Une histoire de suppression de conditions spécifiques

Au final, les modifications ont, dans les grandes lignes, consisté à retirer les conditions spécifiques au PHP Group et à Zend. Sans changer les droits des contributeurs ni des utilisateurs.

Supprimé côté licence PHP :

Interdiction, pour les dérivés, de se nommer PHP sans accord écrit du PHP Group

Autorité du PHP Group pour réviser la licence

Renvoi URL vers le projet PHP dans le cadre de toute redistribution

Supprimé côté licence Zend :

Autorité de Zend pour réviser la licence

Renvoi URL vers le projet Zend dans le cadre de toute redistribution

Mention et renvoi URL sur les supports publicitaires

Les utilisateurs d’extensions ou d’autres logiciels publiés sous la version précédente de la licence PHP peuvent choisir de passer sous la BSD 3 clauses. Les mainteneurs peuvent faire de même.

Illustration générée par IA

The post PHP finalise son retour à une licence « GPL-compatible » appeared first on Silicon.fr.

AI Insight
Core Point

PHP 于 8.6 版正式切换至 BSD 3-Clause 许可证,简化长达 20 余年的双许可历史,实现 GPL 兼容,并消除衍生作品命名限制,提升企业采用与发行版打包的便利性。

Key Players
  • PHP Group — PHP 语言维护组织,主导许可变更。
  • Zend Technologies — PHP 核心引擎 Zend 开发商,现为 Perforce Software 子公司。
  • Oracle — 因内部工程师使用 phpdbg 时遇许可审批障碍,成为推动许可重审的触发者。
  • OSI — 开源促进会,需其批准以保障企业合规。
Industry Impact
  • ICT: High — 许可简化与 GPL 兼容消除 Linux 发行版打包及企业法务障碍,直接促进 PHP 生态扩展。
  • Computing/AI: Medium — 作为 Web 基础设施核心语言,许可变更影响依赖 PHP 的平台与服务集成。
Tracking

Strongly track — PHP 许可 GPL 兼容转型可能成为其他混合许可开源项目简化合规的参考范例。

Related Companies
Oracle
mature
neutral
positive
neutral
neutral
neutral
Categories
软件
AI Processing
2026-05-12 14:43
deepseek / deepseek-v4-pro