PHP API不匹配

时间:2013-08-26 07:43:28

标签: ubuntu-10.04 php-5.4

我需要启用我系统上安装的模块。我几个月前从ondrej的存储库安装了PHP 5.4,现在我已经从源代码编译了ODBTP模块。

不幸的是,如果我只启用此模块,则会收到导致所有PHP脚本失败的错误:

PHP Warning:  PHP Startup: odbtp: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match
 in Unknown on line 0

我想我明白了它试图告诉我的内容,我想从源代码编译PHP,以便它具有匹配的API版本,但是我无法找到我的PHP版本的源代码......

如果您需要更多详情,我很乐意为您提供。

1 个答案:

答案 0 :(得分:0)

  1. /etc/apt/sources.list或任何地方杀死ondrej的回购。
  2. purge您的PHP安装
  3. php.net下载您需要的PHP版本,或者从5.4.x(5.4.19)
  4. 下载最新版本的PHP
  5. 编译并支持您需要的所有模块
  6. 您的Ubuntu不再受支持,因此除了从源代码编译之外,您没有太多其他选项。如果是服务器,那么步骤应该是另一种方式。 :d

    @khartvin将该服务器更新为12.04也会带来很大的风险,可能会破坏事情。 OS版本之间的东西变化 - 很多,尤其是Ubuntu! 有时配置管理对Canonical来说并不好。

    如果要更新,最好在不同版本之间跳转:

    10.04 updt-> 10.10 updt-> 11.04 updt-> 11.10 updt-> 12.04
    

    但仍然可能失败,所以这不是解决方案。

    从服务器上的源代码编译并不意味着您需要整个编译的停机时间 - 您不需要编译当前安装。您可以编译到其他目录,然后切换网络服务器设置。

    此时最佳选择可以整体迁移服务器。因此,请与您的客户沟通。这是您通常需要做的重新定位: (很多这取决于你的设置,这只是一个普通的单服务器示例)

    • 准备新机器:SELinux,语言环境,用户/组,Apache等
    • 根据需要安装和配置php
    • 安装数据库,复制信息,准备在DNS切换之前再次复制
    • 如果你有SSL,你还必须管理
    • 让您的网络应用程序在新计算机上运行
    • 其他人对其进行测试,以验证所有内容是否正在运行
    • 在您的用户时区的某个深夜:停止Web应用程序,复制数据库,更改dns记录以指向新服务器,并且在大约10分钟到2小时内,您的用户将在新服务器上。< / LI>

    DNS记录的刷新时间取决于您的提供商 - 在大多数情况下,它几乎立即发生。