2016-05-31 67 views
6

'u yükleyemiyor. PHP 7'ye oldukça büyük bir PHP 5.3 kod tabanını yükseltmeye çalışıyorum. Bu, CentOS 6.5'te barındırılıyor, bu yüzden bu OS'de tutmak istiyorum. Şu anda bakire bir Vagrant kutusunda yapıyorum - PHP 7'yi başarıyla yükledim ve Memcache hariç tüm modüller.CentOS'ta PHP 7 ile Memcache eklentisi,

Kök olarak, pecl install memcache çalıştırdığımda, v2.2.7'yi yüklemeye çalışır ancak adresinden uzun bir hata listesi ve uyarı aldım. Sonunda ise:

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

çalışması gerekir GoPHP7 göre, Memcache PHP 7 ile çalışmalıdır - bu "github üzerinde php7 portu" diyor. Gerçekten bir Memcache PHP 7 port on GitHub var. Memcache page on Pecl sayfasına baktığımda, v3.0.8'i yüklemem gerektiğini, ancak bunun beta (ve 2013'ten beri) olduğunu gösteriyor.

yüzden pecl install memcache-3.0.8 çalıştırmayı denediğinizde ve hala yukarıdaki ile aynı hata ile başarısız:

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

yüzden CentOS 6.5 PHP 7 ile çalışan Memcache uzantısı almak mümkündür?

cevap

18

Henüz çözmediyseniz, benim için çalışan bir çözüm buldum. Ben CentOS 7.x'tayım ama hala sizin için çalışmalı ve başka biri de PHP 7 ile pecl-memcache'u kullanmak isteyenler (tamamen farklı bir paket olarak pecl-memcached değil).

Zaten keşfettiğiniz gibi, bunun için Memcache PHP 7 port on GitHub kullanmanız gerekir. Yukarıdaki için

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 

Bazı notlar:

  • Ben kendi sisteminizde uygun tam yolu ile kullandım her tam yol yerine aşağıdaki

    olun Giriş kabuğuna ve gerçekleştirmek ./Opt/cpanel/ea-php70/root/var iken /opt/php-7.0.7/ olabilir. Birden fazla PHP sürümü yüklüyse, yaptığım gibi, phpize çalıştırmak PHP'nin eski bir sürümünü kullanarak binaya son verebilir. Bunu bir çok deneme ve hatadan sonra keşfettim. PHP modülleri klasörü, Çalıştırabileceğiniz olduğu

  • öğrenmek için "/ usr/bin/php -i/opt/cpanel/ea-php70/kök | grep extension_dir" Sen adımı 6 gerçekleştirmek gerekmeyebilir
  • Zaten bir yere yüklediyseniz memcached.ini nerede oluşturuyorum.
  • "/ opt/cpanel/ea-php70/root/usr/bin/php -i | grep memcache" ile doğru şekilde oluşturup kurulmadığını doğrulayabilirsiniz. Çeşitli memcache girişleri görürseniz, her şey başarıyla kuruldu.

Umarım bu yardımcı olur!

+1

siz erkeksiniz. Kutsal Ben bu bilgiyi bulmak çok zor olduğuna inanamıyorum – Sebas

+1

İkinci satır 'unzip olmalıdır NON_BLOCKING_IO_php7.zip' ;-) – Tim

+0

Haklısın Tim! Adımları göndermeden önce birkaç kez kontrol ettim, ama sanırım bu benim tarafımdan kaymış. Teşekkürler, sabit! – Phil