Расширение Memcache с PHP 7 на CentOS не удается установить

Я пытаюсь обновить довольно большую базу кода PHP 5.3 до PHP 7. Он размещен на CentOS 6.5, поэтому я хочу сохранить его на этой ОС. В настоящее время я делаю это на virgin Vagrant box - я успешно установил PHP 7 и все модули, кроме Memcache.

как root, когда я запускаю pecl install memcache он пытается установить v2.2.7 но я получаю длинный список ошибок и предупреждений от сделать. В конце:

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

по данным GoPHP7 он должен работа, Memcache должен работать с PHP 7-он говорит"порт php7 на github". Существует действительно Memcache PHP 7 порт на GitHub. Когда я смотрю на страница Memcache на Pecl страница, она показывает, что я должен устанавливать v3.0.8, но это в бета-версии (и было с 2013 года).

поэтому я пытаюсь бежать pecl install memcache-3.0.8 и он все еще терпит неудачу, с той же ошибкой, что и выше:

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

так можно ли получить расширение Memcache, работающее с PHP 7 на В CentOS 6.5?

1 ответов


Если вы еще не решили это, у меня есть решение, которое сработало для меня. Я на CentOS 7.x, но он все равно должен работать для вас, и кто-то еще хочет использовать pecl-memcache С PHP 7 (не pecl-memcached поскольку это совершенно другой пакет).

Как вы уже обнаружили, Вы должны использовать Memcache PHP 7 порт на GitHub для этого.

войдите в свою оболочку и выполните следующий:

 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

некоторые заметки выше:

  • замените каждый полный путь, который я использовал, соответствующим полным путем в вашей собственной системе. Пока у меня /опт/панель/ЭА-php70/корень/, вы можете иметь каталог /opt/php-с 7.0.7/. Если у вас установлено несколько версий PHP, как и у меня, запуск phpize может закончиться созданием старой версии PHP. Я обнаружил это после долгих проб и ошибок.
  • чтобы узнать, где находится ваша папка модулей PHP, вы можете запустить "/опт/панель/ЭА-php70/корень/usr/Бен/РНР -я | extension_dir команда grep"
  • возможно, Вам не нужно выполнять Шаг 6, где я создаю memcached.ini, если вы уже загрузили его в другом месте.
  • вы можете проверить, правильно ли он был построен и установлен с помощью "/opt/cpanel/ea-php70/root/usr/bin/php-i | grep memcache". Если вы видите различные записи memcache, все было установлено успешно.

надеюсь, это поможет!