В течение дня я пытаюсь запустить проект 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. И теперь я абсолютно уверен, что он действительно установлен:
- Когда я бегу
php -m
я вижуintl
в списке PHP модулей. - У меня есть
extension=intl.so
в моем php.ini, расположенном в/Applications/MAMP/bin/php/php5.6.25/conf/php.ini
. - Файл
intl.so
находится в каталоге/Applications/MAMP/bin/php/php5.6.25/lib/php/extensions/no-debug-non-zts-20131226
. - На странице phpinfo MAMP я вижу
'--enable-intl'
в ячейке Configure Command. Далее вниз страница, у нее есть своя таблица, показывающая, что интернационализация поддерживается версией 1.1.0. Однако в этой таблице для строкиintl.default_locale
значение равноno value
. Может ли это быть моей проблемой? - В моем
~/.zshrc
файле у меня естьalias php="/Applications/MAMP/bin/php/php5.6.25/bin/php"
, поэтому я могу быть уверен, что использую правильную версию и установку PHP.
Надеюсь, я ничего не испортил, пытаясь использовать так много статей и ответы StackOverflow, чтобы получить эту работу. Я знаю, что здесь есть ряд подобных вопросов intl
, но до сих пор мне не удавалось ответить ни на какие вопросы.
Так что я полагаю, здесь мои два основных вопроса:
- это свидетельство я перечислил выше достаточно, чтобы предложить мне действительно есть
intl
расширение установлена правильно, и почему CakePHP по-прежнему жалуются на расширение быть пропустили, если он правильно установлен? - Если он установлен неправильно, как я могу исправить это и установить CakePHP?
Спасибо!
На странице run 'phpinfo()'; и посмотрите, установлен ли intl. Mac поставляется с apache, поэтому очень возможно, что это другая версия PHP, которая используется в вашей командной строке. – Farkie
Да, вам нужно убедиться, что ваш apache работает с расширением, вам также нужно убедиться, что ваш apache указывает на версию MAMP версии PHP, которую вы установили, или если она относится к установке PHP по умолчанию. – Jravict
На mac, посмотрите в файле apache httpd.conf для этой строки: #LoadModule php5_module libexec/apache2/libphp5.so Убедитесь, что эта строка указывает на MAMP php. Httpd.conf находится в /etc/apache2/httpd.conf. Если вы входите в файл, строка, которую вы ищете, должна находиться в нижней части раздела LoadModule. – Jravict