2017-01-04 7 views
1

В течение дня я пытаюсь запустить проект CakePHP 3. Когда я бегу композитор команды установки, я получаю следующее сообщение об ошибке:Установлено расширение PHP intl, но CakePHP install говорит, что он отсутствует

cakephp/cakephp 3.3.x requires ext-intl * -> the requested PHP extension intl is missing from your system. 

Я использую MacOS Sierra 10.12.2. XCode и весь этот джаз полностью обновлены. Я запускаю PHP 5.6.25 через MAMP Pro 4.0.1 (3985). И я пытаюсь установить CakePHP 3.3.x через мой терминал, который использует ZSH вместо Bash.

Я потратил немало времени, пытаясь установить Intl. И теперь я абсолютно уверен, что он действительно установлен:

  1. Когда я бегу php -m я вижу intl в списке PHP модулей.
  2. У меня есть extension=intl.so в моем php.ini, расположенном в /Applications/MAMP/bin/php/php5.6.25/conf/php.ini.
  3. Файл intl.so находится в каталоге /Applications/MAMP/bin/php/php5.6.25/lib/php/extensions/no-debug-non-zts-20131226.
  4. На странице phpinfo MAMP я вижу '--enable-intl' в ячейке Configure Command. Далее вниз страница, у нее есть своя таблица, показывающая, что интернационализация поддерживается версией 1.1.0. Однако в этой таблице для строки intl.default_locale значение равно no value. Может ли это быть моей проблемой?
  5. В моем ~/.zshrc файле у меня есть alias php="/Applications/MAMP/bin/php/php5.6.25/bin/php", поэтому я могу быть уверен, что использую правильную версию и установку PHP.

Надеюсь, я ничего не испортил, пытаясь использовать так много статей и ответы StackOverflow, чтобы получить эту работу. Я знаю, что здесь есть ряд подобных вопросов intl, но до сих пор мне не удавалось ответить ни на какие вопросы.

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

  1. это свидетельство я перечислил выше достаточно, чтобы предложить мне действительно есть intl расширение установлена ​​правильно, и почему CakePHP по-прежнему жалуются на расширение быть пропустили, если он правильно установлен?
  2. Если он установлен неправильно, как я могу исправить это и установить CakePHP?

Спасибо!

+0

На странице run 'phpinfo()'; и посмотрите, установлен ли intl. Mac поставляется с apache, поэтому очень возможно, что это другая версия PHP, которая используется в вашей командной строке. – Farkie

+0

Да, вам нужно убедиться, что ваш apache работает с расширением, вам также нужно убедиться, что ваш apache указывает на версию MAMP версии PHP, которую вы установили, или если она относится к установке PHP по умолчанию. – Jravict

+0

На mac, посмотрите в файле apache httpd.conf для этой строки: #LoadModule php5_module libexec/apache2/libphp5.so Убедитесь, что эта строка указывает на MAMP php. Httpd.conf находится в /etc/apache2/httpd.conf. Если вы входите в файл, строка, которую вы ищете, должна находиться в нижней части раздела LoadModule. – Jravict

ответ

3

Спасибо всем, кто протянул руку в комментариях. Но специальное спасибо Aman Rawat за указание на меня this answer. Я читал эту тему несколько раз, но, по-видимому, ее не замечал.

Я добавил export PATH="/Applications/MAMP/bin/php/php5.6.25/bin:$PATH" в ~/.zshrc.

Я был тогда в состоянии установить CakePHP через composer. \

я предполагал, что у PHP MAMP в моем пути. Я имел это как псевдоним, поэтому php в терминале правильно указал бы на установку PHP MAMP, но оказывается, что PHP никогда не был на самом деле в моем PATH.

Упс!

+0

имел ту же проблему с другой версией MAMP. спасибо за сообщение вашего ответа. – Lucho

 Смежные вопросы

  • Нет связанных вопросов^_^