我正在尝试将相当大的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扩展?
如果你还没有解决这个问题,我有一个适合我的解决方案。我在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
以上的一些注意事项:
我希望有所帮助!