Apache “Не может инициализировать модуль” из-за API модуля и PHP, не соответствуют после изменения конфигурации PHP

php-v дает это

PHP Warning:  PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP    compiled with module API=20090626
These options need to match in Unknown on line 0
PHP Warning:  PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP    compiled with module API=20090626
These options need to match in Unknown on line 0
bogus test name tests/

PS я обновил от php 5.2 до 5,3. перед этим все работало хорошо.

36
задан hakre 31 March 2013 в 17:31
поделиться

1 ответ

При обновлении версии PHP (особенно при переходе с версии XY на версию XZ) , вы должны обновить расширения PHP тоже.


Это связано с тем, что расширения PHP разработаны на C и «близки» к внутреннему устройству PHP - это означает, что, если API-интерфейсы этих внутренних компонентов изменяются, расширение необходимо перекомпилировать для использования новых версий. .

А между PHP 5.2 и PHP 5.3, насколько я помню, были внесены некоторые изменения во внутренние структуры данных, используемые механизмом PHP - это означает, что расширения должны быть перекомпилированы, чтобы соответствовать этой новой версии этих структур данных.


Способ обновления расширений PHP будет зависеть от того, какую систему вы используете.

Если вы работаете в Windows, вы можете найти .dll для некоторых расширений здесь: http://downloads.php.net/pierre/
Для получения дополнительной информации о различных версий, вы можете взглянуть на то, что написано на левой боковой панели windows.php.net .

Если вы работаете в Linux, вы должны либо:

  • Проверить, что предоставляет ваш дистрибутив
  • , либо использовать команду pecl , чтобы повторно загрузить исходные коды рассматриваемых расширений, и повторно -компилировать их.
34
ответ дан 27 November 2019 в 06:05
поделиться
Другие вопросы по тегам:

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