pro-dev
@pro-dev

Как сменить php 7.3 на Mac OS?

Всем привет! Ввожу команду php -v результат:
HP 7.1.23 (cli) (built: Nov 27 2018 16:59:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

Далее пытаюсь сменить на 7.3
brew unlink php71

Выходит сообщение:
Error: No such keg: /usr/local/Cellar/php@7.1


Текущее расположение /usr/bin/php

Что не так делаю? Пытался разные вещи. Я не помню как я до этого устанавливал php, что теперь не могу сменить. Может это вообще было не через brew... Помогите!!!!
  • Вопрос задан
  • 1463 просмотра
Решения вопроса 1
fcherkassy
@fcherkassy
Откройте терминал и выполните команду:

curl -s https://php-osx.liip.ch/install.sh | bash -s 7.3
Система безопасности macOS может потребовать ввод пароля для получения доступа к системным файлам — вводите его. Скрипты компании Liip для установки PHP не содержат в себе вредоносного кода.

В случае, если у вас уже установлена новая версия, то эта команда может вызвать вывод предупреждения об уже установленной свежей версии PHP.

В результате скрипта будет развёрнут архив с файлами PHP 7.3 в директории пользователя, в моём случае, это было здесь:

/usr/local/php5-7.3.8-20190811-205217/
Окончание установки выглядело таким образом (обратите внимание на путь к распаковываемым файлам):

Настройка работы PHP 7.3 из терминала
Чтобы проверить текущую версию, запускаемую в терминале, выполните команду

php -v

Для работы composer в терминал у меня была поставлена версия PHP 7.2.16. Чтобы настроить запуск из терминала новой версии PHP нужно в файле ~/.bash_profile, если вы используете окружение терминала bash, добавить в конец файла следующие строки:

export PATH="/usr/local/php5-7.3.8-20190811-205217/bin:$PATH"
export PATH="/usr/local/php5-7.3.8-20190811-205217/sbin:$PATH"
Путь к установленной версии PHP может отличаться от указанного мною. Актуальный для вас путь содержится в терминале, где происходила установка новой версии и запуск команды curl. После сохранения изменений в файле .bash_profile, внутри новых сессий терминала будет использоваться указанная вами версия. Для обновления версии внутри текущей сессии терминала, следует прочесть файл заново с помощью вызова:

source ~/.bash_profile
Теперь при вызове php -v в терминале вы должны увидеть последнюю версию PHP:

Если нет файла ~/.bash_profile
В случае, если файл ~/.bash_profile не создан, то это можно сделать прямо из терминала с помощью команды:

touch ~/.bash_profile
А затем взять в редактирование с помощью выполнения вызова:

sublime ~/.bash_profile
Если у вас не настроен запуск редактора sublime text из консоли, то это вы можете сделать с помощью этой статьи.

Настройка PHP 7.3 во встроенном в macOS сервере Apache
В операционную систему macOS изначально установлен веб сервер Apache, который позволяет разрабатывать сайты и полностью себя конфигурировать без установки LAMP, Apache через brew и т.п. Чтобы встроенный сервер Apache загружал нужную версию модуля PHP следует ему указать это в конфигурационном файле. Файл конфигурации находится по адресу:

/private/etc/apache2/httpd.conf
В этом файле следует найти строку, содержащую слово php. По умолчанию, она выглядит следующим образом:

#LoadModule php7_module libexec/apache2/libphp7.so
Следует убрать у неё в начале #, чтобы эта строка не была закомментирована, а также прописать вместо libexec/apache2/libphp7.so полный путь до файла libphp7.so в директории с новой версией PHP 7.3. В моём случае, строка выглядит следующим образом:

LoadModule php7_module /usr/local/php5-7.3.8-20190811-205217/libphp7.so
Сохраняем файл, вводим пароль, подтверждающий наши права на сохранение файла в системном месте. А затем нужно перезапустить сервер Apache c помощью команды:

sudo apachectl restart
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 22:33
25000 руб./за проект
23 апр. 2024, в 22:07
12000 руб./за проект