【问题标题】:redis.so module is not loadedredis.so 模块未加载
【发布时间】:2016-02-01 22:13:30
【问题描述】:

我在 Amazon Web Services 上有一个 EC2 实例,并且在同一个 VPC 中还有一个 ElastiCache (Redis) 实例。 我的 EC2 实例已安装 Amazon Linux AMI 2015.09。我还将它配置为使用 mpm_worker_module 而不是 prefork。配置正常工作,我可以从浏览器访问页面。

然后我安装了 redis 客户端,redis-cli 命令在 ssh 中完美运行。

然后我安装了 phpredis (https://github.com/nicolasff/phpredis/zipball/master -O phpredis.zip),并创建了一个简单的 PHP 脚本来检查它是否正常工作(一个简单的 index.php)。

如果我从 ssh 控制台(即 php index.php)启动这个脚本,它会很好用。如果我启动相同的脚本尝试从浏览器打开页面,我会收到此错误: Fatal error: Class 'Redis' not found

我在 apache 中的 php.conf 文件如下:

<IfModule prefork.c>
  LoadModule php5_module modules/libphp-5.6.so
</IfModule>
<IfModule !prefork.c>
  LoadModule php5_module modules/libphp-zts-5.6.so
</IfModule>

在文件夹 /etc/php-zts-5.6.d 我已经添加了文件“redis.ini”,里面有

extension = redis.so

我也注意到redis安装只添加redis.so到这个文件夹

 /usr/lib64/php/5.6/modules/

而不是/usr/lib64/php-zts/5.6/modules/ 文件夹,所以我将它从一个文件夹复制到另一个文件夹。但它仍然不工作,同样的错误:

Fatal error: Class 'Redis' not found

相反,如果我使用带有 autoload.php 的“include”的 Predis,它可以正常工作。但是我想安装phpredis,因为我们的系统每秒都会对Redis Server进行数千次调用,而phpredis编译后会快得多。

我做错了什么?

编辑 在我的 redis 错误日志中,我收到了这条消息

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/5.6/modules/redis.so' - /usr/lib64/php/5.6/modules/redis.so: undefined symbol: compiler_globals in Unknown on line 0

另外,如果我使用 prefork 模块,效果很好。如果我使用worker,就会出现上述错误。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 redis phpredis


    【解决方案1】:

    解决方案是按照以下步骤安装phpredis:

    • 下载并解压phpredis
    • 命令zts-phpize
    • 命令./configure --with-php-config=/usr/bin/zts-php-config
    • 命令make &amp;&amp; make install

    我在做 phpize 而不是 zts-phpize 并且我没有添加 --with-php-config 选项:这就是问题

    当然,你必须将 redis.ini 添加到 /etc/php-zts-5.6.d/ 文件夹中,在文件中:

    extension=redis.so
    

    重启apache,它应该可以工作了

    希望对某人有所帮助

    附:如果您希望它从命令行运行(即“php script.php”),您还必须使用phpize 和简单的./configure 命令安装它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多