Call to undefined function curl_init() после перехода на новую версию php

WD
На сайте с 16.09.2009
Offline
118
452

Добрый день.

Обновил на сервере и апач и php на 8.2.19 . Один из сайтов начал выдавать ошибку Call to undefined function curl_init()

в php.ini раскомментированы строчки:

extension=curl

extension=php_curl.dll

в папке /ext файл php_curl.dll лежит

phpinfo() показывает только в секции PHP Credits:

cURL Sterling Hughes


Апач перезапускался.

В логах журнала приложений нашел следующую запись:

PHP Warning: PHP Startup: Unable to load dynamic library 'php_curl.dll' (tried: D:/www/php82/ext\php_curl.dll (Не найден указанный модуль), D:/www/php82/ext\php_php_curl.dll.dll (Не найден указанный модуль))

Смущает, что разные косые черты в пути. Может из-за этого не грузит? Но в php.ini прописано extension_dir = "D:/www/php82/ext/" Пробовал и extension_dir = "D:/www/php82/ext" - такой же результат


D
На сайте с 05.02.2022
Offline
42
#1
на сервере точно диск D есть? )
WD
На сайте с 16.09.2009
Offline
118
#2
dzthd #:
на сервере точно диск D есть? )

Все остальные сайты использующие php ошибок не выдают - значит диск есть :-)

После перезапуска апач в журнале приложений windows ошибки при загрузки только этой dll :-(

На другие dll не ругается. Так что теория из-за разных косых черточек в путях не подходит

WD
На сайте с 16.09.2009
Offline
118
#3

В инете нашел совет который частично решил проблему:

из папки php скопировать файл libssh2.dll и поместить в папку "Apache24/bin"

В этой папке файл libssh2.dll был от 20 года, в то время другие dll за 23-24 год

Секция curl появилась при выводе phpinfo()

Но в логах винды теперь выдает ошибку:

Не удается найти описание для идентификатора события 4 из источника PHP-8.2.19. Вызывающий данное событие компонент не установлен на этом локальном компьютере или поврежден. Установите или восстановите компонент на локальном компьютере.

Если событие возникло на другом компьютере, возможно, потребуется сохранить отображаемые сведения вместе с событием.

К событию были добавлены следующие сведения: 

php[2976]

PHP Warning: Module "curl" is already loaded (D:\www\Apache2.4\bin\httpd.exe -d D:/www/Apache2.4)

Сайт теперь выдает ошибку  Cannot redeclare curl_file_create()

I7
На сайте с 12.06.2008
Offline
365
#4
White Devil #:

php[2976]

PHP Warning: Module "curl" is already loaded (D:\www\Apache2.4\bin\httpd.exe -d D:/www/Apache2.4)

Сайт теперь выдает ошибку  Cannot redeclare curl_file_create()

Это говорит о том, что вы дважды подключили dll с curl.

WD
На сайте с 16.09.2009
Offline
118
#5
Ilya74 #:

Это говорит о том, что вы дважды подключили dll с curl.

Вот это то и странно...

Если в папке  Apache2.4\bin оставить старую libssh2.dll, то ошибка  Unable to load dynamic library 'php_curl.dll'

Если скопировать туда эту dll из папки php (которая более свежая) , то Module "curl" is already loaded

И как получается дважды подключил?

"Ниччего не понимаю" - © Следствие ведут колобки

W1
На сайте с 22.01.2021
Offline
306
#6
White Devil #:

Если в папке  Apache2.4\bin оставить старую libssh2.dll, то ошибка  Unable to load dynamic library 'php_curl.dll'

Если скопировать туда эту dll из папки php (которая более свежая) , то Module "curl" is already loaded

И как получается дважды подключил?

В каталогах может лежать хоть 100500 файлов, хоть свежих, хоть несвежих. Это не вызовет никаких ошибок. Ошибка возникает при попытке повторного подключения файлов.

Мой форум - https://webinfo.guru –Там я всегда на связи
WD
На сайте с 16.09.2009
Offline
118
#7
webinfo #:

В каталогах может лежать хоть 100500 файлов, хоть свежих, хоть несвежих. Это не вызовет никаких ошибок. Ошибка возникает при попытке повторного подключения файлов.

Так вот я не понимаю, где повторное подключение происходит.

Если в папке  Apache2.4\bin оставить старую libssh2.dll - то php_curl.dll не подгружает вообще (Не найден указанный модуль). Обновить ее - погружает дважды.

В php.ini только две вышеуказанные строчки с curl

W1
На сайте с 22.01.2021
Offline
306
#8
White Devil :

в php.ini раскомментированы строчки:

extension=curl

extension=php_curl.dll

Масло масляное.
Оставь что-то одно.

WD
На сайте с 16.09.2009
Offline
118
#9

Проблема решена.

В php.ini оставлено в таком виде:

;extension=curl

extension=php_curl.dll

Из папки PHP скопирована с заменой libssh2.dll в  Apache2.4\bin

Библиотека curl загружается. В журнале ошибок нет.

Осталось исправить ошибки в коде сайтов

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий