0

我已经在 Cygwin 上成功编译了 PHP 5.4.9,但现在我无法动态加载 MongoDB 扩展。这是 PHP CLI 输出:

$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20100525/mongo.dll' - No such file or directory in Unknown on line 0

但是,它肯定存在:

$ ls -l /usr/local/lib/php/extensions/no-debug-non-zts-20100525/mongo.dll
-rwxr-xr-x 1 Linker None 204288 Dec 12 02:12 /usr/local/lib/php/extensions/no-debug-non-zts-20100525/mongo.dll

DLL 文件已从官方 MongoDB GitHub 存储库下载。它实际上重命名为 php_mongo-1.3.1-5.4-vc9-nts.dll。奇怪的时刻:当我尝试用 x86_64 版本(我的操作系统版本)替换它时 - 它说 DLL 的 exec 格式错误。

4

1 回答 1

2

如果您下载了扩展程序,则它被构建为使用 Visual Studio 编译的 PHP 作为本机 windows dll 运行。使用 cyhwin-gcc 编译的 PHP 无法使用。

要么自己将扩展编译成 cygwin .so,要么使用使用 Visual Studio 编译的 PHP(首选后者)

于 2012-12-12T01:26:06.567 回答