PHP Предупреждение: запуск PHP:????????: невозможно инициализировать модуль
После обновления php с 5.1 до 5.2.10 я получил следующие предупреждения, когда php -v
:
# php -v
PHP Warning: PHP Startup: fileinfo: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: mcrypt: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: mhash: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: mssql: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: readline: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: tidy: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP 5.2.10 (cli) (built: Nov 13 2009 11:24:03)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
Как я могу это исправить? Спасибо!
Ответы
Ответ 1
Похоже, вы не обновили модули PHP, они несовместимы.
Проверить директиву extension_dir в php.ini. Он должен указывать на папку с 5.2 модулями.
Поскольку вы обновили, есть вероятность, что вы используете старый php.ini, который указывает на 5.1 модуля
Ответ 2
попытайтесь обновить каждый из этих модулей с помощью команды pecl
# pecl upgrade fileinfo
# pecl upgrade memcache
# pecl upgrade mhash
# pecl upgrade readline
и т.д...
Ответ 3
brew reinstall php56-mcrypt --build-from-source
Сделайте это: передайте флаг --build-from-source
для каждого модуля, который необходимо скомпилировать с той же версией.
Он также может потребовать настройки PHP в зависимости от ваших плагинов. Если да, brew reinstall php56 --with-thread-safety
Чтобы просмотреть все параметры для php [version] запустите brew options php56
(заменив 56 вашей версией)
Ответ 4
Удалите модуль, который не может быть инициализирован, и переустановите его.
Ответ 5
Это просто описание того, почему у меня была эта проблема, если кто-то сочтет это полезным.
Моя проблема заключалась в том, что я обновил php с помощью homebrew и в какой-то момент заставил переменную PHP_INI_SCAN_DIR в моем профиле или файле bashrc, чтобы он указывал на старую версию php. Удалена эта строка и исправлена.
Ответ 6
Это случилось со мной, когда я попытался установить более новую версию PHP
. Обнаружив, что мне также потребуется переконфигурировать Apache, я вернулась к старой версии PHP. Здесь решение, которое сработало для меня:
измените httpd.conf на правильные версии:
PHPIniDir ...
LoadModule php5_module ...
Изменен
PATH - Environment Variable
Если это не имеет никакого эффекта
rename or delete the new PHP(-Version)-Folder
Почему-то последний шаг помогло. Даже после перезагрузки он не имел эффекта, прежде чем делать это.
Ответ 7
Если вы установили php с homebrew, проверьте, использует ли ваш файл apache2.conf домашнюю страницу файла php5.so.
Ответ 8
В моем случае, с Windows Server 2008, мне пришлось изменить переменную PATH
.
В нем была первая версия PHP (VC9).
Я изменил его с новой версией PHP (VC11).
После перезагрузки Apache все было в порядке.
Ответ 9
Это старый поток, но я наткнулся на него, пытаясь решить подобную проблему.
Для меня я получил эту конкретную ошибку, относящуюся к php_wincache.dll
. Я был в процессе обновления PHP с 5.5.38 по 5.6.31 на сервере Windows. По некоторым причинам не все файлы DLL обновлены с помощью новейших версий. Большинство из них, но некоторые не сделали этого.
Итак, если вы получите ошибку, подобную этой, убедитесь, что все расширения установлены и обновлены.