zoukankan      html  css  js  c++  java
  • php7.4 降级 php7.1 的坑

    查看 centos 版本
    1、cat /etc/issue 2、cat /etc/redhat-release 3、cat /proc/version/

    系统环境  centos 我7.x   通过 yum install php 和  php-fpm 自动下载最新版 目前是7.4.31 。由于 7.4 版本的Php解释器 对类型检查更加严格,它会对null类型的下标访问直接报错Trying to access array offset on value of type null。而7.1版本不会,我用的dolphinPHP 大规模的存在这个问题.  尝试修改代码 搞了一晚上,发现不是一般的难搞,只能选择 降级PHP 版本

    首先找了半天以前的版本 github上面的下载速度实在是感人。 其他地方找的很艰难,后面在这个博主这里找到了这个地址: http://cn2.php.net/distributions/php-7.3.3.tar.gz 。直接把后面的版本号改成 7.1.31 也可以下载到。

    也就是:

    http://cn2.php.net/distributions/php-7.1.31.tar.gz

    下载后解压

    tar -xzf  php-7.1.31.tar.gz
    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --enable-ftp --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl
    make 
    make install

    make install 阶段报错   php编译undefined reference to `libiconv 错误`

    1、 ./configure 后面继续 添加 --prefix=/usr/local/libiconv
    如果还是报错,可能本地没有安装 libiconv。 可以尝试 yum install libiconv
    如果还是不行 再自己下载 libiconv 源码编译 链接进去? 或者
    2、vi Makefile 找到 EXTRA_LIBS = -lcrypt ... 在最后添加-liconv

    make install 完成后 还需要安装,实际上就是将 php 和 php-fpm 拷贝到/usr/bin 目录

    cp /usr/local/php/bin/* /usr/bin && cp /usr/local/php/sbin/php-fpm /usr/bin
    ps -ef|grep php-fpm 查看当前运行的 php-fpm 配置路径
    一般在 /usr/local/php/etc/php-fpm.conf
    或者直接 find / -name php-fpm 查找配置文件路径

    这一系列做完以后 php -v  

    PHP 7.1.31 (cli) (built: Dec 14 2020 02:02:12) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

    则 降级成功!

     

  • 相关阅读:
    Windows和linux(ubuntu)互传文件简便快捷的方法
    Monkey与MonkeyRunner之间的区别
    Monkeyrunner 简介及其环境搭建
    如何查看Android apk的包名?
    Android自动化测试如何获取坐标点?
    android自动化测试之Monkey--从参数讲解、脚本制作到实战技巧
    Docker 命令
    在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
    CentOS7中使用iptables
    centos7下找不到iptables文件
  • 原文地址:https://www.cnblogs.com/lesten/p/14143833.html
Copyright © 2011-2022 走看看