PHP和MySQL的License问题

很有意思。事情原委如下,
MySQL的许可分两种,一种是基于GNU开源协议,一种是商用协议。前一种更具体的讲,
MySQL的数据库是基于GPL协议的,但一些client libraries是基于LGPL的。MySQL这不
在Web应用上取得了比较大的成功了,一些商用软件就连接到这些client libraries上
面(这是合法的),从而跟基于GPL的MySQL数据库核心间接连接起来。这样这些商用软
件就不用买MySQL了,损害了MySQL的利益。
所以MySQL在某一天决定将这些LGPL的库也改成GPL了,因为GPL规定使用GPL的软件也必
须以GPL的方式公开出来,这样就可以防止商用软件的上述情况了。
Linux下,有个词叫LAMP,意指LInux+Apache+MySQL+PHP是最佳组合,性能很高配置很
容易。PHP将MySQL的client库就嵌入到它的源码里。PHP从4之后改成APL,而不是GPL。
MySQL的更改库许可的决定,意味着如果PHP继续用MySQL,也必须基于GPL协议。而APL
和GPL是有冲突的。所以PHP只能将MySQL的集成模块从自己包里移出去。
这并不意味着用户不能将PHP和MySQL连在一起,对用户的使用来讲是没有问题的,基于
PHP和MySQL的开发只能基于GPL也是许可的。但对PHP来讲,使用MySQL就和使用其他数
据库,比如Oracle等没有区别了,处在一样的位置上。
类似的情况还危及到MySQL与RedHat等多家开源软件的关系。所以MySQL出于利益的考
虑,在04年又决定给出一个exception,即在得到他们授权的情况下,开源软件是可以
将这些client库集成起来,而不用担心GPL的限制。但PHP 5推出了SQLite,仍没有将
MySQL重新集成起来。
因为PHP是纯免费的东西,PHP公司据亮子讲,也是只买附加产品的,所以他们的分离对
PHP的利益影响不大,而对MySQL,因为它还靠它的商业License挣钱呢,跟PHP分离,对
它的影响就比较大。所以有这种举动,也可以理解。
跟亮子在讨论它们间的License关系,找了几个中文的报道看,都不大正确(中国记者
的水平由此可见,都在乱写一通),而英文的报道相对较少。将英文报道跟英文论坛上
讨论的问题综合起来,写了这个东西,应该是正确的。

Leave a Reply

Your email address will not be published. Required fields are marked *