CentOS 配置 PHP 環境

KKKKUNG發表於2019-06-21

CentOS 安裝軟體的正確方式

CentOS上的PHP版本都十分古老,滿足不了一些框架對PHP版本的要求。於是,出現了許多第三方軟體庫,如EPEL、RPM Fusion、Remi等,這些庫提供了新版的PHP。讓我們的系統能與時俱進。

推薦用SCL(Software Collections)軟體庫安裝高版本的PHP。SCL屬於CentOS官方的軟體庫,經過充分測試,安裝軟體時不會替換系統的核心檔案,保證了系統的穩定性。

安裝SCL

# yum install centos-release-scl-rh

然後就能在yum中搜到新版的PHP了:

# yum search php
....
php54-runtime.x86_64
php55-runtime.x86_64
rh-php56-runtime.x86_64
rh-php70-runtime.x86_64
....

rh- 字首是RedHat的意思,告訴你這是官方提供的PHP而不是第三方庫提供的。作者猜測這個字首規範是2015年左右制定的,PHP5.4 & 5.5是在這之前釋出的,為了保證你的程式的相容性(比如你的某些程式裡已經寫了yum install php55,加個字首程式就掛了),就沒帶上rh- 字首。

在 RHEL,啟用 RHSCL 倉庫給你的系統

sudo yum-config-manager --enable rhel-server-rhscl-7-rpms

安裝php72

# yum install rh-php72

安裝完成之後PHP會安裝在 /opt/rh 目錄下

這時候執行 php 命令系統會提示 command not found,這是因為 SCL 的風格就是把軟體對系統的影響減少到最小,甚至完成安裝PHP,PHP命令都不會被新增到 $PATH 變數中,所以你沒法直接執行軟體中的命令。需要通過 scl enable 命令顯式執行

先看看 SCL 安裝了哪些軟體:

# scl -l
rh-php72

可以看到安裝完成的紅帽php72(rh-php72),先啟用並執行命令:

scl enable rh-php72 "php -v"
PHP 7.2.10 (cli) (built: Nov 16 2018 15:24:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

命令成功執行了,但是要每一天命令都這樣去 scl enable 一下實在是太麻煩。這時只需要把命令繫結至 bash 即可

# scl enable rh-php72 bash
# php -v

PHP 7.2.10 (cli) (built: Nov 16 2018 15:24:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

# php -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
openssl
....

[Zend Modules]

參考文獻:https://blog.csdn.net/supergao222/article/...

接下來應該保證普通應用能正常使用,接下來的幾個命令可能用得上:

# service rh-php72-php-fpm start
# php my-app.php
# sudo yum install rh-php72-php-devel
# sudo yum install libxml2-devel
# sudo pear install Cache_Lite
# sudo pecl install xmldiff

檢視 PHP 可以新增的模組

sudo yum list rh-php72\*

建議安裝模組

# sudo yum install rh-php72-php-devel
# sudo yum install rh-php72-php-mbstring
# sudo yum install rh-php72-php-mysqlnd  (包含了PDO)

安裝 MySQL

採用上面的方法安裝MySQL

可以搜尋庫裡有哪些版本的 mysql

# yum search mysql

這裡安裝的是MySQL5.7

# sudo yum install rh-mysql57

將 mysql 命令繫結至 bash

# scl enable rh-mysql57 bash

啟動 MySQL 服務

# service rh-mysql56-mysqld start

現在你能登入了,但是你會發現登入不進去,因為你沒有使用者和密碼,如果你遇到這種情況,請參照另外一篇博文

安裝 Apache

### 安裝
# sudo yum install httpd24
### 命令列啟用
# scl enable httpd24 bash

接下來應該保證普通應用能正常使用,接下來的幾個命令可能用得上:

# service httpd24-httpd start
# httpd -h

檢視 Apache 可以新增的模組

# sudo yum list httpd24\*

安裝 Nginx

搜尋庫裡有的nginx版本,下載想要的版本

# yum search nginx

安裝 nginx 1.14 版

# sudo yum install rh-nginx114

繫結至 bash

# scl enable rh-nginx114 bash

接下來應該保證普通應用能正常使用,接下來的幾個命令可能用得上:

# nginx -v
# sudo systemctl start rh-nginx114-nginx

檢視 Nginx可以新增的模組

# sudo yum list rh-nginx114\*

安裝 Redis

安裝

# sudo yum install rh-redis32

繫結至 bash

# scl enable rh-redis32 bash

啟用服務

# sudo service rh-redis32-redis start

本作品採用《CC 協議》,轉載必須註明作者和本文連結

KKKKUNG

相關文章