web-dev-qa-db-ja.com

CentOSでPHP 7のMemcache拡張機能をインストールできません

かなり大きなPHP 5.3コードベースをPHP 7にアップグレードしようとしています。CentOS6.5でホストされているので、そのOSで維持したいと思います。 。現在、未使用のVagrantボックスで実行しています-PHP 7を正常にインストールし、Memcacheを除くすべてのモジュールをインストールしました。

Rootとして、pecl install memcacheを実行すると、v2.2.7をインストールしようとしますが、makeからエラーと警告の長いリストが表示されます。最後に:

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

GoPHP7 によると、MemcacheはPHP 7で動作するはずです-githubのphp7ポート "。確かに Memcache PHP GitHubの7ポートPeclのMemcacheページ ページには、v3.0.8をインストールする必要があることが示されていますが、これはベータ版です(2013年以降です)。

だから私はpecl install memcache-3.0.8を実行しようとしましたが、それでも失敗し、上記と同じエラーが発生します。

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

では、CentOS6.5でMemcache拡張機能をPHP 7で動作させることは可能ですか?

6
Dan Blows

あなたがまだこれを解決していないのなら、私は私のために働いた解決策を持っています。私はCentOS7.xを使用していますが、それでも機能するはずです。他のユーザーは pecl-memcache with PHP 7(not pecl-memcached 完全に異なるパッケージであるため)。

すでに発見しているように、これには Memcache PHP GitHubの7ポート を使用する必要があります。

シェルにログインして、以下を実行します。

 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

上記に関するいくつかの注意事項:

  • 私が使用した各フルパスを、ご使用のシステムの適切なフルパスに置き換えます。私は/ opt/cpanel/ea-php70/root /を持っていますが、/ opt/php-7.0.7 /を持っているかもしれません。複数のPHPバージョンがインストールされている場合、私と同じように、phpizeを実行すると、古いバージョンのPHPを使用してビルドされる可能性があります。試行錯誤の末にこれを発見しました。
  • PHP modulesフォルダーがどこにあるかを見つけるには、「/ opt/cpanel/ea-php70/root/usr/bin/php -i | grepextension_dir」を実行できます。
  • すでに他の場所にロードされている場合は、memcached.iniを作成しているステップ6を実行する必要がない場合があります。
  • 「/ opt/cpanel/ea-php70/root/usr/bin/php-i | grep memcache」を使用して、正しくビルドおよびインストールされているかどうかを確認できます。さまざまなmemcacheエントリが表示される場合は、すべてが正常にインストールされています。

お役に立てば幸いです。

25
Phil