【问题标题】:Multi-PHP (5.4+7) Centos 7多 PHP (5.4+7) Centos 7
【发布时间】:2018-09-02 00:42:43
【问题描述】:

我有一个开发VM服务器(Centos7+php5.4+apache2.4)和每个用户作为它的子域,开发它的webservice。

大多数开发人员有义务在 5.4 php 版本上编写代码,默认使用 mod_php,我有指示尽快迁移到 PHP 7(最好是 7.2)。 我研究并阅读到拥有两个不同版本的 PHP 的唯一选择是我必须使用 Fast-CGi 安装其中一个(我不介意在 php7 上这样做)。 我担心什么时候可以选择必要的php版本会影响开发,因为环境不同(mod_php vs Fast-CGi

到目前为止,我只能安装两个 php 版本+必要的模块,没有任何问题。 系统可能会识别出较新的 php 版本并强制选择的用户使用该版本吗?

我尝试使用 virtualmin 的过程并创建 PHP 安装包,但没有成功。 virtualmin 安装了很多额外的东西,导致系统不稳定。

到目前为止,我已经尝试了所有这些程序:

https://www.webfoobar.com/node/45

https://www.centos.org/forums/viewtopic.php?f=47&t=62204

https://rpms.remirepo.net/wizard/(同一系统安装两个版本成功)

我的目标是选择每个用户(在他的子域下)应该在没有任何版本冲突的情况下工作的 php 版本,暂时维护系统(EOL)php 5.4。我读到它可能使用带有 Add-handler 的 .htaccess 配置,但系统无法识别 php7

接受任何指导。 感谢您的阅读 最好的问候

【问题讨论】:

  • 尝试使用 docker(docker-compose) 在同一服务器上运行不同的 php 版本。欲了解更多信息docker.com
  • 感谢 Sathishkumar Rakkiasamy 的反馈,但我不允许在环境中使用 Docker。尽可能干净

标签: php centos7 php-7 php-5.4 php-7.4


【解决方案1】:

在centos 7中安装其他版本的PHP


设置 Yum 存储库 首先,您需要在系统上启用 Remi 和 EPEL yum 存储库。使用以下命令在您的 CentOS 和 Red Hat 7/6 系统上安装 EPEL 存储库

使用此命令在您的系统上安装 EPEL yum 存储库

 sudo yum install epel-release

现在根据您的操作系统版本执行以下命令之一来安装 Remi 存储库。

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

在 CentOS 上安装 PHP 7 您的系统已准备好从 yum 存储库安装 PHP。根据您的要求,使用以下命令之一在您的系统上安装 PHP 7.4 或 PHP 7.3 或 PHP 7.2。

安装 PHP 7.4

yum --enablerepo=remi-php74 install php

安装 PHP 7.3

yum --enablerepo=remi-php73 install php

安装 PHP 7.2

yum --enablerepo=remi-php72 install php


php -v

.

PHP 7.4.1 (cli) (built: Dec 17 2019 16:35:58) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

安装 PHP 模块 您可能还需要根据您的应用程序要求安装其他 PHP 模块。下面的命令将安装一些更有用的 PHP 模块。

对于 PHP 7.4

yum --enablerepo=remi-php74 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt

对于 PHP 7.3

yum --enablerepo=remi-php73 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt

对于 PHP 7.2

yum --enablerepo=remi-php72 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt

.
.
.

***注意:不要安装或使用早于PHP7.2的版本。

PHP 5.x 到 php-7.1 版本已过时,不得使用。请注意,列出的旧版本仅用于存档目的,不再受支持。


【讨论】:

    【解决方案2】:

    我的目标是选择每个用户应该使用的 php 版本

    你必须放弃 mod_php 的使用,改用 php-fpm,可以为每个子域设置。

    我建议您阅读PHP Configuration Tips,其中解释了如何运行此类配置。

    您当然可以使用官方 SCL(rh-php72 或 rh-php73)或“remi”存储库中的 SCL(php56 到 php80)

    供您参考,FPM 现在是 CentOS 8 中的默认配置。

    注意:SetHandler 可以在 .htaccess 文件中设置,但在子域 vhost 配置中设置它可能更简洁。

    【讨论】:

      【解决方案3】:

      Centos 8 >> 安装 php 7.4

      要在 CentOS 8 上安装和启用 EPEL 存储库,请执行以下 dnf 命令。

      dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
      

      要确认 EPEL 存储库的存在,请运行以下 rpm 命令。

       rpm -qa | grep epel
      

      接下来,运行以下命令以添加 Remi 存储库。

       dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
      

      再次验证 Remi 存储库的存在,运行命令。

       rpm -qa | grep remi
      

      第 2 步:在 CentOS 8 上安装 PHP 7.4 成功添加 EPEL 和 Remi 存储库后,执行以下命令以获取可用 PHP 模块流的列表。

       dnf module list php
      

      列出 PHP 模块 从上面的输出来看,remi-7.4 是最新的 PHP 流,因此我们将启用模块流,如下所示。

      dnf module enable php:remi-7.4
      

      启用 PHP Remi Stream 启用 PHP remi-7.4 模块后,您可以继续使用以下命令安装 PHP。这还将安装许多其他软件包,例如 Apache 和 Nginx 模块。

       dnf install php php-cli php-common
      

      #在 CentOS 8 上安装 PHP 要检查安装的 PHP 版本,请运行命令。

       php -v
      

      验证 PHP 安装版本 从输出中,我们可以清楚地看到我们已经安装了 PHP 7.4 版本

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-18
        • 2018-07-27
        • 2019-07-03
        • 2018-06-07
        • 2016-10-04
        • 2021-10-24
        • 2020-11-02
        • 2017-06-30
        相关资源
        最近更新 更多