0

我们得到了一个带有 CentOS、Plesk 和 php-fpm 的新 WebServer。现在我们没有运行 php 扩展。

我们做了什么:

  • 安装了最新的 SQL Anywhere 17 (ebf29577)
  • 将 php-7.3.0_sqlanywhere_r.so 复制到 /opt/plesk/php/7.3/lib64/php/modules/
  • 通过 /opt/plesk/php/7.3/etc/php.d/sqlanywhere.ini 加载 php-7.3.0_sqlanywhere_r.so
  • 这会导致错误:警告:[pool plesk-php73-fpm.plesk-service.localdomain] child 11616 对 stderr 说:“注意:PHP 消息:PHP 警告:sqlanywhere 模块的 request_startup() 在第 0 行的未知中失败” (这导致 php 7.3 fpm 根本没有加载)
  • 下一次尝试是从 FPM 切换到 CGI:同样的错误
  • 如果使用路径 /opt/sqlanywhere17/lib64/ 增强了 LD_LIBRARY_PATH,则模块本身可以在 shell 中加载
  • 一些尝试通过 strace 找到原因并没有帮助

有没有人有想法,甚至可能成功安装了 php 扩展。

谢谢弗洛里安

4

2 回答 2

0

经过大量测试,我们找到了解决方案:在 Plesk Domain php 设置中,我们必须添加:

[php-fpm-pool-settings]
env[LD_LIBRARY_PATH]="/opt/sqlanywhere_v2/lib64:$LD_LIBRARY_PATH"

现在找到了所有库并且可以正常工作

于 2020-11-24T09:50:33.790 回答
0

对我来说,解决方案是创建自定义处理程序:

plesk bin php_handler --add -displayname "PHP SQLAnywhere 7.4" -path /opt/php-custom-handlers/7.4/php-sqlanywhere.fcgi -clipath /opt/plesk/php/7.4/bin/php -phpini /opt/plesk/php/7.4/etc/php.ini -type fastcgi

php-sqlanywhere.fcgi 内容:

#!/bin/bash
LD_LIBRARY_PATH=/opt/sqlanywhere17/lib64
export LD_LIBRARY_PATH
exec /opt/plesk/php/7.4/bin/php-cgi "$@"

最后在域 php 设置上使用此处理程序并添加其他指令:

extension=sqlanywhere.so
于 2021-02-16T19:19:03.547 回答