二维码

Centos/ Redhead下PHP5升级PHP7

1632 人阅读 | 时间:2018年12月07日 15:29
  1. 1、首先下载PHP7安装包,使用wget http://am1.php.net/distributions/php-7.2.0.tar.bz2,或者直接访问下载,然后ftp到linux服务器

  2. 2、解压压缩包,tar –xjf php-7.0.2.tar.bz2


Centos/ Redhead下PHP5升级PHP7

  1. 3、进入文件夹,cd php-7.0.2 ,安装必要的依赖工具,(以下代码为一行,请复制到记事本将回车去掉即可)

  2. yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel
  3. zlib zlib-devel curl curl-devel openssl openssl-devel1

Centos/ Redhead下PHP5升级PHP7

这里主要是升级,一般在php5都安装了,所以这一步可以省略 
4. 安装几个依赖(必须安装,否则后面无法生成apache所用的libphp7.so文件)

yum -y install perl
yum –y install perl-devel
yum -y install httpd-devel
find /usr -name apxs              /*取得所用路径,后面编译时用到。

Centos/ Redhead下PHP5升级PHP7

5.准备编译工作(以下代码为一行,请复制到记事本将回车去掉即可)

./configure --prefix=/usr/local/php7 --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-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 --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session 
--enable-xml --with-apxs2=/usr/bin/apxs1

Centos/ Redhead下PHP5升级PHP7

**注意:其中的 –enable-gd-native-ttf 可以不安装,处理图形用的,如果有需求可以以后以扩展形式装 
–with-apxs2=/usr/bin/apxs 后面的路径改为第4步得到的路径 
–prefix=/usr/local/php7 单独安装在php7的文件夹,避免和php5冲突** 
6.编译 
make 

Centos/ Redhead下PHP5升级PHP7

php 的编译时需要依赖pear package ,目前的问题错误"PEAR package PHP_Archive not installed",已经明显报出这个问题。 
因此编译使用参数 --without-pear   将pear 屏蔽掉编译安装后,再进行安装;同时因为phar 属于pear的一个库 ,所以不将phar关闭掉,同时还会报这个错误, 
同时需要使用 --disable-phar   编译参数. 

./configure --without-pear  --disable-phar
make
make install

成功编译安装完成后,再安装pear

wget  http://pear.php.net/go-pear.phar /usr/local/bin/php go-pear.phar


这一步容易出现很多问题, 
如果遇到譬如:undefine 。。。。 
/ext/cli./php … 
Openssl 
等等错误,而且确定安装了相关的模块,则一般清除之前的编译,删除相关文件后重新编译

make clean
rm –rf /usr/local/php712

一般都可以解决问题。 
其他的错误可以参照这篇博客查阅这篇博客: 
http://www.cnblogs.com/sweetXiaoma/p/5855732.html 
http://www.linuxidc.com/Linux/2017-08/146220.htm 
关键还是自行解决,介于linux发行版太多,而且每台服务器的环境配置都不同,所以会遇到很多奇葩的问题。 
7.安装 
Make install 
8.准备配置文件

cp php.ini-developement /etc/php.ini  //根据实际情况,可以使用production或者development默认配置
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.conf123

9.需要修改apache的配置文件 
Vi /etc/httpd/conf/httpd.conf 找到LoadModule php7_module modules/libphp7.so,如果没有手动加上, 
将LoadModule php5_module modules/libphp5.so注释掉 
cp /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_5 
Vi /etc/httpd/conf.d/php.conf 
改为下面这样:(将涉及到php5的注释掉,改为php7相关模块)

<IfModule prefork.c>
  LoadModule php7_module modules/libphp7.so</IfModule><Files ".user.ini">
    <IfModule mod_authz_core.c>
        Require all denied    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny        Deny from all
        Satisfy All</IfModule></Files>DirectoryIndex index.php# mod_php options<IfModule  mod_php7.c>
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php</FilesMatch>
    php_value session.save_handler "files"
    php_value session.save_path    "/var/lib/php/session"
    php_value soap.wsdl_cache_dir  "/var/lib/php/wsdlcache"</IfModule>123456789101112131415161718192021222324

10.重启apache服务器 
service httpd restart


©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×