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

Posted

技术标签:

【中文标题】如何使用 pecl 在 aws beanstalk 上安装 php-solr-client【英文标题】:how to instal php-solr-client on aws beanstalk with pecl 【发布时间】:2012-12-15 17:34:55 【问题描述】:

我在亚马逊 AWS 上安装了一个 beanstalk 服务器。我也有一个不同的实例运行 SOLR 服务器。

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

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

在 ec2 外壳中:

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

我发现了一些关于这个问题的其他帖子,但大多数都放弃了或给出了不完整/不清楚的解决方案。

【问题讨论】:

列出具体的其他candidate duplicates 怎么样?为什么他们的解决方案不适合您?错误消息非常清楚 - 您的 curl 库中的某些内容已损坏或丢失。 pecl 是否将该行添加到 php.ini 中,还是应该添加? Charles - 因为其他帖子没有解决错误,我们为什么要跟踪死链接...,也没有任何遗漏... toby - pecl 确实在 php.ini 中添加了一行,这是问题的一部分,但我当时不知道... 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

Yaron 的回复对我不起作用。

但是下面的做了。

我只是添加了

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

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

注意: 我正在使用 php 5.5.12

【讨论】:

以上是关于如何使用 pecl 在 aws beanstalk 上安装 php-solr-client的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AWS CLI 更新弹性 beanstalk 代码?

AWS Cloudformation:如何在 AWS 弹性 beanstalk 配置中引用多个安全组

如何使用 Elastic beanstalk 和 Dockerrun.aws.json 正确部署到 AWS?

如何在中国区域的AWS beanstalk实例上部署美国区域的AWS beanstalk实例

如何使用 aws cli 在 Elastic Beanstalk 上上传和部署?

如何在 AWS Elastic Beanstalk 上强制使用 HTTPS