如何使用 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实例