Дата публикации: 24.12.2022 в 06:45

Обновление до PHP 8.2 с помощью Homebrew на Mac

0 комментария

Обновление с помощьюHomebrew

Для начала убедитесь что brew установлен крайней версии:

brew update

Теперь уже можно переходить к обновлению PHP. Вы можете использовать встроенные средства PHP, но я рекомендую использовать tap shivammathur/homebrew-php

Стандартное обновление

brew upgrade php

Обновление с помощью shivammathur/homebrew-php

brew tap shivammathur/php
brew install shivammathur/php/php@8.2

Для переключения между версиями используйте следующую команду

brew link --overwrite --force php@8.2

Хотите больше информации о homebrew - посетите следующий репозиторий

Следующие шаги

Проверьте текущую версию при помощиphp -v

NGINX или Apache

ИспользуетеNGINX или Apache? То Вам необходимо перезапустить их (если вы используете Laravel Valet, то просто пропустите этот пункт и перейдите к следующему). Выполняем команды:

sudo nginx -s reload
sudo apachectl restart

И убедитесь, что ваш локальный веб сервер также использует PHP 8.2 прописав следующую команду:

# index.php, accessible to your web server
phpinfo();

Версия должна быть 8.2.Х

Valet

Если вы используете Laravel Valet, вам нужно выполнить следующие шаги для обновления:

composer global update

Вы можете использовать valet use для переключения между версиями PHP

valet use php@8.2
valet use php@8.1

Расширения

Расширения PHP устанавливаются с помощью pecl. Я лично использую Redis и Xdebug. Они могут быть установлены следующим образом:

pecl install redis
pecl install xdebug

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

pecl list

# Installed packages, channel pecl.php.net:

# =========================================

# Package Version State

# redis 5.3.4 stable

# xdebug 3.1.1 stable

Вы можете искать другие расширения используяpecl search

pecl search pdf

Убедитесь, что вы перезапустили свой веб сервер после установки каких-либо расширения.

sudo nginx -s reload
sudo apachectl restart
valet restart

Убедитесь, что все расширения правильно установлены и загружены, проверив установки вашего веб-сервера PHP и CLI:

php -i | grep redis
var_dump(extension_loaded('redis'));

Если расширения загружены неправильно, есть два простых решения.

Во-первых, убедитесь, что расширения добавлены в правильный ini-файл. Вы можете запустить php --ini, чтобы узнать, какой файл загружен:

Configuration File (php.ini) Path: /opt/homebrew/etc/php/8.2

Loaded Configuration File: /opt/homebrew/etc/php/8.2/php.ini

Scan for additional .ini files in: /opt/homebrew/etc/php/8.2/conf.d

Additional .ini files parsed: /opt/homebrew/etc/php/8.2/conf.d/error_log.ini,

/opt/homebrew/etc/php/8.2/conf.d/ext-opcache.ini,

/opt/homebrew/etc/php/8.2/conf.d/php-memory-limits.ini

Теперь проверьте этот файл .ini

extension="redis.so"
zend_extension="xdebug.so"

Обратите внимание, что если вы тестируете установленные расширения через CLI, вам не нужно перезапускать nginx, apache или Valet при внесении изменений в настройки ini.

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

pecl uninstall redis
pecl install redis

Последний шаг

Наконец, вы должны протестировать и обновить свои проекты для совместимости с PHP 8.2.

Оригинал статьи: https://stitcher.io/blog/php-82-upgrade-mac

ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай