CentOS 上 PHP 7 的 Memcache 扩展安装失败

2024-01-20

我正在尝试将相当大的 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 https://github.com/gophp7/gophp7-ext/wiki/extensions-catalog它应该可以工作,Memcache 应该可以与 PHP 7 一起工作 - 它说“github 上的 php7 端口”。确实有一个GitHub 上的 Memcache PHP 7 端口 https://github.com/websupport-sk/pecl-memcache。当我看着Pecl 上的 Memcache 页面 https://pecl.php.net/package/memcache页面,它显示我应该安装 v3.0.8,但这是测试版(自 2013 年以来一直如此)。

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

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

那么是否可以让 Memcache 扩展在 CentOS 6.5 上与 PHP 7 一起使用?


如果您还没有解决这个问题,我有一个对我有用的解决方案。我使用的是 CentOS 7.x,但它应该仍然适合你和其他想要使用的人PECL 内存缓存 https://pecl.php.net/package/memcache使用 PHP 7(不pecl-memcached https://pecl.php.net/package/memcached因为那是一个完全不同的包)。

正如您已经发现的,您必须使用GitHub 上的 Memcache PHP 7 端口 https://github.com/websupport-sk/pecl-memcache为了这。

登录到您的 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”
  • 如果您已经在其他地方加载了它,您可能不需要执行我创建 memcached.ini 的步骤 6。
  • 您可以使用“/opt/cpanel/ea-php70/root/usr/bin/php -i | grep memcache”验证它是否正确构建和安装。如果您看到各种内存缓存条目,则一切都已成功安装。

我希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS 上 PHP 7 的 Memcache 扩展安装失败 的相关文章

随机推荐