Como instalar diferentes versões do memcache com diferentes versões do lampp

1

Eu preciso usar versões diferentes do lampp ( xampp para linux ).
Recentemente, também preciso usar o memcache com qualquer versão do lampp que eu precise usar.
Tudo está dando certo se eu usar a última versão 1.7.7 que contém PHP 5.3.8 Eu simplesmente faço

sudo apt-get install php5-memcache
sudo cp -av '/usr/lib/php5/20090626+lfs/memcache.so' '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/memcache.so'

O problema é quando tento fazer o mesmo com uma versão antiga do lampp.
Por exemplo, eu desinstalei o lampp 1.7.7 e o php5-memcache, então eu instalei o lampp 1.7.1, que contém o PHP 5.2.9, mas fazendo

sudo apt-get install php5-memcache

Eu recebo uma versão mais nova do memcache (20090626) para uma versão mais antiga do php (20060613). Na verdade, se eu tentar copiar

sudo cp -av '/usr/lib/php5/20090626+lfs/memcache.so' '/opt/lampp/lib/php/extensions/o-debug-non-zts-20060613/memcache.so'

Eu recebo este erro ao iniciar o lampp:

Starting XAMPP for Linux 1.7.1...
PHP Warning:  PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20090626, debug=0, thread-safety=0
PHP    compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0

Se eu desinstalar o php5-memcahe e remover o memcache.so da extensão do lampp

sudo apt-get remove php5-memcache
sudo rm /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/memcache.so

se eu tentar fazer

sudo pecl i memcache

Eu obtenho

pecl/memcache is already installed and is the same as the released version 2.2.6
install failed

Então, como posso instalar o memcache.so versão 20060613 quando estou usando o lampp 1.7.1?

    
por Luca Borrione 23.01.2012 / 17:12

2 respostas

1

A solução simples. Você precisa do memcache.so compilar com a API 20060613. Isso é muito antigo, mas se você acessar o link , você encontrará ambos os pacotes amd64 e i386. Executar

uname -m

para ver qual arquitetura você possui e baixar o pacote de acordo. Depois que você baixou o pacote basta ir no mc abrir o pacote, pegar o memcache.so e copiá-lo em / opt / lampp / lib / php / extensions / no-debug-non-zts-20060613 /, e adicionar no php.ini

extension=memcache.so

se está dizendo que não encontra memcache.so provavelmente você deve ajustar o extensiondir de acordo.

Reinicie o apache e veja php_info (); Deveria estar lá.

No futuro, tente ficar nas versões do Ubuntu / Debian do php / apache / mysql e não use lampp. Eu sei que é muito mais fácil com o lampp, mas depois que você entender o que acontece "under the hood" será mais fácil para você construir seus aplicativos e entender o linux. Outro problema com o lampp são as atualizações de segurança. Se você estiver usando versões do Ubuntu ou Debian, você terá todas as atualizações com o sistema operacional e todo o processo de atualização levará segundos, não horas ou dias.

    
por 24.01.2012 / 22:27
0

Ao usar as ferramentas automatizadas para instalar o apache e o php, você está muito limitado a quanta flexibilidade você tem com a execução de diferentes versões de aplicativos.

Eu baixaria o código-fonte do apache e do php e os instalaria via

./configure {with all the options and independent paths that you want} make ; make install

Isso permitirá que você faça duas coisas.

  1. Mantenha seu ambiente separado de ferramentas automatizadas como yum e apt-get instalar
  2. Ele permitirá que você instale uma versão específica da versão independente de suplementos pecl

Pode ser um pouco mais complicado administrar a longo prazo. Mas isso lhe dará muito mais comparabilidade à medida que você cresce e se adapta.

Além disso, você emite com pecl se já o tiver instalado. Tente executar

[caminho] / lista de pecl

Ele dirá o que você já instalou. Para remover você pode usar

pecl remove [nome do produto]

Para desinstalar os plugins que você não deseja instalar

    
por 23.01.2012 / 18:09