php - synology php ftp_ssl_connect - 调用未定义的函数

标签 php ssl synology

第一次在这里提问,请温柔点:-)

我正在 Synology 盒子上编写 PHP 命令行脚本,以通过 ftps 获取文件,并从以下部分开始:

$ftp = ftp_ssl_connect("ftp.example.com");

当从命令行运行时,我得到

Fatal error: Call to undefined function ftp_ssl_connect() in ...

phpinfo() 告诉我:

...
Registered PHP Streams => php, file, glob, data, http, ftp, https, ftps, zip, compress.zlib, compress.bzip2
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
...
openssl
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.0.1p-fips 9 Jul 2015
OpenSSL Header Version => OpenSSL 1.0.1p-fips 9 Jul 2015

/etc/php/conf.d/extensions.ini包含extension = openssl.so(没有初始的;)

在我看来,ftp_ssl_connect() 的所有先决条件都已到位。

fwiw:

$ uname -a
Linux DiskStation01 2.6.32.12 #5644 Wed Oct 28 12:36:45 CST 2015 armv5tel GNU/Linux synology_88f6282_213

下一个看的地方是什么?

最佳答案

输入 php -m 查看模块中编译的内容,如 PHP does not ship the FTP extension by default if not on Windows 。调用 phpinfo() 还应该显示所使用的编译器开关,以及它们是否包含 --enable-ftp

奇怪的是,我刚刚在我的 RS812 上尝试了这个,它显示了 FTP 和 OpenSSL 模块,并且工作正常:

nas-name> php -r "ftp_ssl_connect('test');"
PHP Warning:  ftp_ssl_connect(): php_network_getaddresses: gethostbyname failed
in Command line code on line 1

这表示 ftp_ssl_connect 正在工作,但无法解析提供的主机名。我不知道为什么你的会有所不同,除非你自己编译 PHP。

关于php - synology php ftp_ssl_connect - 调用未定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34935997/

相关文章:

c# - SSL 连接在没有客户端身份验证的情况下失败

android - Chromecast 在尝试播放来自 DS Video 的电影后重新启动

linux - 无法运行脚本

php - 使用 IE7 IE8 通过 SSL 从 PHP Web 应用程序间歇性下载错误

c# - 用于读取和解码 SSL 消息的循环不起作用

docker - 如何将带参数的命令参数(例如 --param1=arg1)传递给 Synology DSM 中的 Docker 容器运行命令

php - 使用代码通过 IMAP 将标签附加到 Gmail 中的邮件

php - 如何正确调整 png 图像大小

php - 通过ajax加载内容后Jquery不起作用

php - mysql建表失败