Какво е новото и промененото в PHP 8.2
PHP 8.2 носи здравословен списък от нови функции за сигурност и производителност, както и няколко отхвърляния, които могат да излъчват допълнителни предупреждения за съществуващи наследени системи, тъй като отхвърля динамичните свойства, заедно с няколко други отхвърляния.
Забележителни промени в разширението и INI
PHP 8.2 не включва никакви забележими промени, които трябва да повлияят на процеса на инсталиране или надграждане. PHP 8.2 всъщност добавя ново разширение, наречено random, но това разширение винаги е пакетно разширение и PHP не може да бъде компилиран без него.Една забележителна промяна в INI настройките и файловете на PHP е, че PHP 8.2 излъчва предупреждение при неправилно форматирани INI настройки, които бяха заглушени в старите версии на PHP. Вижте PHP 8.2: Предупреждения за INI анализ за повече информация.
Code:
Предупреждение:
Предстоят потенциално разрушителни действия
Следните действия се изпълняват като sudo изискват това ниво на разрешения, за да продължат.
Обичайните предупреждения при извършване на системни промени важат и тук.
Уверете се, че архивирате системата и проверете резервните копия, преди да продължите.
Ubuntu
Code:
sudo dpkg -l | grep php | tee packages.txt
sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update
sudo apt install php8.2,php8.2-cli,php-8.2{bz2,curl,mbstring,intl}
sudo apt install php8.2-fpm
# OR
# sudo apt install libapache2-mod-php8.2
sudo a2enconf php8.2-fpm
# When upgrading from older PHP version:
sudo a2disconf php8.1-fpm
## Remove old packages
sudo apt purge php8.1*
Debian
Code:
sudo dpkg -l | grep php | tee packages.txt
sudo apt install apt-transport-https lsb-release ca-certificates wget -y
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update
# Expand the curly braces with all extensions necessary.
sudo apt install php8.2 php8.2-cli php8.2-{bz2,curl,mbstring,intl}
sudo apt install php8.2-fpm
# OR
# sudo apt install libapache2-mod-php8.2
sudo a2enconf php8.2-fpm
# When upgrading from older PHP version:
sudo a2disconf php8.1-fpm
## Remove old packages
sudo apt purge php8.1*
Подробно ръководство
1. Избройте и съхранете списъка с PHP разширения
Следващата команда изброява всички пакети, свързани с PHP, които съществуват в текущата система, и ги записва в текстов файл с име packages.txt. Това помага да се реконструира същият списък от пакети на PHP 8.2.При нова инсталация тази стъпка не е необходима.
Code:
dpkg -l | grep php | tee packages.txt
2. Добавете софтуерно хранилище.
След като това хранилище бъде добавено към списъка със софтуерни източници на системата, първоначалната инсталация и актуализациите могат да се извършат със стандартните aptкоманди.Ubuntu LTS версии
Code:
sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update
Code:
sudo apt install apt-transport-https lsb-release ca-certificates ```
software-properties-common
sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update
3. Инсталирайте PHP 8.2 и разширения
Всички PHP 8.2 пакети, налични в хранилището, добавено в стъпка #2, следват php8.2-модела за именуване. Пакетните разширения в PHP, като json, ctype, date, randomи т.н., не трябва да се инсталират ръчно.Пакетът php8.2-commonвключва няколко общи PHP пакета. Възможно е по-късно избирателно да деактивирате ненужните разширения.
Code:
sudo apt install php8.2 php8.2-cli php8.2-{curl,bz2,mbstring,intl}
4. Инсталирайте и активирайте API на сървъра
В система, която уеб сървър интегрира с PHP, инсталирайте допълнителните сървърни API пакети. Следват някои примери за най-популярните комбинации:Apache уеб сървър с PHP-FPM
Code:
sudo apt install php8.2-fpm
sudo a2enconf php8.2-fpm
sudo a2disconf php8.1-fpm # When upgrading from an older PHP version
sudo service apache2 restart
Code:
sudo apt install libapache2-mod-php8.2
sudo a2enmod php8.2
sudo a2dismod php8.1 # When upgrading from an older PHP version
sudo service apache2 restart
Code:
sudo apt install php8.2-fpm
sudo service nginx restart
Code:
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
5. Тествайте инсталацията на PHP 8.2
За да тествате инсталацията на PHP CLI, опитайте да изпълните следните команди:
Code:
php -v
php -m
За да тествате интеграцията на уеб сървъра, опитайте да стартирате PHP файл през уеб сървъра.
6. Изчистете старите PHP пакети
Следните команди премахват по-стари версии на PHP. Препоръчително е да не ги премахвате, докато инсталацията на PHP 8.2 не бъде потвърдена, че работи правилно.
Code:
sudo apt purge php8.1* # Change "php8.1" with the old PHP version names.
Изпълнение на няколко PHP 8.2 заедно с други версии
Не е необходимо да инсталирате PHP 8.2 глобално и да премахнете старата версия на PHP, защото е възможно да стартирате няколко версии на PHP едновременно на един и същ сървър.PHP 8.2 CLI ще бъде инсталиран на /usr/bin/php8.2място по подразбиране, но е свързан. По подобен начин други двоични файлове на PHP ще бъдат разположени в същата директория ( /usr/bin/php8.0, /usr/bin/php7.4и т.н.). Името по подразбиране phpще бъде свързано символично с най-новата версия на PHP по подразбиране, но е възможно да промените къде се phpсвързва командата по подразбиране.
Командата update-alternativesпредоставя лесен начин за превключване между версии на PHP за PHP CLI, ако има няколко версии на PHP, които се свързват към един и същи phpпът.
Code:
sudo update-alternatives --config php
Code:
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 auto mode
1 /usr/bin/php8.1 81 manual mode
2 /usr/bin/php8.2 82 manual mode
Code:
update-alternatives --set php /usr/bin/php8.1
Създал:Тони Ангелчовски
Ако сте намерили този урок за полезен, ще се радваме да получим дарения от положителни емотикони.
Last edited: