最後更新日期:2019 年 08 月 17 日

環境說明

要 CentOS 7 上安裝最新版本的 PHP,必需要透過 Remi 這個第三方套件庫來安裝,如果對其他的套件庫有興趣,可以到 CentOS 官網的 Repository連結 來看一下。
除此之外,EPEL (Extra Packages for Enterprise Linux) 也是我常用的套件庫。

步驟

一、安裝 Remi 的套件庫

# 匯入 remi 的 GPG-KEY 來驗證套件是由 remi 所發行的
rpm --import https://rpms.remirepo.net/RPM-GPG-KEY-remi

# 安裝 Remi 的套件資訊
rpm -Uvh http://mirrors.mediatemple.net/remi/enterprise/remi-release-7.rpm
# 另一個安裝 Remi 的套件資訊的方法
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

二、設定 remi repo 的行為

方法1:使用 yum-utils

# 安裝 yum-utils
yum install -y yum-utils
# 將 remi-php73 這個 repo 設為可用
yum-config-manager --enable remi-php73
# 將其他舊版本的 repo 設為不可用 ,以避免安裝到舊版 php
yum-config-manager --disable remi-php55 remi-php56 remi-php70 remi-php71 remi-php72 remi-test

方法2:修改 remi 的設定檔

修改 /etc/yum.repos.d/remi.repo 這個設定檔,設定各個版本相對應的 enabled 值。

[remi]
enabled=1
[remi-php73]
enabled=1
[remi-php55]
enabled=0
[remi-php56]
enabled=0
[remi-php70]
enabled=0
[remi-php71]
enabled=0
[remi-php72]
enabled=0
[remi-test]
enabled=0

三、透過 yum 安裝 php 及其附屬套件

# 先停止 httpd 服務
systemctl stop httpd.service

# 移除舊版的 php
yum remove -y php
yum remove -y php-*
yum remove -y php72*

# 安裝 php 及其常用的附屬套件
yum install -y php73-php  php73-php-fpm php73-php-cli php73-php-common php73-php-pear php73-php-opcache php73- php73-php-bcmath php73-php-mysqlnd php73-php-gd php73-php-intl php73-php-xml php73-php-xmlrpc php73-php-pdo php73-php-process php73-php-mbstring php73-php-snmp php73-php-imapd  php73-php-pecl-zip  php73-unit-php  php73-php-pecl-mcrypt

四、建立新版本 php 的程式連結

cd /usr/bin
ln -fs /usr/bin/php73 /usr/bin/php
php -v

五、修改 php.ini 設定檔

我們安裝的 php 7.3 ,設定檔不是放在預設的 /etc/php.ini 中,所以我們得透過以下指令找到設定檔位置。

php --ini | grep "Loaded Configuration File" 

在我的主機上,php.ini 的位置是 /etc/opt/remi/php73/php.ini

記錄一下我會通常會更改的設定值:

max_input_vars = 10000
max_execution_time = 300
max_input_time = 120
max_file_uploads = 100
upload_max_filesize = 100M
post_max_size = 100M

也可以把想要變更的設定值寫成 bash shell script,透過 sed 指令來變更,例如:
把 max_input_vars 改為 10000
把 max_execution_time 改為 300

sed -i 's/; max_input_vars =.*/max_input_vars = 10000/g' /etc/opt/remi/php73/php.ini 
sed -i 's/max_execution_time =.*/max_execution_time = 300/g' /etc/opt/remi/php73/php.ini

六、重新啟動 httpd 服務

systemctl start httpd.service

參考資料

第二十二章、軟體安裝 RPM, SRPM 與 YUM

[CentOS]使用remi的repo,安裝/更新PHP 7.3

CentOS 7 安裝 repository

GPG和RPM-GPG-KEY詳解

Last modified: 2019-08-17

Author

Comments

Write a Reply or Comment

Your email address will not be published.