Задать вопрос
@4Geka
PHP

В чем проблема composer?

Здравствуйте, при установки composer, выдает такую вот ошибку:
The PHP exe file you specified did not run correctly:
C:\Server\bin\PHP\php.exe

The php.ini used by your command-line PHP is: C:\Server\bin\PHP\php.ini

A setting in your php.ini could be causing the problem: Either the 'extension_dir' value is incorrect or the dll does not exist.

Program Output:
Warning: PHP Startup: Unable to load dynamic library 'C:\Server\bin\PHP\ext\php_interbase.dll' - Не найден указанный модуль.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'C:\Server\bin\PHP\ext\php_oci8_12c.dll' - Не найден указанный модуль.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'C:\Server\bin\PHP\ext\php_pdo_firebird.dll' - Не найден указанный модуль.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'C:\Server\bin\PHP\ext\php_pdo_oci.dll' - Не найден указанный модуль.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'C:\Server\bin\PHP\ext\php_mb_string.dll' - Не найден указанный модуль.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'C:\Server\bin\PHP\ext\php_sybase_ct.dll' - Не найден указанный модуль.
 in Unknown on line 0


В чем может быть проблема, в php.ini пути прописаны так:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = "C:\Server\bin\PHP\ext"
; On windows:
 extension_dir = "C:\Server\bin\PHP\ext"

По этим путям все файлы лежат, прошу помочь.
  • Вопрос задан
  • 3448 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 6
romy4
@romy4
Exception handler
а они там есть?
Ответ написан
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
Попробуйте заменить обратные слеши (в путях) \ на прямые: /, возможно, они интерпретируются как экранирующий символ (что скорее всего, иначе не было бы возможности написать пробел, например), или попробуйте вместо \ поставить \\, это может помочь.

Да, и корректность самих путей проверить нужно.
Ответ написан
dmitriylanets
@dmitriylanets
веб-разработчик
а у вас точно php.ini не php-cli.ini подключается?
Ответ написан
Комментировать
AmdY
@AmdY
PHP и прочие вебштучки
А остальные расширения подключаются нормально?
Вебсервер запускается нормально?
Экстеншины родные или скачивали отдельно (если версия не та, пхп может делать вид что их не видит)

100500 лет назад когда имел дело с виндой, я добавлял папку php и php/ext в переменную PATH
Ответ написан
Комментировать
@mike_spb_111111
Мучился с этой проблемой 4 часа, перерыл тонну форумов. В момент когда почти совсем отчаялся попал на несколько страниц обсуждений на гитхабе,
https://github.com/adoxa/ansicon/issues/108
https://github.com/composer/windows-setup/issues/80
https://github.com/composer/windows-setup/issues/74
где очень умные разработчики дискутировали на тему, что ANSICON может мешать установке composer на 64-разрядных системах. Я не разбираюсь сильно во всем этом, но кажется этот ANSICON что-то вроде какой системной штуки которая видит переменные типа %sprogdir% и подставляет нужный путь при работе командной строки и чего-то еще. В общем делает что-то с путями.
Это было последней надеждой. Нашел программу на drp.su которая, удаляет ANSICON:
https://drp.su/ru/catalog-soft/other/ansicon-84781...
Снес ANSICON этой программой (в процессе сообщалось что у меня стояла версия 1.66).
Во время следующей попытки установить composer, выдал похожу ошибку, что и раньше но уже другой путь к файлам расширений, в составе которого было: "%sprogdir%".
Заменил в php.ini путь до расширений (extensions_dir) на прямой, без переменных (прямо из строки проводника скопировал и вставил).
Пробую установить composer снова - алилуя! успешно!
Правда потом также при инициализации composer, поскольку я удалил ANSICON, и у системы пропала способность подставлять вместо переменных нормальный путь(как я понял), composer init просил меня прописать корректный путь в php.ini в поле tmp_system_dir (кажется такое поле было) - я прописал прямой, взятый из строки проводника папки.
И composer init выполнилась успешно.
И еще потом пришлось обратно установить ansicon всё с того же сайта drp.su, т.к. php перестал нормально работать, видимо не мог добраться до расширений из-за снесенного ansicon.
https://drp.su/ru/catalog-soft/other/ansicon-847817889 скачал и установил v.1.66 отсюда.
В общем, эту проблему все-таки реально решить. Надеюсь тем, кто с этой болью столкнется, моя информация поможет.
Ответ написан
Комментировать
@merlo_vevito
Столкнулся с проблемой, когда при установке композер выдавал следующее:

Composer needs the following settings to be enabled in your php.ini file.

Required settings:

The php.ini used by your command-line PHP is: D:\путь\PHP_8.3\php.ini


Долго гуглил, в итоге пришел сюда. Прочитал ответ mike_spb_111111 и решил посмотреть php.ini и нашел строку:

extension_dir = "%sprogdir%/modules/php/%phpdriver%/ext"

ну и поменял там значение на абсолютный путь:

D:\путь\PHP_8.3\ext

Теперь установка прошла успешно.

Может быть кому то это пригодится, ну или мне, когда буду комп переустанавливать... :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы