紀錄從PHP 7.2更新至8.0 on Oracle Linux 8

前一陣子在部署Wordpress的時候沒仔細看,預設是安裝php 7.2,在控制台提醒才發現裝錯版本,但就先擺著,這幾天沒甚麼事,來更新一下php版本

其實php 7.2在使用上沒有甚麼影響,只是php 8支援了更多的語法、在安全性及效能都有提升,而官方也有明確記載了作業環境建議為php 7.4以上

目前我用的是aarch64的Oracle Linux 8,搭配Apache,進行更新,基本上與RHEL 8及CentOS 8作法相同。

首先,使用你個人喜好的Terminal SSH進Linux

安裝、更新、移除package前,先update packages

$sudo yum update -y

要移除舊有的php版本前,先停止php service

$sudo systemctl stop php-fpm

接下來要移除舊有的php版本,先找出目前php相依的套件

$rpm -qa | grep php

會列出所有php 7.2相依的套件

php-opcache-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-intl-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-pear-1.10.13-1.module+el8.6.0+20568+84712317.noarch
php-mysqlnd-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-fpm-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-pecl-zip-1.19.2-1.module+el8.6.0+20568+84712317.aarch64
php-devel-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-pdo-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-process-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-gd-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-mbstring-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-cli-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-common-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64
php-xml-7.2.13-3.module+el8.6.0+20694+4397942f.aarch64

這個列表所有套件都是以php-為開頭,接著移除所有php-的套件

$sudo yum remove "php-*" -y

如果使用CentOS 8 or RHEL 8

移除完成後首先要下載php 8的rpm

文中所用rpm來自於Oracle Linux的AppStream

$sudo wget https://yum.oracle.com/repo/OracleLinux/OL8/appstream/aarch64/getPackage/php-8.0.13-3.module+el8.6.0+20694+4397942f.aarch64.rpm

執行安裝

$sudo rpm -i php-8.0.13-3.module+el8.6.0+20694+4397942f.aarch64.rpm

如果使用Oracle Linux 8

使用dnf module指令來指定安裝AppStream中的php 8,列出所有php版本

$dnf module list php
php 可供安裝版本列表

其中Stream 7.2 目前為預設安裝版本 [d] 表示為預設,我們使用enable來指定套件和版本

$dnf module reset php
$dnf module enable php:8.0

完成指定之後再看一次list是不是預設為8.0

接著就可以開始安裝php 8了

$sudo dnf install php php-opcache php-gd php-curl php-mysqlnd

完成安裝後設定SELinux,給予Apache權限

$sudo chcon -Rt httpd_sys_rw_content_t /var/www

重啟Apache

$sudo systemctl restart httpd

最後檢查安裝後版本

$php -v

這樣就完成php的更新了

php 8.0.13

或是使用phpinfo來看

收工!!

reference

How to Install PHP on CentOS 8
CentOS 7 安裝EPEL Repository 入門教學
Oracle Linux 8 (aarch64) AppStream
How to Easily Create and Use a phpinfo Page (In 3 Steps)
How to Upgrade and Downgrade the PHP Versions on CentOS 7.6

1 Comment

  1. […] 于是我上网找了半天,发现dns_get_record这个函数是php5之后肯定自带的一个函数,那肯定是php有问题了,于是这个时候我就去试了下用rpm包安装php,参考紀錄從PHP 7.2更新至8.0 on Oracle Linux 8 – Sammy Gone Wild完成了,这下可以用这个函数了。 结果宝塔没法管理通过这种方式安装的php,于是回到了原点,我这个时候恰好搜索到有人同样也是使用甲骨文云的ARM服务器安装,遇到一样的报错,虽然他是用甲骨文云搭建的Discuz,他提出的问题被宝塔论坛的工作人员拒绝回答了,说他既然用的aapanel,那就去aapanel那里问,然后我就去了aapanel,果然找到了[他的帖子](arm server, aapanel environment running discuz x3.5 error. – aaPanel – Hosting control panel. One-click LAMP/LEMP.),基于这个帖子我也解决了这个问题,虽然最终还是差了一点点,以下是解决方案。 […]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *