[英]How can I resolve yum install errors (dependency problems) when attempting to install php-memcached on PHP 8 on Amazon Linux 2?
我正在尝试使用 Amazon Linux 2 在 PHP 8.0.18 上安装 PHP 模块“memcached”:
PHP 8.0.18 (cli) (built: May 16 2022 19:07:27) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.18, Copyright (c) Zend Technologies
with Zend OPcache v8.0.18, Copyright (c), by Zend Technologies
它在 PHP 7.4 上为我工作:
$ php -v
PHP 7.4.29 (cli) (built: May 12 2022 20:27:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.29, Copyright (c), by Zend Technologies
$ php -m
[PHP Modules]
[...]
memcached
[...]
我使用此命令之前安装了 memcached:
sudo yum install php-memcached
当我尝试在 PHP 8.0.18 上运行此命令时,出现此错误:
Error: Package: php-pecl-memcached-2.2.0-1.el7.x86_64 (epel)
Requires: php(zend-abi) = 20100525-64
Installed: php-common-8.0.18-1.amzn2.x86_64 (@amzn2extra-php8.0)
php(zend-abi) = 20200930-64
Available: php-common-5.4.16-43.amzn2.x86_64 (amzn2-core)
php(zend-abi) = 20100525-64
[...]
Error: Package: php-pecl-msgpack-0.5.5-5.el7.x86_64 (epel)
Requires: php(api) = 20100412-64
Installed: php-common-8.0.18-1.amzn2.x86_64 (@amzn2extra-php8.0)
php(api) = 20200930-64
Available: php-common-5.4.16-43.amzn2.x86_64 (amzn2-core)
php(api) = 20100412-64
[...]
Error: Package: php-pecl-igbinary-1.2.1-1.el7.x86_64 (epel)
Requires: php(api) = 20100412-64
Installed: php-common-8.0.18-1.amzn2.x86_64 (@amzn2extra-php8.0)
php(api) = 20200930-64
Available: php-common-5.4.16-43.amzn2.x86_64 (amzn2-core)
php(api) = 20100412-64
这里的参考是 memcached 包的样子:
$ sudo yum list | grep memcached
libmemcached.x86_64 1.0.16-5.amzn2.0.2 @amzn2-core
libmemcached.i686 1.0.16-5.amzn2.0.2 amzn2-core
libmemcached-devel.x86_64 1.0.16-5.amzn2.0.2 amzn2-core
memcached.x86_64 1.4.15-10.amzn2.1.2 amzn2-core
memcached-devel.x86_64 1.4.15-10.amzn2.1.2 amzn2-core
opensips-memcached.x86_64 1.10.5-4.el7 epel
php-ZendFramework-Cache-Backend-Libmemcached.noarch
php-pecl-memcached.x86_64 2.2.0-1.el7 epel
php-pecl-memcached-debuginfo.x86_64 2.2.0-1.el7 epel-debuginfo
python-memcached.noarch 1.48-4.amzn2 amzn2-core
uwsgi-router-memcached.x86_64 2.0.18-8.el7 epel
我对问题的理解是最近发布了一个新的php-memcached PHP支持(2022年3月28日发布的3.2.0版本): https://github.com/php-memcached-dev/php-memcached/发布
我的猜测是亚马逊(或 epel 存储库)还没有这个新版本。
我该如何进行? 我必须等待亚马逊吗? 从其他位置安装模块是否安全?
我的目标是使用 PHP 8 安装 php-memcached 模块。这个模块是我以前用来与 Amazon ElastiCache 的内存缓存服务器集成的方式。
问题是该模块不在亚马逊的 PHP 8 存储库中。 它在 PHP 7.4 上可用。
我原以为亚马逊需要时间来添加这个更新的模块,但 4 个月过去了,一切都没有改变。
我需要将我的服务器切换到 PHP 8,因为 PHP 7.4 正在终止支持,并在此处进行了更多挖掘。 事实证明,更好的解决方案是使用亚马逊提供的 PHP Cluster Client: https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/Appendix.PHPAutoDiscoverySetup.Installing.html#Appendix.PHPAutoDiscoverySetup .安装.PHP7x.Ubuntu
sudo yum install gcc-c++ zlib-devel
wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.X/latest-64bit-<ARCH>-<OpenSSL>
tar -zxvf latest-64bit-<ARCH>-<OpenSSL>
sudo mv amazon-elasticache-cluster-client.so /usr/lib64/php/modules/
链接页面提供了更多信息。
我能够让 memcached 客户端使用此页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.