ДТ РАБОТИЛНИЦА

Регистрирайте безплатен акаунт днес, за да станете член! След като влезете, ще можете да участвате в този сайт, като добавяте свои собствени теми и публикации, както и да се свързвате с други членове чрез вашата лична пощенска кутия!

  • Здравейте, майстори на заваряването, кодирането и автомобилните технологии!

    Аз съм Тони Ангелчовски, създател на dtgarage.eu - вашата нова дигитална работилница. С визията за място, където можем да обменяме идеи, да се обучаваме и да растем заедно, dtgarage.eu събира любители и професионалисти от света на заваряването, автомобилите, IT и уеб кодирането.

    В dtgarage.eu, ние сме общност, която е готова да помага и подкрепя всеки свой член. Ние вярваме, че всеки от нас може да допринесе за развитието на тази платформа, независимо дали е професионалист или ентусиаст.

    Само една стъпка ви дели от това да станете част от нашата общност - регистрацията. Регистрирайте се сега и открийте света на dtgarage.eu - мястото, където можем да създаваме и растем заедно.

    Приключението започва тук. Добре дошли в DTGARAGE.EU!

Урок Как да инсталирате/надстроите PHP 8.2 на Debian и Ubuntu системи

Какво е новото и промененото в PHP 8.2​

php8.png
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
Debian

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}
Разгънете фигурните скоби по-горе, за да включите всички разширения, необходими за новата система. Когато надграждате съществуваща PHP настройка, packages.txtфайлът, създаден в стъпка #1, трябва да изброява всички текущи PHP пакети.

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
Уеб сървър на Apache с PHP като модул на Apache Инсталирането на PHP като модул на Apache не се препоръчва, освен ако не се изисква за крайни случаи на използване.

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
Nginx уеб сървър с PHP-FPM

Code:
sudo apt install php8.2-fpm
sudo service nginx restart
След това редактирайте съответния конфигурационен файл на Nginx, за да сочи към новия PHP сокет в fastcgi_passдиректива:

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 8.2 , заедно със списък с активирани PHP разширения.

За да тествате интеграцията на уеб сървъра, опитайте да стартирате 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
Това извежда подкана за интерактивен избор на алтернативния PHP двоичен път, 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:
Top Bottom