CentOS安装PHP7的正确方法-PHP7

资源魔 40 0

CentOS上的PHP版本都非常陈旧,餍足没有了一些框架对PHP版本的要求。于是,呈现了许多第三方软件库,如EPEL、RPM Fusion、Remi等,这些库提供了新版的PHP。让咱们的零碎能与时俱进。

然而,第三方软件库有几个缺陷:第一,他们提供的软件不通过CentOS民间测试,正在装置软件的同时,可能会交换掉零碎的一些外围文件,造成零碎没有稳固。第二,第三方库装置的软件可能没有保障兼容性,兴许对零碎升个级就会招致某个软件没法应用。

以是本篇保举用SCL(Software Collections)软件库装置高版本的PHP。SCL属于CentOS民间的软件库,通过充沛测试,装置软件时没有会交换零碎的外围文件,保障了零碎的稳固性。

装置SCL很简略,只要一条饬令就能够了:

[root@localhost]# yum install centos-release-scl-rh

而后就能正在yum中搜到新版的PHP了:

[root@localhost]# 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- 前缀。

接上去,装置PHP7.0:

[root@localhost]# yum install rh-php70

装置完之后,PHP实际会装置正在/opt/rh目次下。

此时假如你运转php饬令,零碎仍然会提醒你co妹妹and not found。这是由于,SCL的格调就是把软件对零碎的影响缩小到最小,乃至装置完PHP,php饬令都没有会被增加到 $PATH 变量中,以是你没法间接执行软件中的饬令的。需求经过 scl enable 饬令显示执行:

先看看SCL装置了哪些软件:

[root@localhost]# scl -lrh-php70

能够看到咱们正在零碎装置了一个rh-php70,先启用它并执行饬令:

[root@localhost]# scl enable rh-php70 "php -v"PHP 7.0.10 (cli) (built: Nov  3 2016 08:06:03) ( NTS )Copyright (c) 1997-2016 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

饬令胜利执行了。要是每一一条饬令都要这么执行,太费事了!没有要紧,你能够不必每一次执行一条饬令,而是间接执行 bash 饬令,那末新开的shell就能主动辨认php了:

[root@localhost]# scl enable rh-php70 bash[root@localhost]# php -vPHP 7.0.10 (cli) (built: Nov  3 2016 08:06:03) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

[root@localhost ~]# php -m[PHP Modules]
bz2
calendar...

SCL以 scl enable 形式治理软件,尽管正在应用上添加了一点点的费事,但这相对地保障了零碎稳固性。并且这么做另有一个益处:就是零碎上能够多个PHP版本共存而相互没有抵触。不便你测试代码或许框架,正在各个版本PHP上的兼容性。

总之,要做一个谨严的运维,本篇仍是非常保举用SCL治理你零碎上的软件。

CentOS上的PHP版本都非常陈旧,餍足没有了一些框架对PHP版本的要求。于是,呈现了许多第三方软件库,如EPEL、RPM Fusion、Remi等,这些库提供了新版的PHP。让咱们的零碎能与时俱进。

然而,第三方软件库有几个缺陷:第一,他们提供的软件不通过CentOS民间测试,正在装置软件的同时,可能会交换掉零碎的一些外围文件,造成零碎没有稳固。第二,第三方库装置的软件可能没有保障兼容性,兴许对零碎升个级就会招致某个软件没法应用。

以是本篇保举用SCL(Software Collections)软件库装置高版本的PHP。SCL属于CentOS民间的软件库,通过充沛测试,装置软件时没有会交换零碎的外围文件,保障了零碎的稳固性。

装置SCL很简略,只要一条饬令就能够了:

[root@localhost]# yum install centos-release-scl-rh

而后就能正在yum中搜到新版的PHP了:

[root@localhost]# 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- 前缀。

接上去,装置PHP7.0:

[root@localhost]# yum install rh-php70

装置完之后,PHP实际会装置正在/opt/rh目次下。

此时假如你运转php饬令,零碎仍然会提醒你co妹妹and not found。这是由于,SCL的格调就是把软件对零碎的影响缩小到最小,乃至装置完PHP,php饬令都没有会被增加到 $PATH 变量中,以是你没法间接执行软件中的饬令的。需求经过 scl enable 饬令显示执行:

先看看SCL装置了哪些软件:

[root@localhost]# scl -lrh-php70

能够看到咱们正在零碎装置了一个rh-php70,先启用它并执行饬令:

[root@localhost]# scl enable rh-php70 "php -v"PHP 7.0.10 (cli) (built: Nov  3 2016 08:06:03) ( NTS )Copyright (c) 1997-2016 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

饬令胜利执行了。要是每一一条饬令都要这么执行,太费事了!没有要紧,你能够不必每一次执行一条饬令,而是间接执行 bash 饬令,那末新开的shell就能主动辨认php了:

[root@localhost]# scl enable rh-php70 bash[root@localhost]# php -vPHP 7.0.10 (cli) (built: Nov  3 2016 08:06:03) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

[root@localhost ~]# php -m[PHP Modules]
bz2
calendar...

SCL以 scl enable 形式治理软件,尽管正在应用上添加了一点点的费事,但这相对地保障了零碎稳固性。并且这么做另有一个益处:就是零碎上能够多个PHP版本共存而相互没有抵触。不便你测试代码或许框架,正在各个版本PHP上的兼容性。

总之,要做一个谨严的运维,本篇仍是非常保举用SCL治理你零碎上的软件。

保举教程:《php视频教程》

以上就是CentOS装置PHP7的正确办法的具体内容,更多请存眷资源魔其它相干文章!

标签: Centos PHP7 php7开发教程 php7开发资料 php7开发自学

抱歉,评论功能暂时关闭!