如何使用pecl在aws beanstalk上安装php-solr-client

时间:2012-12-31 16:00:25

标签: php solr amazon-ec2 elastic-beanstalk

我在amazon aws上安装了一个beanstalk服务器。我还有一个运行SOLR服务器的不同实例。

在我的php脚本中我使用这个模块:http://php.net/manual/en/solrclient.adddocument.php 查询SOLR数据库。

将它安装在beanstalk上,我登录到它的ec2实例,(ec2-user)。 这个模块使用pecl

在ec2 shell中:

sudo pecl install -n solr

完成后,pecl会将extension = solr.so添加到php.ini

从这一点来说,当我运行php脚本时,我会重温:

PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/solr.so' - /usr/lib/php/modules/solr.so: undefined symbol: curl_easy_getinfo in Unknown on line 0

我发现很少有关于这个问题的其他帖子,但大多数人放弃了或提供了不完整/不明确的解决方案。

2 个答案:

答案 0 :(得分:1)

如何在aws beanstalk上安装solr php客户端 - (这个php客户端 - http://php.net/manual/en/solrclient.construct.php

  1. 假设您已启动并运行Beanstalk服务器
    • 登录由beanstalk创建的ec2实例
  2. sudo pecl install -n solr - > (在提示xmlcurl时添加/ usr / lib作为位置文件夹,在通过pecl安装时添加libcur)
  3. 从php.ini中删除“extension = solr.so” - > (在root / etc中找到)
  4. 用一行添加文件“solr.ini”=(放在root / etc / php.d中)
  5. sudo /etc/init.d/httpd restart - >重启服务器
    • 确保为beanstalk打开solr服务器端口8443:8983。
  6. 利润。
  7. 现在正在运行,如果你运行它来连接到solr 4.0服务器,你会注意到它无法正常工作(提交 - > waitflush arg在4.0中被删除但在客户端上仍然存在)
  8. 对我来说没有利润......

答案 1 :(得分:0)

Yaron的回复没有为我工作。

然而,下面的确如此。

我只是添加了

extension=curl.so
extension=json.so
extension=solr.so

php.ini 的末尾 它没有任何问题。

注意: 我使用的是PHP 5.5.12