【问题标题】:Unable to load custom PHP extension in PHP 5.3.5无法在 PHP 5.3.5 中加载自定义 PHP 扩展
【发布时间】:2011-06-09 05:08:57
【问题描述】:

我正在尝试在 Windows XP/IIS 5.1 开发机器上加载自定义 PHP 扩展,但失败得很惨。

我有……

  • 将 PHP 扩展 (php_fortranwrapper.dll) 放在我的 PHP 5.3.5 安装的“ext”子文件夹中
  • 一直在编辑正确的 php.ini 文件(即与 phpinfo() 输出中列出的“加载的配置文件”条目对应的那个)
  • php.ini 中设置extension_dir 指向上述“ext”子文件夹
  • php.ini 中添加了 extension=php_fortranwrapper.dll 条目以加载 PHP 扩展
  • 重新启动 IIS(通过iisreset

在运行phpinfo() 脚本时,它会尝试加载页面,直到 FastCGI 超时并出现以下错误: FastCGI 进程超出了配置的请求超时时间

如果我将 PHP 扩展名重命名为 php_fortranwrapper1.dll,我在逻辑上会看到以下错误:
PHP Startup: Unable to load dynamic library 'C:...\php-5.3.5\ext \php_fortranwrapper.dll' - 找不到指定的模块。

有关信息,我使用 PHP 5.3.5 和 PHP4Delphi 生成了 PHP 扩展,这是一个从 Delphi 源代码编译 PHP 扩展的工具。我的 Delphi 代码加载一个 Fortran DLL 并将一个整数传递给该 Fortran DLL 中的一个函数,并期望返回一个整数结果。

【问题讨论】:

  • 您确定,这不是您要添加的zend_extension
  • 我不这么认为。 php.ini 文件包含一个名为“Dynamic Extensions”的部分,所有extension=php_xxx.dll(例如extension=php_mysql.dll)语句都位于该部分,用于自动加载扩展。我读过的大多数关于构建自定义 PHP 扩展的教程都建议在本节中添加另一行以自动加载自定义扩展。
  • 进行了一些研究(参见 web.archive.org/web/20080703225558rn_1/archive.devnewz.com/2002/…archived site),看来 zend_extensions 扩展了 Zend 引擎本身并且可以改变 PHP 的行为方式。我想要的只是要做的是向 PHP 添加功能。
  • 尝试附加一个调试器看看发生了什么。
  • 我已附加 Xdebug 并使用 XDebugClient 程序尝试调试此问题。烦人的是,Xdebug 从不连接到 XDebugClient,而 php_fortranwrapper.dll 包含在 php.ini 的扩展列表中 - XDebugClient 只是显示“等待 xdebug 连接”状态。 注意:我已经通过删除 php_fortranwrapper.dll 的扩展条目验证了 Xdebug 通常与 XDebugClient 对话。 有人对前进的道路有任何想法吗?

标签: php windows php-extension


【解决方案1】:

您之前是否制作过任何您自己的自定义 PHP 外部扩展?

您能否发布一些您的 Delphi 代码,以便人们了解内部工作原理?

这是 Igal Raizman 使用 C++ 编写的示例,它可能对如何测试有一些有用的想法: http://www.devarticles.com/c/a/Cplusplus/Developing-Custom-PHP-Extensions-Part-1/

如果你以前没有任何成功,也许这个想法会是一个开始?

【讨论】:

  • 对迟来的回复表示歉意。非常感谢您的链接和您的 cmets。恐怕这是我第一次尝试制作自己的自定义 PHP 外部扩展。自一月份以来,我实际上使用两种替代技术将 PHP 与 Fortran DLL 连接起来取得了更大的成功:(1) 用 Delphi 编写的 COM 服务器,以及 (2) 使用 PHP 的 exec 命令调用的用 Delphi 编写的控制台应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 2013-02-10
  • 2021-09-30
  • 1970-01-01
相关资源
最近更新 更多