0

我需要启用安装在我的系统上的模块。几个月前我从 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 版本的源代码......

如果您需要更多详细信息,我很乐意提供。

4

1 回答 1

0
  1. 在任何地方杀死 ondrej 的 repo /etc/apt/sources.list
  2. purge你的 PHP 安装
  3. 从php.net下载您需要的 PHP 版本,或者从 5.4.x (5.4.19) 下载最新版本
  4. 编译它并支持您需要的所有模块

您的 Ubuntu 不再受支持,因此除了从源代码编译之外,您没有太多其他选择。如果它是服务器,则步骤应该相反。:D

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

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

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

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

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

此时,您最好的选择是将服务器作为一个整体进行迁移。因此,将此传达给您的客户。这是您搬迁通常需要做的事情:(这在很大程度上取决于您的设置,这只是一个一般的单服务器示例)

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

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

于 2013-08-26T13:33:30.463 回答