【问题标题】:Does PHP have any hardware or system requirements? [closed]PHP 是否有任何硬件或系统要求? [关闭]
【发布时间】:2016-06-23 05:25:58
【问题描述】:

系统管理员告诉我,我无法在工作场所的网络服务器上更新 php 版本,因为它们“旧”。

这是真的吗?

PHP 是否有任何硬件或系统要求?

谢谢

【问题讨论】:

  • 我很确定您可以使用 Google 找到此信息。
  • 只是出于好奇,有多“老”?如果您可以分享,我们在这里谈论的是什么操作系统和版本?
  • Google 把我带到了这里...我发现第一代 Intel i7 / Xeon CPU 没有 PHP 7 速度改进所需的功能集。在该代硬件上运行 PHP7 实际上比最新的 PHP5 慢。它仍然可以运行,但是从 Xeon X5650 的 4 个内核切换到 Xeon Silver 4110 的 4 个内核,为我们的 Web 服务器节省了 70% 的时间到第一个字节。当单线程评级仅快 28% 时,请参阅cpubenchmark.net/compare/…

标签: php server updates requirements


【解决方案1】:

PHP 确实对 Windows 版本有官方支持,详细说明here

在 Unix 机器上,任何系统管理员都可以在大多数机器上安装 PHP7。我的猜测是您的系统管理员更喜欢坚持使用他们首选的包管理器提供的 PHP。例如,Debian 7 只有 PHP 5.4 和默认的 apt-get 存储库。

【讨论】:

    【解决方案2】:

    PHP 没有我遇到过的任何硬件限制,但肯定会阻止您在较旧的 *nix 系统上编译较新版本的 PHP 的一件事是软件。

    现代版本的 PHP 无法在较旧的 *nix 系统上编译,因为它们没有构建 PHP 所需的工具(现代 C 编译器、glibc 的半新版本、GNU make、Bison 和许多PHP 扩展将具有与旧系统上安装的不兼容的较新库版本的先决条件。

    这很可能就是他们这么说的原因。我曾尝试在 RedHat 7.3 上编译 PHP 5.4,但运气不佳,因为所有用于编译软件的系统库和工具都太旧了。使用 OpenSSL 扩展,旧系统通常甚至没有正确的头文件以及 PHP 在编译期间期望的函数原型。

    所以是的,在旧系统上编译 PHP 很困难或不可能(曾经尝试在旧机器上构建新版本的 libc ???简直是一场噩梦!)。

    例如,我使用 PHP 5.6.22 并开始在 Red Hat Linux 版本 7.3 (Valhalla) 上编译,并没有走多远...

    第一个简单的错误:

    checking for zlib version >= 1.2.0.4... 1.1.4
    configure: error: libz version greater or equal to 1.2.0.4 required
    

    它本身很容易编译,但是系统上没有安装我想要的许多其他扩展库,并且尝试编译每个库可能是它自己的一个兔子洞。

    所以我拿出了我们不必开始的那些,能够./configure就好了,但不是太远进入make...

    php-5.6.22/ext/openssl/openssl.c: In function `php_openssl_get_stream_from_ssl_handle':
    php-5.6.22/ext/openssl/openssl.c:581: warning: passing arg 1 of `SSL_get_ex_data' discards qualifiers from pointer target type
    php-5.6.22/ext/openssl/openssl.c: In function `php_openssl_get_evp_cipher_from_algo':
    php-5.6.22/ext/openssl/openssl.c:1092: warning: return makes pointer from integer without a cast
    php-5.6.22/ext/openssl/openssl.c:1095: warning: return makes pointer from integer without a cast
    php-5.6.22/ext/openssl/openssl.c:1098: warning: return makes pointer from integer without a cast
    php-5.6.22/ext/openssl/openssl.c: In function `openssl_x509v3_subjectAltName':
    php-5.6.22/ext/openssl/openssl.c:1874: `GENERAL_NAMES' undeclared (first use in this function)
    ...
    php-5.6.22/ext/openssl/openssl.c: In function `zif_openssl_digest':
    php-5.6.22/ext/openssl/openssl.c:5112: void value not ignored as it ought to be
    make: *** [ext/openssl/openssl.lo] Error 1
    

    因此,使用 OpenSSL 就完蛋了(顺便说一下,它的版本是 0.9.6b,太旧了!)。我可能可以像以前那样编译更新的 OpenSSL 而不会遇到麻烦,但是这个 7.3 系统也很特别。我们付出了很多努力来将新版本的不受支持的软件(库和编译器)引入该系统以使其保持活力,但在旧版本上我的运气要差得多。

    所以,是的,在旧系统上运行更新的 PHP 可能需要几天的时间,这需要在如何构建和安装库路径之外的库方面拥有大量经验和知识(因此它们不会干扰系统上的其他东西),然后让新内容动态链接到这些内容。

    【讨论】:

    • 感谢您的回复,我知道由于依赖关系,安装此软件的最新版本可能是不可能或非常困难和乏味的。
    【解决方案3】:

    这些是下载和安装 WampServer 的最低系统要求: 操作系统:Windows XP(32 位或 64 位) 硬盘:200 MB 可用空间。 内存:512 MB RAM。 完全管理员权限。

    这些是在生产环境中首次安装

    你不会受到限制。 PROC : 0 直到你显示菜单,所有工作都由两个服务完成 RAM:仅服务,因此取决于 apache 必须管理的连接数(本地使用 1 个) 硬盘:这取决于您安装了多少插件/应用程序以及您的项目大小和数据库。

    【讨论】:

      猜你喜欢
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 2020-03-09
      • 1970-01-01
      相关资源
      最近更新 更多