php - 使用 Delphi 2010 和 php4Delphi 编写 PHP 扩展

标签 php delphi iis-7 php-extension php4delphi

首先这是关于 php4Delphi不是RadPHP (以前称为 Delphi For PHP)。

使用

  • 德尔福 2010
  • PHP 5.3.6(VC9、NTS)
  • php4Delphi 7.2(使用VC9指令编译)
  • window 服务器 2008 R2
  • IIS 7

尝试在 IIS/PHP 服务器上运行 php4Delphi delphi_math.dll 示例扩展时,我在 C:\Windows\Temp\php-errors.log 文件中看到以下错误。

[15-Jun-2011 17:58:42] PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\delphi_math.dll' - A dynamic link library (DLL) initialization routine failed. in Unknown on line 0

我已经解决了最初的 PHP 找不到我的扩展的问题,所以这不是路径样式问题。

我在想 php4Delphi 7.2 可能不支持最新的 PHP 5.3.6。有没有人让这个配置对他们有用?

最佳答案

PHP 尝试在内部加载模块但失败了,你是对的。

问题不在于搜索路径,而在于使用 php4delphi 的非线程安全版本的 php。当 php 加载扩展时,它会从扩展 dll 中接收一些回调函数的列表,并使用它与 dll 进行通信。线程安全和非线程安全版本的 php 回调函数的参数列表是不同的。

php4delphi 是为 php 的线程安全模型而设计的。您可以在此处阅读 TS 和 NTS 版本之间的区别:IIS Aid .在这种特殊情况下,如果可能的话,我建议将非线程安全的 PHP 更改为线程安全的 PHP。

如果需要使用 NTS PHP,那么 php4delphi 的源代码必须进行调整,我认为在这种情况下需要进行大量更改。

关于php - 使用 Delphi 2010 和 php4Delphi 编写 PHP 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6354999/

相关文章:

PHP MySQL 生成多个 xml 站点地图索引

xml - ADO 无法使用 native 客户端 (SQLNCLI) 访问 SQL Server XML 类型的列

delphi - "One class per file"规则是否存在一些 Delphi 特定问题?

php - 服务器在 WordPress 上表现不同的问题

asp.net-mvc - Azure Web 角色压力测试 - AsyncController 中的 1000 毫秒阻塞操作

PHP API访问多次调用

php - 网站速度很慢,但是如果我修改 URL,它会正常加载

delphi - Indy SMTP 服务器 - 如何检测 CC 和 BCC 收件人?

css - IIS CustErr CSS 问题

php - 我想要一个包含自定义参数的点赞按钮,我该怎么做?