Brew PHP 7.1, 7.2 и 7.3 у всех INTL включен по умолчанию .
Скорее всего, вы просто используете пакетную версию PHP для Mac OS.
Run
ls -l $(which php)
чтобы узнать, где находится текущий бинарный файл PHP и есть ли у него ссылка на установку Brew или нет. В моем случае, например:
lrwxr-xr-x 1 27 May 23 16:30 /usr/local/bin/php -> ../Cellar/php/7.3.5/bin/php
Это означает, что мой php
связан с версией Brew 7.3.5.
Если вы НЕ используете Brew PHP, вы увидите что-то вроде
-rwxr-xr-x 1 11169664 Mar 21 07:09 /usr/bin/php
Установка PHP через Brew
Узнайте, установлен ли у вас PHP:
brew list | grep php
Если есть какие-либо выходные данные, и ваша версия PHP присутствует, перейдите к шагу 2 или используйте шаг 1, чтобы обновить PHP до последней версии.
1. Установите Homebrew's PHP
brew install php@7.3
(или 7.2, 7.1). Если Brew жалуется на невозможность найти формулу, возможно, вы ошиблись. Вместо php@7.3
вы можете указать полный путь к текущей формуле php :
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/php.rb
Все еще не работает, проверьте, используете ли вы последнюю версию Homebrew brew --version
.
Homebrew 2.1.3-31-geaf2370
Homebrew/homebrew-core (git revision fd1ef; last commit 2019-05-25)
Homebrew/homebrew-cask (git revision 16d50; last commit 2019-05-26)
2. Ссылка Homebrew's PHP
Теперь, чтобы иметь php
на вашем пути, есть два варианта.
a) Любая версия homebrew должна быть связана с места установки (/ usr / local / bin / Cellar / php ....) в каталог на вашем пути (например, / usr / local / bin). Для этого выполните:
brew link --force php@7.3
Если вы не можете связать, это обычно вызывается установленными разрешениями или защитой целостности системы. В первом случае попробуйте sudo chown "$USER":admin /usr/local/bin/php
.
b) Или , добавьте каталог /usr/local/opt/php@7.3
( opt-prefix ) в переменную $ PATH. Например, для Bash :
echo 'export PATH="/usr/local/opt/php@7.3/bin:/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
3. Подтвердить установку
ls -l $(which php)
должен показать, что php
связан с установкой Homebrew PHP в /usr/local/bin/Cellar
.
php -v
должен отображать недавно установленную версию PHP. Попробуйте перезапустить свой терминал, если это не так.
php -i | grep -i intl
должен отображать некоторую информацию о текущей установке intl
.
Если вы используете веб-серверы и / или PHP FPM, самое время перезапустить эти службы. (Или перезапустите вашу систему, если вы не знаете, как это сделать и не можете понять).
Возможные проблемы
Если вы по-прежнему получаете предупреждения об отсутствующих расширениях (невозможно загрузить динамическую библиотеку и т. Д.), Значит, ваш php.ini испорчен.
Найти текущее местоположение ini php
$ php -i | grep \.ini
Configuration File (php.ini) Path => /usr/local/etc/php/7.3
Loaded Configuration File => /usr/local/etc/php/7.3/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/7.3/conf.d
Additional .ini files parsed => /usr/local/etc/php/7.3/conf.d/ext-opcache.ini
....
Отредактируйте /usr/local/etc/php/7.3/php.ini и найдите загружаемую добавку (например, extension="myext.so"
). Закомментируйте те, которые не могут быть найдены.
Доморощенные разрешения
Некоторые утверждают, , что это хорошая идея - чоу /usr/local
.
sudo chown -R "$USER":admin /usr/local
Это сделает установку вещей здесь, вручную и через Homebrew, намного проще, но также и менее безопасным, так как процессам без полномочий root теперь разрешено писать и здесь.
Ваше веб-приложение использует другую версию PHP.
Убедитесь, что это не так ... Конфигурация этого зависит от используемого веб-сервера. Первым шагом будет вывод текущей конфигурации PHP в ваше веб-приложение с помощью <?php phpinfo();
.
Это объясняет шаги для Apache.
Еще один способ заставить веб-сервер + стек PHP работать быстро - использовать Laravel Valet .
Установка дополнительных расширений
Чтобы установить дополнительные расширения PHP, используйте PEAR.
pear -V
должен вывести текущую версию PEAR и PHP.
PEAR Version: 1.10.9
PHP Version: 7.3.5
Zend Engine Version: 3.3.5
Теперь, чтобы установить расширение, например, расширение yaml в PHP:
pear install yaml