干海椒面拌饭 發表於 2020-4-29 11:34:00

CentOS8下安装、卸载、切换 PHP 版本

<h2 id="主题"><strong>主题</strong></h2>
<p>新购了一台 CentOS8 的云服务器,使用 <code>yum install php</code> 方式只能安装 7.2 版本的 PHP 且无 <code>mysql</code> 扩展,采取的方法是卸载已有 PHP + 重装更新版本的 PHP<br>
本文参考文档在CentOS 8上安装PHP 7.2、PHP 7.3、PHP 7.4的方法</p>
<h2 id="停止并卸载-php"><strong>停止并卸载 PHP</strong></h2>
<p>本机已存在的 PHP 是通过 yum 安装的 7.2 版本,使用命令停止它</p>
<pre><code>systemctl stop php-fpm
</code></pre>
<p>卸载它</p>
<pre><code># 输入
yum remove php

# 输出
Dependencies resolved.
=================================================================================================================
Package                   ArchitectureVersion                                       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
=================================================================================================================
Remove14 Packages

Freed space: 35 M
Is this ok : 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!

</code></pre>
<h2 id="通过-dnf-方式查看可安装的-php-版本列表"><strong>通过 DNF 方式查看可安装的 PHP 版本列表</strong></h2>
<p>首先先启用 Remi 存储库,该命令将启用EPEL存储库,参考在CentOS 8/RHEL 8上安装和启用REMI存储库的方法。</p>
<pre><code># 输入
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
=================================================================================================================
Install4 Packages
Upgrade1 Package

Total size: 132 k
Total download size: 109 k
Is this ok : 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!

</code></pre>
<p>运行命令获取所有可用 PHP 版本列表</p>
<pre><code># 输入
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                                common , 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 , devel, minimal                              PHP scripting language                           
php                              remi-7.3                                 common , devel, minimal                              PHP scripting language                           
php                              remi-7.4                                 common , devel, minimal                              PHP scripting language                           

Hint: efault, nabled, disabled, nstalled

</code></pre>
<p>当前要安装 7.4 版本,要运行两个命令</p>
<pre><code># 输入
# 重置 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
Complete!

</code></pre>
<pre><code># 输入
# 将 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
Complete!

</code></pre>
<h2 id="安装目标版本-74"><strong>安装目标版本 7.4</strong></h2>
<p>安装 PHP 和常用模块</p>
<pre><code># 输入
dnf module install php:remi-7.4
# 或者 dnf install php 或指定安装模块 dnf install php php-opcache php-gd php-curl php-mysqlnd
# 输出
挺长的
</code></pre>
<h2 id="检查和配置"><strong>检查和配置</strong></h2>
<p>检查安装结果</p>
<pre><code># 输入
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

</code></pre>
<p>设置 PHP-FPM 为系统开机启动</p>
<pre><code>systemctl enable php-fpm
</code></pre>
<p>运行 PHP 和重启 Nginx</p>
<pre><code>systemctl start php-fpm
systemctl reload nginx
</code></pre>
<h1 id="补充">补充</h1>
<p>使用 <code>sudo yum install php-xxx</code> 安装指定模块,或者 <code>dnf search php74</code> 指定 php74 查看相关信息,<code>dnf search php</code> 查看与 php 相关的软件包,<code>php --modules</code> 查看已安装的 php 模块</p>


</div>
<div id="MySignature" role="contentinfo">
    <p>不重要的其实最重要</p>
<p>作者 - 试试手气</p>
<p>转载请注明作者和出处 - https://www.cnblogs.com/cinlap/p/12801076.html</p><br><br>
来源:https://www.cnblogs.com/cinlap/p/12801076.html
頁: [1]
查看完整版本: CentOS8下安装、卸载、切换 PHP 版本