在CentOS 7上使用PHP的Memcached vs Amazon Elasticache

我在Vagrant中安装了一个新的CentOS 7服务器来运行PHPnginx,MySQL(MariaDB)和memcached(注意在最后)。 我可以使memcached运行正常,但是我无法获得由PHP加载的Amazon Elasticache .so文件。 我知道文件存在。 我如何让PHP来加载这个扩展,或解决它为什么不会?

我已经按照说明在这里安装这个扩展: 安装用于PHP的ElastiCache集群客户端

如何解决PHP及其为什么不能加载扩展?

除了@ Bazze关于libsas的出色评论之外,您可能会错过依赖关系(或依赖于正确的架构)

请注意,为某些应用程序安装32位和64位库是相当常见的。

如果您使用ldd /path/to/amazon-elasticache-cluster-client.so ,您是否看到提到“未解决”或类似的行? (在你的问题中发布整个输出。

像这样的常见问题可以通过运行ldconfig来解决, ldconfig应该在安装(或者添加符号链接)库之后运行。

另一个问题可能与权限或访问控制系统(如SELinux)有关。 什么sestatus显示? 也许你需要在包含库的目录上运行restorecon

有时只需在命令行input:

 $ php -m 

查看已加载的模块将显示一些有关为什么某些模块未被加载的信息。 此外ini文件语法错误,导致模块不加载有时会显示在命令行:

 $ php --ini 

这些是我要做的第一件事,就是debugging一个不加载的模块。