• Centos7 离线安装 php7


    问题:因内部管控,机器无法连接公有yum源安装php。

    正常安装php7可以参考CentOS7.2 安装 PHP7.2

    下面的代码也是一种方法

    yum -y install libmcrypt libmcrypt-devel mcrypt mhash
    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-mcrypt php72w-intl php72w-libapache2

    正常网络下,上述两种方式都可安装成功,但内部管控,上面命令会出现

    No package epel-release available.

    epel-release = 7

    epel-release >= 7 is needed by webtatic-release-7-3.noarch 

    更换其他源可能出现

    "Peer's Certificate issuer is not recognized."

     

    方案:离线下载rpm包,根据安装时的报错,安装相关开发包

      上述正常安装的方案是让系统获取php7的安装源,以便通过yum安装,自动下载安装依赖包

      步骤是 下载离线包->安装依赖环境->安装离线包。。全部的代码如下,再往下的是解决思路,可忽略 

    yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-mcrypt php72w-intl php72w-libapache2 --downloadonly --downloaddir=. 
    yum install -y libmcrypt libmcrypt-devel mcrypt mhash
    yum install -y libicu libargon2 openssl libcrypto
    # 进入离线包的目录
    cd ./tmp_rpms
    rpm -Uvh  *.rpm
    #启动并运行php-fpm服务
    systemctl enable php-fpm.service
    systemctl restart php-fpm

      

    思路和实际调试步骤

      1.首先在可以正常安装php的机器中下载rpm包,

    • 需要注意的是两个系统版本要一致,比如centos7,或者都是x86-64
    • 运行命令,其实就是在原命令末增加   --downloadonly --downloaddir=.
      yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-mcrypt php72w-intl php72w-libapache2 --downloadonly --downloaddir=. 

      2.因php依赖   libmcrypt libmcrypt-devel mcrypt mhash 需要安装好,这边的内部管控还是有内部源可以访问的,支持这些基础安装  

      yum -y install libmcrypt libmcrypt-devel mcrypt mhash

      3.将离线包放到目标机中,运行下命令,查看报错信息,如果没报错,那就直接跳到第7步,启用php-fpm服务

      rpm -Uvh  *.rpm

      4.这边遇到的问题  xxx is needed by xxx, 

     libargon2.so.0()(64bit) is needed by 
     libcrypto.so.10(OPENSSL_1.0.2)(64bit)
     libicudata.so.50()(64bit) is needed b
     libicui18n.so.50()(64bit) is needed b

      5.去这个网站搜索报错信息里需要的依赖包  https://pkgs.org ,不要带.so,直接搜名字就行,在结果中选择系统对应的版本,比如centos7

    • 比如  libargon2.so,点击第一条,新页面中查看  Install Howto

          

      yum install libargon2 尝试下能不能执行,成功的话下一个,否则下载离线包安装

      6.下面一行代码是本环境可以直接安装,满足php依赖。然后运行第3步的命令就可以成功,没有报错。

    yum install -y libicu libargon2 openssl libcrypto

      7.启用php-fpm服务,因项目用到php-fpm服务,而离线方式安装,没有启用service,需要运行下面命令

    systemctl enable php-fpm.service
    systemctl restart php-fpm

     以上,php就安装成功了,项目已经用上了,暂时没有发现有什么问题,php运行良好,没有奇怪的崩溃异常。


    安装phpredis ,访问下载页下载, 查看github页面安装说明,编译安装

    /usr/local/php/bin/phpize
    ./configure –with-php-config=/usr/local/php/bin/php-config
    make && make install
    echo "extension=redis.so" > /etc/php.d/redis.ini
    systemctl reload php-fpm
  • 相关阅读:
    在VirtualBox安装debian8.8(完整版)
    Ubuntu18.04 离线安装 docker
    基于JWT的Token认证机制及安全问题
    BTree
    ConcurrentHashMap原理
    Utf8BomRemover
    Spring源码下载
    【intellij idea】Project Structure 讲解 Ctrl+Alt+Shift+S
    idea使用过程中, maven包已经正常下载,但是项目中依然无法引入,提示不存在
    java正则判断字符串是否含有中文、数字、字母
  • 原文地址:https://www.cnblogs.com/duoxuan/p/11929197.html
Copyright © 2020-2023  润新知