zoukankan      html  css  js  c++  java
  • CentOS8下安装、卸载、切换 PHP 版本

    主题

    新购了一台 CentOS8 的云服务器,使用 yum install php 方式只能安装 7.2 版本的 PHP 且无 mysql 扩展,采取的方法是卸载已有 PHP + 重装更新版本的 PHP
    本文参考文档在CentOS 8上安装PHP 7.2、PHP 7.3、PHP 7.4的方法

    停止并卸载 PHP

    本机已存在的 PHP 是通过 yum 安装的 7.2 版本,使用命令停止它

    systemctl stop php-fpm
    

    卸载它

    # 输入
    yum remove php
    
    # 输出
    Dependencies resolved.
    =================================================================================================================
     Package                   Architecture  Version                                         Repository         Size
    =================================================================================================================
    Removing:
     php                       x86_64        7.2.11-2.module_el8.1.0+209+03b9a8ff            @AppStream        5.5 M
    Removing unused dependencies:
     apr                       x86_64        1.6.3-9.el8                                     @AppStream        293 k
     apr-util                  x86_64        1.6.1-6.el8                                     @AppStream        231 k
     apr-util-bdb              x86_64        1.6.1-6.el8                                     @AppStream         12 k
     apr-util-openssl          x86_64        1.6.1-6.el8                                     @AppStream         20 k
     centos-logos-httpd        noarch        80.5-2.el8                                      @AppStream        1.9 k
     httpd                     x86_64        2.4.37-16.module_el8.1.0+256+ae790463           @AppStream        5.4 M
     httpd-filesystem          noarch        2.4.37-16.module_el8.1.0+256+ae790463           @AppStream        400  
     httpd-tools               x86_64        2.4.37-16.module_el8.1.0+256+ae790463           @AppStream        211 k
     mailcap                   noarch        2.1.48-3.el8                                    @BaseOS            71 k
     mod_http2                 x86_64        1.11.3-3.module_el8.1.0+213+acce2796            @AppStream        479 k
     php-cli                   x86_64        7.2.11-2.module_el8.1.0+209+03b9a8ff            @AppStream         11 M
     php-common                x86_64        7.2.11-2.module_el8.1.0+209+03b9a8ff            @AppStream        6.2 M
     php-fpm                   x86_64        7.2.11-2.module_el8.1.0+209+03b9a8ff            @AppStream        5.7 M
    
    Transaction Summary
    =================================================================================================================
    Remove  14 Packages
    
    Freed space: 35 M
    Is this ok [y/N]: y
    Running transaction check
    Transaction check succeeded.
    Running transaction test
    Transaction test succeeded.
    Running transaction
      Preparing        :                                                                                         1/1 
      Running scriptlet: php-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                         1/1 
      Erasing          : php-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                        1/14 
      Running scriptlet: httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64                                     2/14 
      Erasing          : httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64                                     2/14 
      Running scriptlet: httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64                                     2/14 
      Running scriptlet: php-fpm-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                    3/14 
      Erasing          : php-fpm-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                    3/14 
    warning: /etc/php-fpm.d/www.conf saved as /etc/php-fpm.d/www.conf.rpmsave
    
      Running scriptlet: php-fpm-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                    3/14 
      Erasing          : httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64                               4/14 
      Erasing          : apr-util-1.6.1-6.el8.x86_64                                                            5/14 
      Running scriptlet: apr-util-1.6.1-6.el8.x86_64                                                            5/14 
      Erasing          : php-cli-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                    6/14 
      Erasing          : httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch                          7/14 
      Running scriptlet: httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch                          7/14 
      Erasing          : mailcap-2.1.48-3.el8.noarch                                                            8/14 
      Erasing          : centos-logos-httpd-80.5-2.el8.noarch                                                   9/14 
      Erasing          : php-common-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                10/14 
    warning: /etc/php.ini saved as /etc/php.ini.rpmsave
    
      Erasing          : apr-1.6.3-9.el8.x86_64                                                                11/14 
      Running scriptlet: apr-1.6.3-9.el8.x86_64                                                                11/14 
      Erasing          : apr-util-bdb-1.6.1-6.el8.x86_64                                                       12/14 
      Erasing          : apr-util-openssl-1.6.1-6.el8.x86_64                                                   13/14 
      Erasing          : mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64                                 14/14 
      Running scriptlet: mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64                                 14/14 
      Verifying        : apr-1.6.3-9.el8.x86_64                                                                 1/14 
      Verifying        : apr-util-1.6.1-6.el8.x86_64                                                            2/14 
      Verifying        : apr-util-bdb-1.6.1-6.el8.x86_64                                                        3/14 
      Verifying        : apr-util-openssl-1.6.1-6.el8.x86_64                                                    4/14 
      Verifying        : centos-logos-httpd-80.5-2.el8.noarch                                                   5/14 
      Verifying        : httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64                                     6/14 
      Verifying        : httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch                          7/14 
      Verifying        : httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64                               8/14 
      Verifying        : mailcap-2.1.48-3.el8.noarch                                                            9/14 
      Verifying        : mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64                                 10/14 
      Verifying        : php-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                       11/14 
      Verifying        : php-cli-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                   12/14 
      Verifying        : php-common-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                13/14 
      Verifying        : php-fpm-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                   14/14 
    
    Removed:
      php-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                                                
      apr-1.6.3-9.el8.x86_64                                                                                         
      apr-util-1.6.1-6.el8.x86_64                                                                                    
      apr-util-bdb-1.6.1-6.el8.x86_64                                                                                
      apr-util-openssl-1.6.1-6.el8.x86_64                                                                            
      centos-logos-httpd-80.5-2.el8.noarch                                                                           
      httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64                                                             
      httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch                                                  
      httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64                                                       
      mailcap-2.1.48-3.el8.noarch                                                                                    
      mod_http2-1.11.3-3.module_el8.1.0+213+acce2796.x86_64                                                          
      php-cli-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                                            
      php-common-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                                         
      php-fpm-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64                                                            
    
    Complete!
    
    

    通过 DNF 方式查看可安装的 PHP 版本列表

    首先先启用 Remi 存储库,该命令将启用EPEL存储库,参考在CentOS 8/RHEL 8上安装和启用REMI存储库的方法。

    # 输入
    dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
    
    # 输出
    Last metadata expiration check: 0:39:10 ago on Wed 29 Apr 2020 10:02:05 AM CST.
    remi-release-8.rpm                                                                15 kB/s |  23 kB     00:01    
    Dependencies resolved.
    =================================================================================================================
     Package                     Architecture       Version                           Repository                Size
    =================================================================================================================
    Installing:
     yum-utils                   noarch             4.0.8-3.el8                       BaseOS                    64 k
     remi-release                noarch             8.1-2.el8.remi                    @commandline              23 k
    Upgrading:
     centos-release              x86_64             8.1-1.1911.0.9.el8                BaseOS                    21 k
    Installing dependencies:
     centos-gpg-keys             noarch             8.1-1.1911.0.9.el8                BaseOS                    12 k
     centos-repos                x86_64             8.1-1.1911.0.9.el8                BaseOS                    13 k
    
    Transaction Summary
    =================================================================================================================
    Install  4 Packages
    Upgrade  1 Package
    
    Total size: 132 k
    Total download size: 109 k
    Is this ok [y/N]: y
    Downloading Packages:
    (1/4): centos-gpg-keys-8.1-1.1911.0.9.el8.noarch.rpm                             264 kB/s |  12 kB     00:00    
    (2/4): centos-repos-8.1-1.1911.0.9.el8.x86_64.rpm                                288 kB/s |  13 kB     00:00    
    (3/4): centos-release-8.1-1.1911.0.9.el8.x86_64.rpm                              1.5 MB/s |  21 kB     00:00    
    (4/4): yum-utils-4.0.8-3.el8.noarch.rpm                                          236 kB/s |  64 kB     00:00    
    -----------------------------------------------------------------------------------------------------------------
    Total                                                                            128 kB/s | 109 kB     00:00     
    Running transaction check
    Transaction check succeeded.
    Running transaction test
    Transaction test succeeded.
    Running transaction
      Preparing        :                                                                                         1/1 
      Running scriptlet: centos-gpg-keys-8.1-1.1911.0.9.el8.noarch                                               1/1 
      Installing       : centos-gpg-keys-8.1-1.1911.0.9.el8.noarch                                               1/6 
      Installing       : centos-repos-8.1-1.1911.0.9.el8.x86_64                                                  2/6 
      Upgrading        : centos-release-8.1-1.1911.0.9.el8.x86_64                                                3/6 
      Installing       : remi-release-8.1-2.el8.remi.noarch                                                      4/6 
      Installing       : yum-utils-4.0.8-3.el8.noarch                                                            5/6 
      Cleanup          : centos-release-8.0-0.1905.0.9.el8.x86_64                                                6/6 
      Running scriptlet: centos-release-8.0-0.1905.0.9.el8.x86_64                                                6/6 
      Verifying        : centos-gpg-keys-8.1-1.1911.0.9.el8.noarch                                               1/6 
      Verifying        : centos-repos-8.1-1.1911.0.9.el8.x86_64                                                  2/6 
      Verifying        : yum-utils-4.0.8-3.el8.noarch                                                            3/6 
      Verifying        : remi-release-8.1-2.el8.remi.noarch                                                      4/6 
      Verifying        : centos-release-8.1-1.1911.0.9.el8.x86_64                                                5/6 
      Verifying        : centos-release-8.0-0.1905.0.9.el8.x86_64                                                6/6 
    
    Upgraded:
      centos-release-8.1-1.1911.0.9.el8.x86_64                                                                       
    
    Installed:
      yum-utils-4.0.8-3.el8.noarch                             remi-release-8.1-2.el8.remi.noarch                   
      centos-gpg-keys-8.1-1.1911.0.9.el8.noarch                centos-repos-8.1-1.1911.0.9.el8.x86_64               
    
    Complete!
    
    

    运行命令获取所有可用 PHP 版本列表

    # 输入
    dnf module list php
    
    # 输出
    Remi's Modular repository for Enterprise Linux 8 - x86_64                                                                                              7.4 kB/s | 564 kB     01:15    
    Safe Remi's RPM repository for Enterprise Linux 8 - x86_64                                                                                             4.1 kB/s | 1.5 MB     06:25    
    CentOS-8 - AppStream
    Name                               Stream                                   Profiles                                                Summary                                            
    php                                7.2 [d][e]                               common [d], devel, minimal                              PHP scripting language                             
    php                                7.3                                      common, devel, minimal                                  PHP scripting language                             
    
    Remi's Modular repository for Enterprise Linux 8 - x86_64
    Name                               Stream                                   Profiles                                                Summary                                            
    php                                remi-7.2                                 common [d], devel, minimal                              PHP scripting language                             
    php                                remi-7.3                                 common [d], devel, minimal                              PHP scripting language                             
    php                                remi-7.4                                 common [d], devel, minimal                              PHP scripting language                             
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
    
    

    当前要安装 7.4 版本,要运行两个命令

    # 输入
    # 重置 PHP 的对标目标(个人理解)
    dnf module reset php
    
    # 输出
    Last metadata expiration check: 0:07:34 ago on Wed 29 Apr 2020 10:43:54 AM CST.
    Dependencies resolved.
    =======================================================================================================================================================================================
     Package                                     Architecture                               Version                                      Repository                                   Size
    =======================================================================================================================================================================================
    Resetting modules:
     php                                                                                                                                                                                  
    
    Transaction Summary
    =======================================================================================================================================================================================
    
    Is this ok [y/N]: y
    Complete!
    
    
    # 输入
    # 将 PHP 的对标目标设置为新的目标版本(以前默认是7.2)
    dnf module enable php:remi-7.4
    
    # 输出
    Last metadata expiration check: 0:07:43 ago on Wed 29 Apr 2020 10:43:54 AM CST.
    Dependencies resolved.
    =======================================================================================================================================================================================
     Package                                     Architecture                               Version                                      Repository                                   Size
    =======================================================================================================================================================================================
    Enabling module streams:
     php                                                                                    remi-7.4                                                                                      
    
    Transaction Summary
    =======================================================================================================================================================================================
    
    Is this ok [y/N]: y
    Complete!
    
    

    安装目标版本 7.4

    安装 PHP 和常用模块

    # 输入
    dnf module install php:remi-7.4
    # 或者 dnf install php 或指定安装模块 dnf install php php-opcache php-gd php-curl php-mysqlnd
    # 输出
    挺长的
    

    检查和配置

    检查安装结果

    # 输入
    php -v
    
    # 输出
    PHP 7.4.5 (cli) (built: Apr 14 2020 12:54:33) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies
        with Zend OPcache v7.4.5, Copyright (c), by Zend Technologies
    
    

    设置 PHP-FPM 为系统开机启动

    systemctl enable php-fpm
    

    运行 PHP 和重启 Nginx

    systemctl start php-fpm
    systemctl reload nginx
    

    补充

    使用 sudo yum install php-xxx 安装指定模块,或者 dnf search php74 指定 php74 查看相关信息,dnf search php 查看与 php 相关的软件包,php --modules 查看已安装的 php 模块

  • 相关阅读:
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(1)
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(2)
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(2)
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之登录窗口调试
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(1)
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建输出验证码图片的控制器
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之调整首页显示
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之登录窗口
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(3)
  • 原文地址:https://www.cnblogs.com/cinlap/p/12801076.html
Copyright © 2011-2022 走看看