zoukankan      html  css  js  c++  java
  • 【干货】YUM安装PHP 7版本后,增加phalcon框架的报错解决

    1、yum安装php 7.x版本,此处部署7.3版本

    这里需要注意的是,通过yum安装,可以使用清华源进行部署,如下命令安装7.x版本:

    yum -y install epel-release && rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && yum -y install --enablerepo=remi --enablerepo=remi-php73 php php-gd php-bcmath php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-fpm php-pdo php-mysqli php-redis
    
    在我们需要增加php的扩展模块时,也可以通过yum直接添加,命令如下:
    如增加swoole框架的扩展
    
    [root@localhost ~]# yum list |grep swoole
    [root@localhost ~]# yum -y install --enablerepo=remi --enablerepo=remi-php73 php-swoole
    
    

    2、安装phalcon框架

    phalcon的github地址:https://github.com/phalcon/cphalcon,安装步骤如下:

    2.1、PHP版本依赖关系

    这里要求PHP的版本必须是7.x版本,才能支持phalcon的框架,并且g++版本大于4.4,clang++版本大于3.x版本,vc++版本大于11,make版本大于3.81,re2c版本大于0.13,如下:

    PHP 7.0.x/7.1.x/7.2.x development resources (PHP 5 is no longer supported)
    
    g++ >= 4.4 | clang++ >= 3.x | vc++ >= 11
    
    GNU make >= 3.81
    
    re2c >= 0.13
    
    [root@localhost ~]# yum install php-devel pcre-devel gcc make re2c
    

    2.2、编译phalcon扩展模块

    [root@localhost ~]#  git clone git://github.com/phalcon/cphalcon.git
    [root@localhost ~]#  cd cphalcon/build
    [root@localhost ~]#  sudo ./install
    

    如果需要指定特定的PHP版本,可以执行以下命令:

    git clone https://github.com/phalcon/cphalcon
    cd cphalcon/build
    sudo ./install --phpize /usr/bin/phpize7.3 --php-config /usr/bin/php-config7.3
    

    2.3、增加扩展文件

    [root@localhost ~]#  echo 'extension=phalcon.so' >/etc/php.d/phalcon.ini
    [root@localhost ~]#  php-fpm -t
    [root@localhost ~]#  systemctl reload php-fpm
    [root@localhost ~]#  php -m |grep phalcon
    

    3、部署phalcon遇到的坑

    3.1、安装Phalcon报错:gcc: Internal error: Killed (program cc1)

    原因是阿里云ECS内存不足并且默认关闭了swap引起的。也可以直接增加内存,也可以解决该问题。

    #创建交换分区目录
    sudo mkdir -p /var/cache/swap/
    
    #创建用于交换分区的文件。count=512 代表设置512MB大小swap文件
    sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=512
    sudo chmod 0600 /var/cache/swap/swap0
    
    #设置交换分区文件
    sudo mkswap /var/cache/swap/swap0 
    
    #立即启用交换分区文件
    sudo swapon /var/cache/swap/swap0
    
    

    阿里云服务器初始状态未配置swap,是因为开启swap分区会导致硬盘IO性能下降。执行如下命令关闭swap:

    # 关闭swap
    swapoff /var/cache/swap/swap0
    
    # 查看swap状态
    swapon -s
    

    3.2、如果报gcc编译错误,说明gcc的版本低于4.4,此时需要对gcc的版本进行升级,此处提供找到的升级方法:

    gcc 4.8 安装

    curl -Lks http://www.hop5.in/yum/el6/hop5.repo > /etc/yum.repos.d/hop5.repo
    yum install gcc gcc-g++ -y
    gcc --version
    g++ --version
    

    gcc 4.9 安装

    yum install centos-release-scl -y
    yum install devtoolset-3-toolchain -y
    scl enable devtoolset-3 bash
    gcc --version
    g++ --version
    gfortran --version
    

    gcc 5.2 安装

    yum install centos-release-scl -y
    yum install devtoolset-4-toolchain -y
    scl enable devtoolset-4 bash
    gcc --version
    g++ --version
    

    3.3、启动php-fpm报错Class 'psrcontainercontainerinterface' not found in Unknown on line 0

    当php.ini添加extension=phalcon.so后,重启php-fpm时,报如下错误:
    Class 'psrcontainercontainerinterface' not found in Unknown on line 0
    
    phalcon4.0做了更改,加了了依赖条件,必须先安装psr扩展。
    
    [root@localhost ~]# yum list |grep php-psr
    [root@localhost ~]# yum -y install --enablerepo=remi --enablerepo=remi-php73 php-psr
    
    

    安装完成psr扩展后,再重启加载php-fpm,即可成功增加phalcon的框架进行使用。这里要注意的是,yum安装的依赖关系版本都会比较低,所以安装完成上述的依赖,建议必须进行检查各种依赖的版本是否符合phalcon框架的依赖要求。

  • 相关阅读:
    SEO优化---学会建立高转化率的网站关键词库
    从一个程序员的角度看——微信小应用
    当AngularJS POST方法碰上PHP
    angularJS(6)
    彻底解决显示Opencv中Mat图像到Mfc窗口问题
    数据结构与算法基础总结
    java类别问题
    java基础知识
    逻辑地址、线性地址、物理地址和虚拟地址的区别
    TCP协议中的三次握手和四次挥手(图解)
  • 原文地址:https://www.cnblogs.com/linuxk/p/10218642.html
Copyright © 2011-2022 走看看