首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误:调用未定义函数ftp_ssl_connect()

问致命错误:调用未定义函数ftp_ssl_connect()
EN

Stack Overflow用户
提问于 2016-01-29 13:23:59
回答 2查看 7.1K关注 0票数 3

我正在尝试在PHP中建立FTP SSL连接。我使用ftp_connect()很好,工作很棒。一旦我尝试使用ftp_ssl_connect(),我就会得到以下错误:

致命错误:调用未定义函数ftp_ssl_connect()

我确实在PHP扩展中打开了openssl扩展。我不知道还能做什么,作为搜索谷歌,没有什么可以做的,使这个函数调用工作。有人知道我什么时候丢失了什么吗?或者检查一下是否需要在我的wampserver上安装其他的东西?

下面是我正在使用的php代码:

代码语言:javascript
复制
$conn_id = ftp_ssl_connect($ftp_server); 
$ftp_user_name = "username"; 
$ftp_user_pass = "password"; 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

ftp_pasv($conn_id, true); 
if ((!$conn_id) || (!$login_result)) { 
    echo "FTP connection has failed!"; 
    echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
    exit; 
} else { 
    echo "Connected to $ftp_server, for user $ftp_user_name"; 
}

显然,它没有越过第一行,因为它说ftp_ssl_connect()是一个未定义的函数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-29 13:28:34

来自PHP文档

注意:为什么这个函数可能不存在,只有当ftp模块和OpenSSL支持静态地内置到php中时,ftp_ssl_connect()才是可用的,这意味着在OpenSSL上这个函数将在正式的PHP中不被定义。要使此函数在Windows上可用,必须编译自己的PHP二进制文件。 注意: ftp_ssl_connect() 不适合与sFTP一起使用。要将sFTP与PHP结合使用,请参见ssh2。

(顺便说一句:我不使用Windows,但我不能访问ftp_ssl_connect())

票数 7
EN

Stack Overflow用户

发布于 2020-05-08 16:04:21

PHP7.1.12 CentOS

我自己构建php。

代码语言:javascript
复制
/usr/local/php71/bin/php -r "ftp_ssl_connect('server1.example.com');"

PHP Fatal error:  Uncaught Error: Call to undefined function ftp_ssl_connect() in Command line code:1

决心:

代码语言:javascript
复制
# /root/php-7.1.12/ is php source dir
cd /root/php-7.1.12/ext/ftp/

# /usr/local/php71/ is php dir
/usr/local/php71/bin/phpize

# the param --with-openssl-dir is very important
./configure --with-php-config=/usr/local/php71/bin/php-config --with-openssl-dir

make
make install

vim /usr/local/php71/lib/php.ini
# add last line
extension=ftp.so

service php-fpm reload

核对:

代码语言:javascript
复制
# method 1
/usr/local/php71/bin/php -r "phpinfo();" | grep FTP

FTP support => enabled
FTPS support => enabled

# method 2
/usr/local/php71/bin/php -r "ftp_ssl_connect('server1.example.com');"

PHP Warning:  ftp_ssl_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in Command line code on line 1

完成了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35085677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档