Centos 6.9下安装php7环境

php是不是最好的语言这里不做讨论,纠结请出去 门在那┏ (゜ω゜)=☞

– 关于PHP7

2015年12月初PHP7正式版发布,迎来自2004年以来最大的版本更新。PHP7最显著的变化就是性能的极大提升,已接近Facebook开发的PHP执行引擎HHVM。在WordPress基准性能测试中,速度比5.6版本要快2~3倍,大大减少了内存占用。PHP7在语言上也有一些变化,比如添加返回类型声明、增加了一些新的保留关键字等。在安全方面,去除了PHP安全模式,添加魔术引号等。不仅如此,新版还支持64位,而且包含最新版Zend引擎。
更多细节请翻阅php文档吧这里不多啰嗦。
下载PHP版本

– 准备工作

1、 检查Centos系统版本

# vi /etc/centos-release
或者
# vi /etc/redhat-release

CentOS release 6.9 (Final)

ps:不同的版本命令有所差异这里主要介绍6.x版本

2、 检查PHP版本

#rpm -qa |grep php
或者
#php -v

3、 检查Apache版本

#rpm -qa |grep httpd
或者
# httpd -v

Server version: Apache/2.2.15 (Unix)
Server built:   Mar 22 2017 06:52:55

4、 检查MySQL版本

#rpm -qa |grep mysql 
或者
#mysql -v
或者
#mysql --help | grep Distrib

mysql  Ver 14.14 Distrib 5.6.36, for Linux (x86_64) using  EditLine wrapper

5、 删除之前的 php 版本

#yum remove php* php-common

已加载插件:fastestmirror, security
设置移除进程
解决依赖关系
--> 执行事务检查
---> Package php-cli.x86_64 0:5.3.3-49.el6 will be 删除
---> Package php-common.x86_64 0:5.3.3-49.el6 will be 删除
---> Package php-mbstring.x86_64 0:5.3.3-49.el6 will be 删除
---> Package php-pdo.x86_64 0:5.3.3-49.el6 will be 删除
---> Package php-pear.noarch 1:1.9.4-5.el6 will be 删除
---> Package php-process.x86_64 0:5.3.3-49.el6 will be 删除
---> Package php-xml.x86_64 0:5.3.3-49.el6 will be 删除
--> 完成依赖关系计算

依赖关系解决

================================================================================
 软件包               架构           版本                   仓库           大小
================================================================================
正在删除:
 php-cli              x86_64         5.3.3-49.el6           @base         6.2 M
 php-common           x86_64         5.3.3-49.el6           @base         2.9 M
 php-mbstring         x86_64         5.3.3-49.el6           @base         2.1 M
 php-pdo              x86_64         5.3.3-49.el6           @base         168 k
 php-pear             noarch         1:1.9.4-5.el6          @base         2.2 M
 php-process          x86_64         5.3.3-49.el6           @base          65 k
 php-xml              x86_64         5.3.3-49.el6           @base         307 k

事务概要
================================================================================
Remove        7 Package(s)

Installed size: 14 M
确定吗?[y/N]:y
下载软件包:
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
  正在删除   : 1:php-pear-1.9.4-5.el6.noarch                                1/7
  正在删除   : php-cli-5.3.3-49.el6.x86_64                                  2/7
  正在删除   : php-process-5.3.3-49.el6.x86_64                              3/7
  正在删除   : php-xml-5.3.3-49.el6.x86_64                                  4/7
  正在删除   : php-pdo-5.3.3-49.el6.x86_64                                  5/7
  正在删除   : php-mbstring-5.3.3-49.el6.x86_64                             6/7
  正在删除   : php-common-5.3.3-49.el6.x86_64                               7/7
warning: /etc/php.ini saved as /etc/php.ini.rpmsave
  Verifying  : php-mbstring-5.3.3-49.el6.x86_64                             1/7
  Verifying  : php-pdo-5.3.3-49.el6.x86_64                                  2/7
  Verifying  : php-xml-5.3.3-49.el6.x86_64                                  3/7
  Verifying  : php-cli-5.3.3-49.el6.x86_64                                  4/7
  Verifying  : 1:php-pear-1.9.4-5.el6.noarch                                5/7
  Verifying  : php-process-5.3.3-49.el6.x86_64                              6/7
  Verifying  : php-common-5.3.3-49.el6.x86_64                               7/7

删除:
  php-cli.x86_64 0:5.3.3-49.el6           php-common.x86_64 0:5.3.3-49.el6
  php-mbstring.x86_64 0:5.3.3-49.el6      php-pdo.x86_64 0:5.3.3-49.el6
  php-pear.noarch 1:1.9.4-5.el6           php-process.x86_64 0:5.3.3-49.el6
  php-xml.x86_64 0:5.3.3-49.el6

完毕!

ps:机器上之前有5.3版本的php环境现在需要卸载掉

– yum方式安装工作

1、rpm 安装 Php7 相应的 yum源

#rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

2、查看可安装的php版本

 #yum list php7*

已加载插件:fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
 * webtatic: uk.repo.webtatic.com
可安装的软件包
php70w.x86_64                                 7.0.27-1.w6               webtatic
php70w-bcmath.x86_64                          7.0.27-1.w6               webtatic
php70w-cli.x86_64                             7.0.27-1.w6               webtatic
php70w-common.x86_64                          7.0.27-1.w6               webtatic
php70w-dba.x86_64                             7.0.27-1.w6               webtatic
php70w-devel.x86_64                           7.0.27-1.w6               webtatic
php70w-embedded.x86_64                        7.0.27-1.w6               webtatic
php70w-enchant.x86_64                         7.0.27-1.w6               webtatic
php70w-fpm.x86_64                             7.0.27-1.w6               webtatic
php70w-gd.x86_64                              7.0.27-1.w6               webtatic
php70w-imap.x86_64                            7.0.27-1.w6               webtatic
php70w-interbase.x86_64                       7.0.27-1.w6               webtatic
php70w-intl.x86_64                            7.0.27-1.w6               webtatic
php70w-ldap.x86_64                            7.0.27-1.w6               webtatic
php70w-mbstring.x86_64                        7.0.27-1.w6               webtatic
php70w-mcrypt.x86_64                          7.0.27-1.w6               webtatic
php70w-mysql.x86_64                           7.0.27-1.w6               webtatic
php70w-mysqlnd.x86_64                         7.0.27-1.w6               webtatic
php70w-odbc.x86_64                            7.0.27-1.w6               webtatic
php70w-opcache.x86_64                         7.0.27-1.w6               webtatic
php70w-pdo.x86_64                             7.0.27-1.w6               webtatic
php70w-pdo_dblib.x86_64                       7.0.27-1.w6               webtatic
php70w-pear.noarch                            1:1.10.4-1.w6             webtatic
php70w-pecl-apcu.x86_64                       5.1.9-1.w6                webtatic
php70w-pecl-apcu-devel.x86_64                 5.1.9-1.w6                webtatic
php70w-pecl-geoip.x86_64                      1.1.1-1.w6                webtatic
php70w-pecl-igbinary.x86_64                   2.0.5-1.w6                webtatic
php70w-pecl-igbinary-devel.x86_64             2.0.5-1.w6                webtatic
php70w-pecl-imagick.x86_64                    3.4.3-1.w6                webtatic
php70w-pecl-imagick-devel.x86_64              3.4.3-1.w6                webtatic
php70w-pecl-memcached.x86_64                  3.0.4-1.w6                webtatic
php70w-pecl-mongodb.x86_64                    1.3.3-1.w6                webtatic
php70w-pecl-redis.x86_64                      3.1.6-1.w6                webtatic
php70w-pecl-xdebug.x86_64                     2.6.0-1.w6                webtatic
php70w-pgsql.x86_64                           7.0.27-1.w6               webtatic
php70w-phpdbg.x86_64                          7.0.27-1.w6               webtatic
php70w-process.x86_64                         7.0.27-1.w6               webtatic
php70w-pspell.x86_64                          7.0.27-1.w6               webtatic
php70w-recode.x86_64                          7.0.27-1.w6               webtatic
php70w-snmp.x86_64                            7.0.27-1.w6               webtatic
php70w-soap.x86_64                            7.0.27-1.w6               webtatic
php70w-tidy.x86_64                            7.0.27-1.w6               webtatic
php70w-xml.x86_64                             7.0.27-1.w6               webtatic
php70w-xmlrpc.x86_64                          7.0.27-1.w6               webtatic
php71w-bcmath.x86_64                          7.1.14-1.w6               webtatic
php71w-cli.x86_64                             7.1.14-1.w6               webtatic
php71w-common.x86_64                          7.1.14-1.w6               webtatic
php71w-dba.x86_64                             7.1.14-1.w6               webtatic
php71w-devel.x86_64                           7.1.14-1.w6               webtatic
php71w-embedded.x86_64                        7.1.14-1.w6               webtatic
php71w-enchant.x86_64                         7.1.14-1.w6               webtatic
php71w-fpm.x86_64                             7.1.14-1.w6               webtatic
php71w-gd.x86_64                              7.1.14-1.w6               webtatic
php71w-imap.x86_64                            7.1.14-1.w6               webtatic
php71w-interbase.x86_64                       7.1.14-1.w6               webtatic
php71w-intl.x86_64                            7.1.14-1.w6               webtatic
php71w-ldap.x86_64                            7.1.14-1.w6               webtatic
php71w-mbstring.x86_64                        7.1.14-1.w6               webtatic
php71w-mcrypt.x86_64                          7.1.14-1.w6               webtatic
php71w-mysql.x86_64                           7.1.14-1.w6               webtatic
php71w-mysqlnd.x86_64                         7.1.14-1.w6               webtatic
php71w-odbc.x86_64                            7.1.14-1.w6               webtatic
php71w-opcache.x86_64                         7.1.14-1.w6               webtatic
php71w-pdo.x86_64                             7.1.14-1.w6               webtatic
php71w-pdo_dblib.x86_64                       7.1.14-1.w6               webtatic
php71w-pear.noarch                            1:1.10.4-1.w6             webtatic
php71w-pecl-apcu.x86_64                       5.1.9-1.w6                webtatic
php71w-pecl-apcu-devel.x86_64                 5.1.9-1.w6                webtatic
php71w-pecl-geoip.x86_64                      1.1.1-1.w6                webtatic
php71w-pecl-igbinary.x86_64                   2.0.5-1.w6                webtatic
php71w-pecl-igbinary-devel.x86_64             2.0.5-1.w6                webtatic
php71w-pecl-imagick.x86_64                    3.4.3-1.w6                webtatic
php71w-pecl-imagick-devel.x86_64              3.4.3-1.w6                webtatic
php71w-pecl-memcached.x86_64                  3.0.4-1.w6                webtatic
php71w-pecl-mongodb.x86_64                    1.3.3-1.w6                webtatic
php71w-pecl-redis.x86_64                      3.1.6-1.w6                webtatic
php71w-pecl-xdebug.x86_64                     2.6.0-1.w6                webtatic
php71w-pgsql.x86_64                           7.1.14-1.w6               webtatic
php71w-phpdbg.x86_64                          7.1.14-1.w6               webtatic
php71w-process.x86_64                         7.1.14-1.w6               webtatic
php71w-pspell.x86_64                          7.1.14-1.w6               webtatic
php71w-recode.x86_64                          7.1.14-1.w6               webtatic
php71w-snmp.x86_64                            7.1.14-1.w6               webtatic
php71w-soap.x86_64                            7.1.14-1.w6               webtatic
php71w-tidy.x86_64                            7.1.14-1.w6               webtatic
php71w-xml.x86_64                             7.1.14-1.w6               webtatic
php71w-xmlrpc.x86_64                          7.1.14-1.w6               webtatic

这里选择 php70w.x86_64 来进行安装

#yum -y install php70w.x86_64

已加载插件:fastestmirror, security
设置安装进程
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * epel: mirrors.sohu.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
 * webtatic: us-east.repo.webtatic.com
解决依赖关系
--> 执行事务检查
---> Package php70w.x86_64 0:7.0.27-1.w6 will be 安装
--> 处理依赖关系 php70w-common(x86-64) = 7.0.27-1.w6,它被软件包 php70w-7.0.27-1.w6.x86_64 需要
--> 处理依赖关系 php70w-cli(x86-64) = 7.0.27-1.w6,它被软件包 php70w-7.0.27-1.w6.x86_64 需要
--> 处理依赖关系 php70w-cli = 7.0.27-1.w6,它被软件包 php70w-7.0.27-1.w6.x86_64 需要
--> 执行事务检查
---> Package php70w-cli.x86_64 0:7.0.27-1.w6 will be 安装
---> Package php70w-common.x86_64 0:7.0.27-1.w6 will be 安装
--> 完成依赖关系计算

依赖关系解决

================================================================================
 软件包               架构          版本                  仓库             大小
================================================================================
正在安装:
 php70w               x86_64        7.0.27-1.w6           webtatic        2.7 M
为依赖而安装:
 php70w-cli           x86_64        7.0.27-1.w6           webtatic        2.6 M
 php70w-common        x86_64        7.0.27-1.w6           webtatic        1.2 M

事务概要
================================================================================
Install       3 Package(s)

总下载量:6.5 M
Installed size: 25 M
下载软件包:
(1/3): php70w-7.0.27-1.w6.x86_64.rpm                     | 2.7 MB     00:03
(2/3): php70w-cli-7.0.27-1.w6.x86_64.rpm                 | 2.6 MB     00:02
(3/3): php70w-common-7.0.27-1.w6.x86_64.rpm              | 1.2 MB     00:01
--------------------------------------------------------------------------------
总计                                            718 kB/s | 6.5 MB     00:09
warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID cf4c4ff9: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-webtatic-el6
Importing GPG key 0xCF4C4FF9:
 Userid : Webtatic EL6 <el6@webtatic.com>
 Package: webtatic-release-6-9.noarch (installed)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-webtatic-el6
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
Warning: RPMDB altered outside of yum.
  正在安装   : php70w-common-7.0.27-1.w6.x86_64                             1/3
  正在安装   : php70w-cli-7.0.27-1.w6.x86_64                                2/3
  正在安装   : php70w-7.0.27-1.w6.x86_64                                    3/3
  Verifying  : php70w-cli-7.0.27-1.w6.x86_64                                1/3
  Verifying  : php70w-common-7.0.27-1.w6.x86_64                             2/3
  Verifying  : php70w-7.0.27-1.w6.x86_64                                    3/3

已安装:
  php70w.x86_64 0:7.0.27-1.w6

作为依赖被安装:
  php70w-cli.x86_64 0:7.0.27-1.w6       php70w-common.x86_64 0:7.0.27-1.w6

完毕!

安装 php70w-mysql.x86_64 php-mysql扩展

#yum install php70w-mysql

ps:这里遇到了点问题正在处理

安装mbstring扩展

#yum install php70w-mbstring

已加载插件:fastestmirror, security
设置安装进程
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * epel: mirrors.sohu.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
 * webtatic: us-east.repo.webtatic.com
解决依赖关系
--> 执行事务检查
---> Package php70w-mbstring.x86_64 0:7.0.27-1.w6 will be 安装
--> 完成依赖关系计算

依赖关系解决

================================================================================
 软件包                 架构          版本                仓库             大小
================================================================================
正在安装:
 php70w-mbstring        x86_64        7.0.27-1.w6         webtatic        949 k

事务概要
================================================================================
Install       1 Package(s)

总下载量:949 k
Installed size: 2.7 M
确定吗?[y/N]:y
下载软件包:
php70w-mbstring-7.0.27-1.w6.x86_64.rpm                   | 949 kB     00:09
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
  正在安装   : php70w-mbstring-7.0.27-1.w6.x86_64                           1/1
  Verifying  : php70w-mbstring-7.0.27-1.w6.x86_64                           1/1

已安装:
  php70w-mbstring.x86_64 0:7.0.27-1.w6

完毕!

– 源码方式安装工作

1、下载源码

去官网下载镜像文件: php下载地址

当前最新版本是php-7.2.3我们这里选择了 php-7.2.3.tar.gz
我们选择了中国的地址 http://cn2.php.net/get/php-7.2.3.tar.gz/from/this/mirror
下面开始执行命令

#cd /usr/local/src   

所有的软件源码下载放到这里

#wget http://cn2.php.net/get/php-7.2.3.tar.gz
# tar -xzvf php-7.2.3.tar.gz
#cd php-7.2.3

2、编译前配置

下面开始编译配置编译之后文件放在了 /usr/local/php7.2.3目录中

 #./configure --prefix=/usr/local/php7.2.3 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip

我执行过程中遇到了一些问题 缺少一些模块

xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

#yum -y install libxslt libxslt-devel

执行上面的指令后接着重新进行编译配置

看到下面的提示说明配置完成了

Thank you for using PHP.

config.status: creating php7.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/www.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
configure: WARNING: unrecognized options: --enable-gd-native-ttf

最后这里有一个警告

configure: WARNING: unrecognized options: –enable-gd-native-ttf
表示php7.2不支持这个选项,
--enable-gd-native-ttf编译选项删除就可以了。

3、进行编译

#make ZEND_EXTRA_LIBS=' -liconv'
#make install

编译时间有点长

4、进行配置

#cp php.ini-production /usr/local/php7/etc/php.ini
#cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
#cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
#cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm7

5、配置开机启动

#cd /etc/init.d 
#vim php7-fpm

文件内容如下

#!/bin/sh  
# chkconfig:   2345 15 95

# description:  PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation \

# with some additional features useful for sites of any size, especially busier sites.
# DateTime: 2016-09-20

# Source function library.  
. /etc/rc.d/init.d/functions  

# Source networking configuration.  
. /etc/sysconfig/network  

# Check that networking is up.  
[ "$NETWORKING" = "no" ] && exit 0  

phpfpm="/usr/local/php/sbin/php-fpm"  
prog=$(basename ${phpfpm})  

lockfile=/var/lock/subsys/phpfpm

start() {  
    [ -x ${phpfpm} ] || exit 5  
    echo -n $"Starting $prog: "  
    daemon ${phpfpm}
    retval=$?  
    echo  
    [ $retval -eq 0 ] && touch $lockfile  
    return $retval  
}  

stop() {  
    echo -n $"Stopping $prog: "  
    killproc $prog -QUIT  
    retval=$?  
    echo  
    [ $retval -eq 0 ] && rm -f $lockfile  
    return $retval  
}  

restart() {  
    configtest || return $?  
    stop  
    start  
}  

reload() {  
    configtest || return $?  
    echo -n $"Reloading $prog: "  
    killproc ${phpfpm} -HUP  
    RETVAL=$?  
    echo  
}  

force_reload() {  
    restart  
}  

configtest() {  
  ${phpfpm} -t
}  

rh_status() {  
    status $prog  
}  

rh_status_q() {  
    rh_status >/dev/null 2>&1  
}  

case "$1" in  
    start)  
        rh_status_q && exit 0  
        $1  
        ;;  
    stop)  
        rh_status_q || exit 0  
        $1  
        ;;  
    restart|configtest)  
        $1  
        ;;  
    reload)  
        rh_status_q || exit 7  
        $1  
        ;;  
    status)  
        rh_status  
        ;;  
    *)  
        echo $"Usage: $0 {start|stop|status|restart|reload|configtest}"  
        exit 2  
esac

6、配置权限

#chmod a+x /etc/init.d/php7-fpm
#chkconfig --add php7-fpm
#chkconfig php7-fpm on

7、启动停止服务

#service php7-fpm start 

#service php7-fpm stop

新建 /var/www/html/php目录
目录中新建index.php

<?php

    // 顺便可以看一下php的扩展全不全
    phpinfo();
?>

配置nginx

      server {
        listen       8011;
        server_name  localhost ;  #域名可以有多个,用空格隔开

        access_log  logs/access.log  main;
              root   /var/www/html/php;
              index index.php index.html index.htm;

        # 这里新加的
        # PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI协议默认配置.
        # Fastcgi服务器和程序(PHP,Python)沟通的协议.
        location ~ \.php$ {
            # 设置监听端口
            fastcgi_pass   127.0.0.1:9000;
            # 设置nginx的默认首页文件(上面已经设置过了,可以删除)
            fastcgi_index  index.php;
            # 设置脚本文件请求的路径
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            # 引入fastcgi的配置文件
            include        fastcgi_params;
        }        
    }

然后重新加载nginx

测试是否能返回php网页信息

curl http://localhost:8011 

配置php就这样了

老版本安装请参考PHP-5.3.29编译安装

    原文作者:IBegins
    原文地址: https://www.jianshu.com/p/6281aa0e99d0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞