如何解决安装php7及memcache扩展时新旧版本兼容问题?

2026-04-05 16:2710阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1289个文字,预计阅读时间需要6分钟。

如何解决安装php7及memcache扩展时新旧版本兼容问题?

不知道您是否会安装PHP 7,也不知道您是否会处理安装memcache扩展时出现的PHP新旧版本兼容问题。今天小 编就带大家了解一下,希望能有所帮助。

首先,您可以参考以下链接下载PHP 7.0.0:[PHP下载](http://php.net/downloads.php)

安装PHP 7之前,请注意以下几点:

1. 环境准备:确保您的服务器已经安装了必要的编译工具,如gcc、make等。

2. 下载PHP:通过上述链接下载PHP 7.0.0源码包。

3. 编译安装:解压源码包,进入目录,执行以下命令进行编译安装:

./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql --with-pdo-mysql --with-mysqli --enable-memcache make make install

其中,`--enable-fpm`启用FastCGI进程管理器,`--with-fpm-user`和`--with-fpm-group`指定fpm进程的用户和组,`--with-mysql`、`--with-pdo-mysql`和`--with-mysqli`启用MySQL支持,`--enable-memcache`启用memcache扩展。

4. 配置环境变量:在您的`~/.bashrc`或`~/.bash_profile`文件中添加以下内容:

export PATH=/usr/local/php/bin:$PATH

然后执行`source ~/.bashrc`或`source ~/.bash_profile`使配置生效。

5. 配置Web服务器:根据您的Web服务器(如Apache、Nginx)配置PHP模块。

如何解决安装php7及memcache扩展时新旧版本兼容问题?

6. 测试安装:在Web服务器上创建一个PHP文件,如`test.php`,内容如下:

php

访问该文件,如果显示PHP信息,则说明安装成功。

在处理PHP新旧版本兼容问题时,以下是一些可参考的方法:

1. 查阅官方文档:[PHP官方文档](http://php.net/manual/zh/)提供了详细的版本差异和兼容性信息。

2. 使用兼容性检查工具:如[PHPCompatibility](https://github.com/deric/PHPCompatibility)等工具可以帮助您检查代码与PHP版本之间的兼容性。

3. 升级依赖库:确保您的依赖库与PHP版本兼容。

4. 寻求社区帮助:在PHP相关论坛、社区等寻求帮助。

不知道你是否会安装php7,也不知道你是否会处理安装memcache扩展出现新旧php版本兼容问题,今天小编就带大家了解一下,有需要的可以参考参考。

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 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扩展的时候

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官方开发组的兼容性没有做好 期待改善

本文共计1289个文字,预计阅读时间需要6分钟。

如何解决安装php7及memcache扩展时新旧版本兼容问题?

不知道您是否会安装PHP 7,也不知道您是否会处理安装memcache扩展时出现的PHP新旧版本兼容问题。今天小 编就带大家了解一下,希望能有所帮助。

首先,您可以参考以下链接下载PHP 7.0.0:[PHP下载](http://php.net/downloads.php)

安装PHP 7之前,请注意以下几点:

1. 环境准备:确保您的服务器已经安装了必要的编译工具,如gcc、make等。

2. 下载PHP:通过上述链接下载PHP 7.0.0源码包。

3. 编译安装:解压源码包,进入目录,执行以下命令进行编译安装:

./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql --with-pdo-mysql --with-mysqli --enable-memcache make make install

其中,`--enable-fpm`启用FastCGI进程管理器,`--with-fpm-user`和`--with-fpm-group`指定fpm进程的用户和组,`--with-mysql`、`--with-pdo-mysql`和`--with-mysqli`启用MySQL支持,`--enable-memcache`启用memcache扩展。

4. 配置环境变量:在您的`~/.bashrc`或`~/.bash_profile`文件中添加以下内容:

export PATH=/usr/local/php/bin:$PATH

然后执行`source ~/.bashrc`或`source ~/.bash_profile`使配置生效。

5. 配置Web服务器:根据您的Web服务器(如Apache、Nginx)配置PHP模块。

如何解决安装php7及memcache扩展时新旧版本兼容问题?

6. 测试安装:在Web服务器上创建一个PHP文件,如`test.php`,内容如下:

php

访问该文件,如果显示PHP信息,则说明安装成功。

在处理PHP新旧版本兼容问题时,以下是一些可参考的方法:

1. 查阅官方文档:[PHP官方文档](http://php.net/manual/zh/)提供了详细的版本差异和兼容性信息。

2. 使用兼容性检查工具:如[PHPCompatibility](https://github.com/deric/PHPCompatibility)等工具可以帮助您检查代码与PHP版本之间的兼容性。

3. 升级依赖库:确保您的依赖库与PHP版本兼容。

4. 寻求社区帮助:在PHP相关论坛、社区等寻求帮助。

不知道你是否会安装php7,也不知道你是否会处理安装memcache扩展出现新旧php版本兼容问题,今天小编就带大家了解一下,有需要的可以参考参考。

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 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扩展的时候

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官方开发组的兼容性没有做好 期待改善