php – OpenSSL已启用但无法正常工作
我正在运行Apache 2.2.13和
PHP 5.2.12.只需手动安装
PHP 5.2.12(即可访问所有扩展)并启用OpenSSL. phpinfo()表示OpenSSL已启用并运行OpenSSL 0.9.8k 2009年3月25日.
我收到此错误:PHP致命错误:调用未定义的函数ftp_ssl_connect(). 我已经看到PHP手册建议’ftp_ssl_connect()只有在ftp模块和OpenSSL支持都静态构建到php’时才可用,并进一步指出’你必须编译自己的PHP二进制文件’才能使它适用于Windows . 我怀疑phpinfo()只表示OpenSSL为’启用’,因为我已取消注释’extension = php_openssl.dll’行并在正确的文件夹中使用正确的dll,并在环境变量中使用正确的路径.无论phpinfo()指示什么,也许必须完成PHP的静态构建. 我认为分发的目标(如上所述)用于动态扩展,但重新编译(对于OpenSSL)是对静态扩展进行编码. ftp扩展工作正常(内置于PHP 5.2).我用以下代码测试: $conn_id = ftp_connect($url); 请注意,要检查ssl,我只将ftp_connect更改为ftp_ssl_connect.到达此行时,我在Apache错误日志文件中收到上面的PHP错误. 解决方法
作为
documentation states(引用你已经引用的内容):
你说你“手动”安装PHP;但这可能仍然意味着你使用了php.net的“官方”版本 – 这意味着你还没有编译自己的PHP二进制文件……所以,这个函数不可用. 没有魔法:如果你想能够使用该功能,你似乎必须在编译时使用正确的配置选项重新编译PHP … 这里有一些关于它的文档:Build your own PHP on Windows – 但是……祝你好运……我从来没有听说过在Windows上编译PHP很“简单”(实际上它并不是那么难,但Linux可能会更多一些)非常适合编译) 其他几个解决方案: >为了您的开发而切换到Linux(即使它只使用虚拟机) – 但您可能仍需要重新编译PHP以获得它(默认情况下可能未启用)>只是没有使用该功能;毕竟,您知道您的托管服务是否会为您提供服务吗? (如果您无法在生产服务器上使用它,则无需在开发/测试机器上使用) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |