我在Vagrant中安装了一个新的CentOS 7服务器来运行PHP,nginx,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一个不加载的模块。