2016-05-31 39 views
6

Sto cercando di aggiornare un codice PHP 5.3 piuttosto grande a PHP 7. È ospitato su CentOS 6.5, quindi voglio tenerlo su quel SO. Lo sto attualmente facendo su un box vergine di Vagrant: ho installato correttamente PHP 7 e tutti i moduli tranne Memcache.L'estensione di Memcache con PHP 7 su CentOS non riesce ad installare

Come root, quando corro pecl install memcache tenta di installare v2.2.7 ma ottengo un lungo elenco di errori e avvisi da rendere. Alla fine è:

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

Secondo GoPHP7 dovrebbe funzionare, Memcache dovrebbe funzionare con PHP 7 - si dice "porta php7 su github". C'è davvero un Memcache PHP 7 port on GitHub. Quando guardo la pagina Memcache page on Pecl, mostra che dovrei installare la v3.0.8, ma questa è in beta (e lo è stato dal 2013).

così cerco di correre pecl install memcache-3.0.8 e non riesce ancora, con lo stesso errore come sopra:

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

Quindi è possibile ottenere l'estensione Memcache lavorare con PHP 7 su CentOS 6.5?

risposta

18

Se non hai ancora risolto questo problema, ho una soluzione che ha funzionato per me. Sono su CentOS 7.x ma dovrebbe funzionare ancora per te e chiunque altro voglia utilizzare pecl-memcache con PHP 7 (non pecl-memcached in quanto è un pacchetto completamente diverso).

Come già scoperto, è necessario utilizzare Memcache PHP 7 port on GitHub per questo.

Entra nel tuo guscio e eseguire le seguenti operazioni:

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 

Alcune note per quanto sopra:

  • sostituire ogni percorso completo che ho usato con il percorso completo appropriata sul vostro sistema . Mentre ho/opt/cpanel/ea-php70/root /, potresti avere /opt/php-7.0.7/. Se hai installato più versioni di PHP, come faccio io, l'esecuzione di phpize potrebbe finire con la creazione di una vecchia versione di PHP. L'ho scoperto dopo molte prove ed errori.
  • Per scoprire dove si trova la cartella dei moduli PHP, è possibile eseguire "/ opt/cpanel/ea-php70/root/usr/bin/php -i | grep extension_dir"
  • Potrebbe non essere necessario eseguire il passaggio 6 dove sto creando un memcached.ini se lo hai già caricato altrove.
  • È possibile verificare se è stato creato e installato correttamente utilizzando "/ opt/cpanel/ea-php70/root/usr/bin/php -i | grep memcache". Se vedi varie voci di memcache, tutto è stato installato con successo.

Spero che questo aiuti!

+1

da uomo. Non riesco a credere che fosse così difficile trovare questa informazione – Sebas

+1

Seconda riga dovrebbe essere 'decomprimere NON_BLOCKING_IO_php7.zip' ;-) – Tim

+0

Hai ragione, Tim! Ho perfino controllato i passaggi alcune volte prima di postarli, ma immagino che questo sia scivolato da me. Grazie e risolto! – Phil

Problemi correlati