[英]Fatal error: Call to undefined function ftp_ssl_connect()
我正在尝试在 PHP 中设置 FTP SSL 连接。 我已经很好地使用了ftp_connect()
并且效果很好。 一旦我尝试使用ftp_ssl_connect()
,我就会收到此错误:
致命错误:调用未定义的函数 ftp_ssl_connect()
我确实在 PHP 扩展中打开了 openssl 扩展。 我不确定还有什么可做的,因为在 google 上搜索我找不到任何可以使此函数调用工作的方法。 有谁知道我什么时候缺少什么或检查是否需要在我的 wampserver 上安装其他东西?
这是我正在使用的 php 代码:
$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()
是一个未定义的函数。
来自PHP 文档:
注意:为什么这个函数可能不存在 ftp_ssl_connect() 仅当 ftp 模块和 OpenSSL 支持静态构建到 php 中时才可用,这意味着在 Windows 上,这个函数将在官方 PHP 构建中未定义。 要在 Windows 上使用此功能,您必须编译自己的 PHP 二进制文件。
注意: ftp_ssl_connect()不适用于 sFTP 。 要在 PHP 中使用 sFTP,请参阅ssh2_sftp() 。
(顺便说一句:我不使用 Windows,但我无法访问ftp_ssl_connect()
)
PHP7.1.12 CentOS
我自己构建php。
/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
解决:
# /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
查看:
# 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
完毕!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.