OpenSSL włączony, ale nie działa

Używam Apache 2.2.13 i PHP 5.2.12. Po prostu ręcznie zainstalowałem PHP 5.2.12 (aby mieć dostęp do wszystkich rozszerzeń) i włączono OpenSSL. phpinfo () wskazuje, że OpenSSL jest włączony i działa z OpenSSL 0.9.8k 25 marca 2009.

Dostaję ten błąd: PHP Fatal error: Wywołanie niezdefiniowanej funkcji ftp_ssl_connect ().

Widziałem, co sugeruje podręcznik PHP: „ftp_ssl_connect () jest dostępny tylko wtedy, gdy zarówno moduł ftp, jak i obsługa OpenSSL są zbudowane statycznie w php”, a ponadto stwierdza, że ​​„musisz skompilować własne binaria PHP”, aby działał z systemem Windows .

Podejrzewam, że phpinfo () wskazuje tylko OpenSSL jako „włączone”, ponieważ odkomentowałem linię „extension = php_openssl.dll” i mam poprawne dll w odpowiednich folderach i poprawną ścieżkę w zmiennych środowiskowych. Być może statyczna kompilacja w PHP musi zostać wykonana niezależnie od tego, co wskazuje phpinfo ().

Uważam, że celem dystrybucji (jak opisano powyżej) jest rozszerzenie dynamiczne, ale rekompilacja (dla OpenSSL) polega na kodowaniu statycznego rozszerzenia.

rozszerzenie ftp działa poprawnie (wbudowane w PHP 5.2). Testuję to za pomocą następującego kodu:

$ conn_id = ftp_connect ($ url); $ login_result = ftp_login ($ conn_id, $ username, $ password); ftp_close ($ conn_id);

Zauważ, że aby sprawdzić ssl, zmieniam tylko ftp_connect na ftp_ssl_connect. Po osiągnięciu tej linii otrzymuję błąd PHP powyżej w pliku dziennika błędów Apache.

questionAnswers(1)

yourAnswerToTheQuestion