2009-09-30 85 views
4

我有一个以C语言编写的库,它以PHP扩展的形式分发,并且我的用户在共享主机环境中运行时访问库时遇到问题。如何分发PHP扩展以用于共享主机环境

以前(In PHP versions less that 5.2.5)我们的客户可以简单地使用dl()函数和库的完整路径来访问它。

从PHP 5.2.5开始,dl()函数不能包含任何路径信息,因此库必须由系统管理员安装在全局PHP扩展目录中。

从PHP 5.4开始dl() function has been deprecated已被完全从PHP 6.0中删除。这意味着所有库必须由系统管理员安装,并且也通过PHP.ini加载。

据我所知,这是PHP extensions in a shared hosting environment的新现实,没有“解决方法”。

为了最大限度地提高共享主机管理员代表我的客户安装它的可能性,我需要使用我的发行版处理哪些关键事情?

+0

我觉得和你在一起。我最近不得不编译虚拟服务器的SOAP扩展。幸运的是,我能够使用'dl()'函数。作为一种解决方法,您可以将自己的PHP安装为cgi二进制文件...并非这是一个好主意,但是如果客户端至少无法承受虚拟专用服务(如专用系统但共享硬件) ...也许某种轻量级的cgi来fastcgi接口... – Inshallah 2009-10-01 01:31:01

+0

感谢评论Inshallah。我认为在短期内,我会确保我的扩展程序有充分的文档记录,可以与其他人一起玩,并且很容易被任何系统管理员安装。然后在拍摄到中期时改变“系统要求”,正如tinkertim所建议的那样是VPS。长期的解决方案可能是将整个事件移植到WebService – user44538 2009-10-01 06:16:14

回答

4

许多共享主机将禁用dl()函数,即使它在其特定版本的PHP中可用。总之,共享主机正在迅速变得陈旧,除了那些只想托管博客或其他类型虚荣网站的人。

在大多数人都在“云端”之前,相当长的一段时间,但是我并没有看到任何错误,你期待更多的严肃用户拥有VPS ......并指定需要一个作为系统需求。

我感觉双方都有同样的感觉。我拥有一家小型托管公司,并开发定制的PHP扩展。幸运的是,对我而言,我可以将我的产品提供给我无需担心的客户。

你有没有想过只是提出一个共享服务器,并提供托管给需要它的人?

+0

Good call tinkertim。根据你的建议,我已经和'商业'人聊了聊,他们似乎相当高兴,因为他们期望他们实际上从中赚钱的用户确实会运行VPS。作为系统要求,我会推动这一进展。同时,我会密切关注PHP 6.0版本,看看是否有其他东西弹出来填补这个空白。 – user44538 2009-10-01 06:12:42