PHP无法加载动态扩展(ELF头无效)[PHP+;Zephir]

PHP无法加载动态扩展(ELF头无效)[PHP+;Zephir],php,zephir,Php,Zephir,这里有点小问题。我已经在我的机器上编译了示例Zephir插件,它在工作站上运行良好,但是当我将其移动到生产服务器时,我收到一个奇怪的php错误: PHP启动:无法加载动态库“/mod/utils.so”-/mod/utils.so:第0行的未知ELF头无效 路径很好,因为当文件不在dir中时,php抛出file not found错误 谷歌什么也没告诉我。似乎从来没有人遇到过这样的问题。有什么想法吗?“无效的ELF头”表示您的自编共享库与生产服务器上的系统不兼容。在这里,了解您的工作站和生产环境

这里有点小问题。我已经在我的机器上编译了示例Zephir插件,它在工作站上运行良好,但是当我将其移动到生产服务器时,我收到一个奇怪的php错误:

PHP启动:无法加载动态库“/mod/utils.so”-/mod/utils.so:第0行的未知ELF头无效

路径很好,因为当文件不在dir中时,php抛出file not found错误


谷歌什么也没告诉我。似乎从来没有人遇到过这样的问题。有什么想法吗?

“无效的ELF头”表示您的自编共享库与生产服务器上的系统不兼容。在这里,了解您的工作站和生产环境之间的细节/差异将是非常好的。这是因为您的库已经在您的工作站上为您的工作站编译。在生产服务器上编译是一个BAAAAD想法,您应该尝试获取一个预编译库并将其安装在那里,或者如果找不到,请在与生产机器相同的环境上编译库,然后在生产机器上安装。希望有帮助。

您的机器与服务器相同吗?您是否尝试过在生产服务器上编译它?不同的机器、工作站上的macOS和生产服务器上的CentOS Cool,请参阅上的答案,但忽略有关设置与生产环境相同的机器的部分。您好,谢谢您的回复。我想在生产服务器上编译,但这只是一种愚蠢的方式。我在iMac(osx sierra 10.12.3)上工作,在生产服务器上我正在运行CentOS。我曾尝试在几个不稳定的环境中运行编译后的PHP扩展,但都失败了,因为相同的错误MacOS使用了完全不同的可执行格式,更不用说ABI/syscall的不兼容性了。如果您想在Mac上构建并在Linux上运行,那么必须进行交叉编译。