【问题标题】:Laravel sql anywhere connection error in ubuntu apacheubuntu apache中的Laravel sql Anywhere连接错误
【发布时间】:2018-06-30 10:52:52
【问题描述】:

错误文本是:

sasql_connect(): The SQLAnywhere client libraries could not be loaded. Please ensure that libdbcapi_r.so can be found in your LD_LIBRARY_PATH environment variable.

当我将代码作为 Laravel 作业运行时出现此错误。但是,如果我编写控制器函数,SQL Anywhere 连接是成功的。

我认为,如果我的 SQL Anywhere 安装出现问题,我会在控制器功能中遇到同样的错误。

我在没有希望的情况下尝试了 3 天的解决方案。

所有回复都会有所帮助。

谢谢。

【问题讨论】:

  • 确保为所有 php 安装安装并打开了扩展程序 - 运行该作业的可能不是您的 Web 服务器正在运行的那个。
  • 要调试此问题,您可以将一个将phpinfo() 转储到文件的作业排队,并将其与来自网络界面的phpinfo() 的输出进行比较,看看有什么区别。
  • 谢谢,如何打开所有 php 安装的扩展? @apokryfos 谢谢,我会这样做的
  • @muhammedsafayaşar 理想情况下,如果您能够设法让机器人进入队列和 Web 界面以使用相同的 PHP 安装,那么您实际上并不需要这样做。通常这是在/usr/bin路径中放入哪个php二进制文件的问题。
  • 谢谢@apokryfos。是的,apache和jobs之间是有区别的。 Apache 使用 /etc/php/5.6/apache2 而作业队列使用 /etc/php/5.6/cli。在我通过作业队列写入文件的 phpinfo 中,未定义 LD_LIBRARY_PATH。但我不知道如何为 php/5.6/cli 设置它。你能帮忙吗?

标签: php laravel laravel-5.4 sybase sqlanywhere


【解决方案1】:

我找到了解决方案。问题不在于 php 版本。这是因为主管(我用它来监控排队的作业)。我在/etc/supervisor/conf.d/my-worker.confenvironment=LD_LIBRARY_PATH=/opt/sqlanywhere17/lib64 中设置了环境变量,更新主管(“supervisorctl update”)后一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多