首先这是关于 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/