【问题标题】:Can I migrate from PHP 5.3.10 to PHP 5.6.0? [closed]我可以从 PHP 5.3.10 迁移到 PHP 5.6.0 吗? [关闭]
【发布时间】:2014-10-24 03:24:21
【问题描述】:

我基本上是PHP 开发人员。我目前在本地机器上使用 Ubuntu Linux 12.04 LTS

我正在使用以下PHP 版本来开发我的PHP 项目:

php -v //command run at terminal to know the `PHP` version installed

PHP 5.3.10-1ubuntu3.13 with Suhosin-Patch (cli) (built: Jul  7 2014 18:54:55) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

现在几天前,PHP 的最新稳定版本 (PHP 5.6.0) 由 PHP 开发团队发布。

我的问题是,因为我在本地机器上使用的 PHP 版本太旧了,而且所有低于 5.4PHP 版本都正式不受支持或宣布停产,应该我去PHP 5.6.0

如果你的回答是肯定的,请告诉我该怎么做?迁移后我在项目中编写的代码会正常工作吗?我需要做哪些改变?

如果你的回答是否定的,请详细解释一下为什么?

在问这个问题之前,我已经阅读了 GooglePHP 文档。在那里我找到了以下版本迁移的迁移说明:

   **5.3.x->5.4.x
   5.4.x->5.5.x
   5.5.x->5.6.x**

不知道如何从 PHP 5.3.10 迁移到 PHP 5.6.0

那么有人可以在这方面帮助我吗?

如果您需要有关我的问题的任何进一步信息,请告诉我。

【问题讨论】:

  • 您应该始终使用包管理器来更新软件。仅在绝对必要时手动更新,因此当官方存储库中缺少软件包并且您不想使用第三方存储库时。
  • @Luka:包管理器是什么意思,我应该使用哪个包管理器?
  • 包管理器是一个用于自动搜索和安装包及其依赖项的程序。 apt 是包管理器的一个示例。所有基于 Debian 的发行版(因此也是 Ubuntu)默认都有它。例如,基于 RedHat 的发行版有 yum。因此,您应该始终使用apt-get install php 安装更新。如果软件包已经安装并且有新的更新可用,它们将被安装。如果软件包根本没有安装,它会在运行apt-get install 后安装。看看 DevilishDB 的回答。

标签: php php-5.3 porting php-5.6


【解决方案1】:

升级到 Ubuntu 14.04.1 以获得 PHP 5.5.9 作为一个包,并从 Ubuntu 升级中受益。无论如何,我不会在生产环境中使用 5.6.0。

您可以从this PHP page 获得有关从 5.3 迁移到 5.4 以及从 5.4 迁移到 5.5 的信息。

除了提到的更改和新功能外,PHP 团队还致力于 5.3 和 5.5.9 之间的内存管理和优化。仅这些改进就推动了迁移。

关于迁移的建议

  • APC:PHP 现在嵌入 OPCache 作为 APC 的替代品。如果您使用 APC 变量,则可以使用有关 OPCache 的一些信息 - 在我的情况下,通过新模块(名称更改)使用旧 APC,php5-apcu(注意“u”)是最好的选择。

  • 模块安装在不同的目录中。如果您打算保留您的php.ini,则可能需要调整extension_dir

  • 此外,/etc/php5 目录在结构方面要求更高:在该目录下方是包含模块 ini 文件列表的mods-available (à la nginx)。然后在clifpmapache2... dirs 是一个conf.d 目录,它具有指向主要mods-available 模块ini 文件的符号链接;如果您打算将该模块用于该 PHP 配置,则仅添加一个链接(例如,cli 可能不需要mysqli)。

  • JSON:必须安装模块 php5-json (apt-get install php5-json) 才能获取 PHP JSON 函数(json_encodedecode...)

  • 1234563 - 在 Ubuntu 更新期间,一个错误会阻止安装 - 我只是复制了 php.ini,因为在我的情况下它们对于所有模式都是相同的。

除了迁移很顺利。

【讨论】:

    【解决方案2】:

    TL;DR PHP 5.3.x 仍将获得 Ubuntu 的安全升级,但升级到 14.04.1 以获得更新的版本

    您可以从网站下载并构建/安装 PHP 5.6 的源代码,但不要这样做,因为这意味着您可能会失去系统的稳定性,因为您系统上的其他软件包不是为这个版本设计的,而且您每次发布新版本时都必须手动升级它,如果这些升级与安全相关,则会危及稳定性,因为您不会像使用包管理器那样快速升级它们。

    相反,我建议您将发行版升级到包含 PHP 5.5.9 的 Ubuntu 14.04.1;比 5.3.10 更新很多。当然,在 Ubuntu 12.04 达到 EOL 之前,5.3.x 仍会收到安全更新,但如果你想要最新的功能,你应该进行 dist-upgrade。如果您使用服务器版本,您可以在 Ubuntu 软件更新程序中以图形方式执行此操作,或者在 TTY 中以 root 身份运行 apt-get dist-upgrade(例如使用 sudo)。 更新:改用sudo do-release-upgrade

    编辑:澄清一下,apt-get 是包管理器。如果您通常使用图形工具安装和更新软件包(ubuntu 软件中心、synaptic 等),这里有一些简单的命令。 # 表示必须以root 身份运行(例如sudo apt-get install <package>),$ 表示不需要sudo。用你想要使用的东西替换里面的东西(例如apt-get install chromium-browser

    # apt-get update 更新存储库
    # apt-get upgrade 升级到较新的包(首先运行上面的!)
    # apt-get upgrade <package> 与上面类似,但只是升级单个软件包(除非您有特定原因,否则没那么有用)
    # apt-get install <package> 安装软件包
    # apt-get remove <package> 删除软件包
    # apt-get autoremove 自动删除软件包由依赖项安装且不再需要的
    $ apt-cache search <query> 搜索您提供的查询
    $ apt-cache show <package> 显示包的信息
    # yes "" | apt-get install <package> 安装包回答所有内容的默认答案(您可以使用 yes 和很多命令)
    # apt-get dist-upgrade 会升级所有内容(并删除一些软件包),而这通常会被阻止。

    【讨论】:

    • 我找到了一个redditor。让他生病
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多