web-dev-qa-db-ja.com

異なるバージョンのlamppで異なるバージョンのmemcacheをインストールする方法

異なるバージョンのlamppを使用する必要があります( Linuxの場合はxampp )。
最近、使用する必要のあるすべてのバージョンのlamppでmemcacheを使用する必要があります。
PHP 5.3.8を含む最後のlamppバージョン1.7.7を使用するとすべてがうまくいきます

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'

問題は、古いバージョンのlamppで同じことをしようとしたときです。
たとえば、lampp 1.7.7とphp5-memcacheをアンインストールしてから、PHP 5.2.9を含むlampp1.7.1をインストールしましたが、

Sudo apt-get install php5-memcache

古いバージョンのphp(20060613)用に新しいバージョンのmemcache(20090626)を取得します。実際、私がコピーしようとすると

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

ランプの起動中にこのエラーが発生します:

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

Php5-memcaheをアンインストールし、lampp拡張機能からmemcache.soを削除した場合

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

やろうとしたら

Sudo pecl i memcache

私は得る

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

では、lampp 1.7.1を使用しているときにmemcache.soバージョン20060613をインストールするにはどうすればよいですか?

1
Luca Borrione

シンプルなソリューション。 API 20060613でビルドするmemcache.soが必要です。これはかなり古いですが、 http://packages.ubuntu.com/hardy/php5-memcache にアクセスすると、AMD64パッケージとi386パッケージの両方が見つかります。 。実行

uname -m

使用しているアーキテクチャを確認し、それに応じてパッケージをダウンロードします。パッケージをダウンロードしたら、mcに移動してパッケージを開き、memcache.soを取得して/ opt/lampp/lib/php/extensions/no-debug-non-zts-20060613 /にコピーし、php.iniに追加します。

extension=memcache.so

memcache.soが見つからないと言っている場合は、それに応じてextensiondirを調整する必要があります。

Apacheを再起動し、php_info();を確認します。そこにあるはずです。

将来的には、php/Apache/mysqlのubuntu/debianバージョンに固執し、lamppを使用しないようにしてください。私はlamppを使用するとはるかに簡単になることを知っていますが、それが「内部」で何が起こるかを理解すると、アプリケーションの構築とLinuxの理解がより簡単になります。ランプのもう1つの問題は、セキュリティの更新です。 UbuntuまたはDebianバージョンを使用している場合は、OSですべてのアップグレードが行われ、アップグレードのプロセス全体は数時間または数日ではなく数秒で完了します。

1
Sacx

自動化されたツールを使用してApacheとphpをインストールする場合、さまざまなバージョンのアプリケーションを実行する際の柔軟性にかなり制限されます。

Apacheとphpのソースをダウンロードして、

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

これにより、2つのことができるようになります。

  1. 環境をyumやapt-getinstallなどの自動化ツールとは別にしてください
  2. それはあなたがpeclアドオンの独立したバージョン固有のバージョンをインストールすることを可能にします

長期的に管理するのは少し複雑かもしれません。しかし、それはあなたが成長し適応するにつれてあなたにはるかに多くの比較可能性を与えるでしょう。

また、peclで問題が発生するのは、すでにインストールされている可能性があることです。実行してみてください

[パス]/peclリスト

すでにインストールしたものが表示されます。削除するには、

pecl remove [製品名]

インストールしたくないプラグインをアンインストールするには

0
J Baron