Я использую Apache 2.2.13 и PHP 5.2.12. Просто установил PHP 5.2.12 вручную (чтобы иметь доступ ко всем расширениям) и включил OpenSSL. phpinfo () указывает, что OpenSSL включен и работает OpenSSL 0.9.8k 25 марта 2009 г.
Я получаю эту ошибку: Фатальная ошибка PHP: вызов неопределенной функции ftp_ssl_connect ().
Я видел, где в руководстве по PHP указано, что «ftp_ssl_connect () доступен только в том случае, если и модуль ftp, и поддержка OpenSSL встроены статически в php» и далее говорится, что «вы должны скомпилировать свои собственные двоичные файлы PHP», чтобы сделать его работа с Windows.
У меня есть подозрение, что phpinfo () указывает только на то, что OpenSSL включен, потому что я раскомментировал строку extension = php_openssl.dll и у меня есть правильные dll в правильных папках и правильный путь в переменных среды. И, возможно, статическая сборка в PHP должна выполняться независимо от того, что указывает phpinfo ().
Я полагаю, что цель распространения (как описано выше) для динамических расширений, но перекомпиляция (для OpenSSL) заключается в кодировании статического расширения.
Расширение ftp работает нормально (встроено в PHP 5.2). Я проверяю это с помощью следующего кода:
$ conn_id = ftp_connect ($ url);
$ login_result = ftp_login ($ conn_id, $ username, $ password);
ftp_close ($ conn_id);
Обратите внимание, что для проверки ssl я изменяю только ftp_connect на ftp_ssl_connect. При достижении этой строки я получаю ошибку PHP выше в моем файле журнала ошибок Apache.