【问题标题】:Hiphop for php "can not execute binary file"Hiphop for php“无法执行二进制文件”
【发布时间】:2011-10-09 00:55:55
【问题描述】:

老问题如下。问题是 ftp 传输模式不是二进制的。

但现在我有另一个问题。

运行 hiphop 编译文件会出现以下错误(在另一台计算机上编译的错误)。

“加载共享库时出错:libmemcached.so.7:cannot open shared object file:No such file or directory.”

但是本地编译的可以毫无问题地工作。

如何链接或加载此类库? 谁能帮帮我?


我在家庭和 vps 服务器上都使用 ubuntu 11.04。 我按照这个(https://github.com/facebook/hiphop-php/wiki/Building-and-Installing-on-Ubuntu-11.04)指令设置了facebook的hiphop。而且我确实将我的 php 源代码编译为服务器和家用电脑上的可执行二进制文件。

但如果我将二进制文件发送到从家用电脑编译的服务器,它不会运行并提示“无法执行二进制文件”。

但是服务器可以运行自己编译的二进制文件。

为什么我不能在服务器上运行这个家庭编译的文件。 (在家里跑)

【问题讨论】:

  • Home OS 是 ubuntu 11.04 64 位,与服务器相同。hiphop 编译器(所以库)都安装在两者上。

标签: php compilation execute hiphop


【解决方案1】:

您的台式机和服务器是否使用相同的架构?在 64 位系统上编译的二进制文件不能在 32 位操作系统上运行,而在 32 位操作系统上编译的二进制文件需要在 64 位系统上安装 ia32-libs 包。

【讨论】:

  • 服务器是(Ubuntu 11.04 x86_64 - Ubuntu 11.04 64bit base.)openvz。家也是64位。
  • 如何将文件发送到服务器?
  • 我通过 ftp 发送然后从权限选项卡标记(允许将文件作为程序执行)
  • 二进制文件不兼容(无法执行,编译命令错误)或文件在传输时被修改(例如 FTP 中的 ASCII 模式)。您可以通过在每个系统上创建文件的校验和并将它们相互比较(SHA1、MD5)来检查是否是传输问题。
  • 我将 filezillas 传输模式自动更改为二进制。现在它显示“加载共享库时出错:libmemcached.so.7:无法打开共享对象文件:没有这样的文件或目录。”但是另一个(本机)编译的仍然没有错误。
【解决方案2】:

我想通了。 我在我的 vps 上创建了与我在家用计算机上相同的用户名。 给它 sudoers 的权利。 (视觉)

并在与我在家用计算机上相同的目录中构建 hiphop。 现在它与新用户一起运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-20
    • 2013-08-04
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多