2016-11-22 61 views
0

我有一个需要使用ftp_ssl_connect连接到ftp的php函数。 Iam使用Windows 7和根据谷歌的答案我需要重建PHP以包括SSL功能。现在我的问题是否有一种方法可以在Windows上启用ssl而无需重建php?还是有一个不可装载的版本,其中ssl已包含在Windows中?在Windows上的PHP open_ssl,ftp_ssl_connect

感谢

+0

在Windows上编译PHP是你不希望的最糟糕的敌人。有很多WAMP软件包可以试用(我恐怕这不是获得建议的地方)。也许最好只使用另一个功能 - 当然,这取决于您的确切需求。 –

回答

0

从PHP doc

注:为什么此功能可能不存在

ftp_ssl_connect()仅可如果FTP模块和 OpenSSL的支持都为静态构建到php中,这意味着在 Windows上这个函数将是在官方PHP版本中未定义。若要 使此功能在Windows上可用,您必须编译自己的PHP 二进制文件

强调我的。


不过,我已经下载PHP二进制文件从官方php.net的窗户,我注意到有OpenSSL的一个特定的DLL(EXT/php_openssl.dll)。这意味着也许没有必要重建PHP以获得openssl的工作。请记住在php.ini文件中添加一个dll条目。 它应该是这样的:

; Directory in which the loadable extensions (modules) reside. 
; http://php.net/extension-dir 
; extension_dir = "./" 
; On windows: 
extension_dir = "ext" 

... 
extension=php_openssl.dll 

注意

我没有测试过上述情况。

+0

不,'ftp_ssl_connect()'仍然不可用,因为SSL不是静态构建的(你甚至可以自己加载DLL)。 –

0

从PHP 7.0开始,Windows上的核心FTP扩展默认使用OpenSSL支持构建。在较早的PHP版本中,虽然可以使用SSL支持,但由于各种原因,不提供标准版本。 PHP 5的唯一解决方案是自定义构建PHP,而在windows.php.net上构建的标准PHP 7.0提供了ftp_ssl_connect()函数。

谢谢。

+0

我已经下载了最新版本,仍然收到错误。 –

+0

哪一个确切的错误? php_ftp.dll是否通过php.ini加载? –