Ошибки при использовании PHP CLI с MAMP: API-интерфейсы модулей не совпадают

#php #pdo #command-line-interface

#php #pdo #интерфейс командной строки

Вопрос:

MAMP 3.05 из коробки дал мне PHP 5.5.10 и PHP CLI 5.4.24. Я работаю на Mac OSX 10.9.3.

PHP отлично работает, когда я ввожу URL-адрес в браузере, но CLI выдает мне ошибки, подобные этой, в файле журнала:

 PHP Warning:  PHP Startup: pdo_mysql: Unable to initialize module
Module compiled with module API=20121212
PHP    compiled with module API=20100525
These options need to match
 in Unknown on line 0
  

Поэтому мой PDO-материал не будет работать. Он не сообщает о каких-либо сбоях в файле журнала; мой вызов new PDO просто приводит к молчаливому завершению работы скрипта. php -m показывает, что PDO есть. В файле журнала есть другие предупреждения о других модулях с той же проблемой: «Эти параметры должны совпадать».

Другие ответы на подобные вопросы не дают мне особого повода для размышлений; в некоторых из них говорится, что PHP необходимо перекомпилировать. Но я не компилировал PHP — он поставлялся с MAMP. Просто ли PHP CLI не работает должным образом при готовой установке MAMP? Есть ли какой-нибудь способ заставить это работать без перестройки, или мне просто нужно его перестроить?

Комментарии:

1. Существует также XAMP, возможно, немного более мощный и ориентированный на разработчиков ..

2. Почему вы смешиваете версии PHP и PHP CLI? Если вам действительно нужно иметь две версии PHP, убедитесь, что веб-сервер не использует версию CLI и что версия CLI не использует расширения версии веб-сервера.

3. @Reuben Я не смешиваю версии, по крайней мере, не намеренно. Это готовый MAMP.

4. Знаете ли вы о втором файле php.ini для CLI, вам следует дважды проверить, установлен ли модуль

5. Это ужасно сбивает с толку, позволяя настраивать продукт с одной версией PHP для web и одной версией PHP для CLI. Я понимаю, если они предоставляют две версии PHP, но запускают только по одной за раз, и переключение как веб-сервера, так и CLI одновременно было бы нормой. Возможно, вам потребуется попробовать их программу переключения версий PHP и убедиться, что запущен только PHP 5.5.10 для веб-сервера и для CLI. При переключении версий PHP обязательно перезапускайте все сеансы терминала, чтобы путь обновлялся.