2020年04月16日
このエントリーをはてなブックマークに追加
CentOS7 + Software Collection でインストールした、apache 2.4 と php 7.3 を利用しています。

memcached サーバーが別にあるので、PHPからこの memcached を利用したいと思います。

ちなみに yum でインストールしようとすると、scl でインストールしたPHPとの依存関係が出てしまいうまくいきません。
また無理矢理インストールしても scl 側のPHPには作用しません。

scl 側では対応した memcache のモジュールは用意されていません。さあ困った。

---------------------------
※以下のコマンドではうまくいきません。
後日顕彰した結果をまた記事にしたいとおもいます。
---------------------------

# yum list |grep memcache |grep php
php-pecl-memcache.x86_64 3.0.8-4.el7 base

base パッケージに php 用の memcache がありました。


rpm をダウンロードします。
# yumdownloader php-pecl-memcache.x86_64

中身を取り出します。
# rpm2cpio php-pecl-memcache-3.0.8-4.el7.x86_64.rpm |cpio -id
カレントフォルダ内にファイルができてしまうので、フォルダ内で実行した方がいいように思います。

エクステンションを保存する場所を確認します。
# php -i |grep extension_dir
extension_dir => /opt/rh/rh-php73/root/usr/lib64/php/modules => /opt/rh/rh-php73/root/usr/lib64/php/modules

# 取り出したファイルをエクステンションの場所にコピー
cp -p /[rpmから取り出したフォルダ]/usr/lib64/php/modules/memcache.so /opt/rh/rh-php73/root/usr/lib64/php/modules/

#php -i |grep ini
<略>
Scan this dir for additional .ini files => /etc/opt/rh/rh-php73/php.d
<略>

# cp -p /[rpmから取り出したフォルダ]/etc/php.d/memcache.ini /etc/opt/rh/rh-php73/php.d/memcache.ini

extension で memcache が指定されていることを確認する

httpd を 再起動する
# systemctl restart httpd24-httpd.service

エラーログが以下の通り出ていました。
PHP Warning: PHP Startup: Unable to load dynamic library 'memcache' (tried: /opt/rh/rh-php73/root/usr/lib64/php/modules/memcache (/opt/rh/rh-php73/root/usr/lib64/php/modules/memcache: cannot open shared object file: No such file or directory), /opt/rh/rh-php73/root/usr/lib64/php/modules/memcache.so (/opt/rh/rh-php73/root/usr/lib64/php/modules/memcache.so: undefined symbol: _zval_ptr_dtor)) in Unknown on line 0

と、ここまで書いてて、解決策が見つけられていません。
remi パッケージなどから memcache をダウンロードして、同じようにインストールすればうまくいくような気がしています。

_zval_ptr_dtorというのは、環境を確認した結果、対応していない場合に出ることが多いようです。
base パッケージの memcache は対応しているPHPのバージョンが古いのだと思われます。

参考
Why does the PHP extension fail to load with _zval_ptr_dtor_wrapper error


※結局 apache ごと remiパッケージを利用することにしてしまいました。



stock_value at 17:16│Comments(0)技術 

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔