在CentOS上使用PHP 7的Memcache扩展无法安装

问题描述 投票:6回答:1

我正在尝试将相当大的PHP 5.3代码库升级到PHP 7.它托管在CentOS 6.5上,所以我想将它保留在该操作系统上。我目前在一个处女Vagrant盒子上做 - 我已成功安装PHP 7,以及除Memcache之外的所有模块。

作为root用户,当我运行pecl install memcache时,它会尝试安装v2.2.7但是我从make获得了一长串错误和警告。最后是:

make: *** [memcache.lo] Error 1
ERROR: `make' failed

根据GoPHP7它应该工作,Memcache应该使用PHP 7 - 它说“github上的php7端口”。确实有一个Memcache PHP 7 port on GitHub。当我查看Memcache page on Pecl页面时,它显示我应该安装v3.0.8,但这是测试版(并且自2013年以来)。

所以我尝试运行pecl install memcache-3.0.8但它仍然失败,出现与上面相同的错误:

make: *** [memcache.lo] Error 1
ERROR: `make' failed

那么是否有可能在CentOS 6.5上使用PHP 7的Memcache扩展?

memcached pecl php-7 centos6.5
1个回答
25
投票

如果你还没有解决这个问题,我有一个适合我的解决方案。我在CentOS 7.x上,但它应该仍适用于你,以及其他任何想要使用PHP 7的pecl-memcache(而不是pecl-memcached,因为这是一个完全不同的包)。

正如您已经发现的那样,您必须使用Memcache PHP 7 port on GitHub

登录到您的shell并执行以下操作:

 1. wget https://github.com/websupport-sk/pecl-memcache/archive/NON_BLOCKING_IO_php7.zip
 2. unzip NON_BLOCKING_IO_php7.zip
 3. cd pecl-memcache-NON_BLOCKING_IO_php7
 4. /opt/cpanel/ea-php70/root/usr/bin/phpize && ./configure --enable-memcache --with-php-config=/opt/cpanel/ea-php70/root/usr/bin/php-config && make
 5. cp modules/memcache.so /opt/cpanel/ea-php70/root/usr/lib64/php/modules/
 6. echo 'extension=memcache.so' >/opt/cpanel/ea-php70/root/etc/php.d/memcached.ini
 7. service httpd restart

以上的一些注意事项:

  • 将我使用的每个完整路径替换为您自己系统上的相应完整路径。虽然我有/ opt / cpanel / ea-php70 / root /,但您可能有/opt/php-7.0.7/。如果您安装了多个PHP版本,那么运行phpize可能最终会使用旧版本的PHP进行构建。经过多次试验和错误,我发现了这一点。
  • 要找出PHP模块文件夹的位置,可以运行“/ opt / cpanel / ea-php70 / root / usr / bin / php -i | grep extension_dir”
  • 您可能不需要执行步骤6,如果您已经将其加载到别处,我将创建一个memcached.ini。
  • 您可以使用“/ opt / cpanel / ea-php70 / root / usr / bin / php -i | grep memcache”验证它是否已正确构建和安装。如果您看到各种memcache条目,则所有内容都已成功安装。

我希望有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.