• 技术文章 >后端开发 >PHP7

    如何安装php7及安装memcache扩展出现新旧php版本兼容问题该怎么办

    醉折花枝作酒筹醉折花枝作酒筹2021-07-20 09:18:11转载116
    不知道你是否会安装php7,也不知道你是否会处理安装memcache扩展出现新旧php版本兼容问题,今天小编就带大家了解一下,有需要的可以参考参考。

    http://php.net/downloads.php

    安装php-7.0.0

    首先安装依赖程序 如果已经安装过请略过

    yum install -y php-mcrypt libmcrypt libmcrypt-devel
    yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel
    #openssl-devel是64位 如果是32位服务器请选择i386版的
    yum install openssl-devel.x86_64
    yum install curl curl-devel
    yum -y install libxslt-devel
    yum install -y php-mcrypt libmcrypt libmcrypt-devel mcrypt mhash
    ./configure --prefix=/usr/local/php7 \
    --with-config-file-path=/usr/local/php7/etc \
    --with-config-file-scan-dir=/usr/local/php7/etc/php.d \
    --with-mcrypt \
    --enable-mysqlnd \
    --with-mysqli \
    --with-pdo-mysql \
    --enable-fpm \
    --with-gd \
    --with-iconv \
    --with-zlib \
    --enable-xml \
    --enable-shmop \
    --enable-sysvsem \
    --enable-inline-optimization \
    --enable-mbregex \
    --enable-mbstring \
    --enable-ftp \
    --enable-gd-native-ttf \
    --with-openssl \
    --enable-pcntl \
    --enable-sockets \
    --with-xmlrpc \
    --enable-zip \
    --enable-soap \
    --without-pear \
    --with-gettext \
    --enable-session \
    --with-curl \
    --with-jpeg-dir \
    --with-freetype-dir \
    --enable-opcache
    
    make &&  make install
    
    可选
    --with-fpm-user=www \
    --with-fpm-group=www \

    如果提示configure: error: mcrypt.h not found. Please reinstall libmcrypt.

    因为centos6.x 默认的yum源没有libmcrypt-devel 这个包,由于版权的原因,只能借助第三方yum源,或者自己手动下载编译安装包

    wget http://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
    ./configure
    make && make install

    如果报checking for C++ compiler default output file name… configure: error: C++ compiler

    cannot create executables

    yum list | grep c++
    yum install gcc-c++.x86_64

    如果提示undefined reference to `libiconv’则需要先安装libiconv

    --with-iconv=/usr/local/libiconv

    如果还是报错则vim Makefile

    找到EXTRA_LIBS =

    在最后面加上-liconv

    或者直接make ZEND_EXTRA_LIBS=’-liconv’

    如果重新安装的是旧版本的php则需要重新编译apache的LoadModule php5_module文件

    ./configure --with-apxs2=/usr/local/sbin/apxs

    此时php7安装完成

    mv /usr/local/src/php-7.1.0/php.ini-production /usr/local/php7/etc/php.ini

    启用php-fpm服务

    cd /usr/local/php7/etc
    mv php-fpm.conf.default php-fpm.conf
    mv php-fpm.d/www.conf.default php-fpm.d/www.conf

    注意更改php-fpm.conf的user跟group否则可能会因为权限问题报File not found.

    user = nobody
    group = nobody

    运行php-fpm

    /usr/local/php7/sbin/php-fpm -c /usr/local/php7/etc/php.ini -y /usr/local/php7/etc/php-fpm.conf

    如果想使用此命令service php-fpm start|stop|restart

    cd /usr/local/src/php-7.1.0/sapi/fpm
    ls
    cp init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
    chkconfig --add php-fpm
    chkconfig php-fpm on

    就可以使用 sevice php-fpm start 来启用php-fpm了。用 ps -ef | grep php-fpm 看看进程吧。

    但是当我安装memcache扩展的时候

    http://pecl.php.net/package/memcache

    安装memcache-2.2.7 2012年的稳定版

    #如果已安装过autoconf请忽略
    autoconf
    yum install autoconf
    
    phpize
    ./configure --enable-memcache --with-php-config=/usr/local/php7/bin/php-config
    make && make install

    此时报致命错误/root/memcache-2.2.7/memcache.c:40:40: fatal error: ext/standard/php_smart_str.h: No such file or directory

    php_smart_str.h文件不存在

    百度搜php_smart_string.h是给字符串预处理动态申请内存空间,类似于操作系统中内存以页为单位分配,它的好处是对齐内存地址,提高访问速度。

    发现php7已经把此文件改成php_smart_string.h 对比看2个文件改动蛮大的

    这个不知道是不是php官方开发组的兼容性没有做好 期待改善

    推荐学习:php视频教程

    以上就是如何安装php7及安装memcache扩展出现新旧php版本兼容问题该怎么办的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:php7
    上一篇:PHP7原生MySQL数据库操作有哪些 下一篇:FPM鲜为人知的三种模式
    第16期线上培训班

    相关文章推荐

    • nginx 找不到php进程怎么办• PHP7原生MySQL数据库操作有哪些• PHP如何使用串口通信• php怎么设置画布颜色• php错误哪几种

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网